QCプラネッツ 品質のプロフェッショナルを育成するサイト

重回帰分析の寄与率Rがわかる

重回帰分析

「重回帰分析の寄与率Rが0~1の値にしかない理由がわからない」と困っていませんか?

こういう疑問に答えます。

本記事のテーマ

重回帰分析の寄与率Rがわかる

この問いが解けますか?

問1:重回帰分析の寄与率Rは、0 ≤ R ≤ 1 になる理由を説明せよ。
問2:重回帰分析の寄与率R が0になる時は、どんな場合か?具体的なデータ例を示せ。
問3:重回帰分析の寄与率R が1になる時は、どんな場合か?具体的なデータ例を示せ。

意外と難しいので、わかりやすく解説します。

おさえておきたいポイント

  • ①寄与率Rが0≤ R ≤ 1になる理由がわかる
  • ➁寄与率Rが0になる条件がわかる
  • ➂寄与率Rが1になる条件がわかる
多変量解析はすべて数式で導出できます。導出過程から本質を理解しましょう。

①寄与率Rが0≤ R ≤ 1な理由がわかる

寄与率Rとは

どの教科書でも書いていますが、回帰平方和\(S_R\)と総平方和\(S_T\)の比を寄与率Rと定義します。

R=\(\frac{S_R}{S_T}\)
=\(\frac{\sum_{i=1}^{n}(\hat{y_i}-\bar{y})^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2}\)
\(y_i\):実測値、\(\hat{y_i}\):回帰直線上の点、\(\bar{y}\):平均

なお、データの構造式は、
(\(y_i-\bar{y})\)=(\(\hat{y_i}-\bar{y})\)+(\(y_i-\hat{y_i})\)
となり、2乗和を取ると、それぞれの項が
\(S_T\)(総平方和)=\(S_R\)(回帰平方和)+\(S_{er}\)(回帰残差平方和)
に分解できます。

この証明は、関連記事で解説しているので、ご確認ください。

平方和の分解と分散分析ができる(重回帰分析)
重回帰分析の分散分析をする際にデータの構造式を使って平方和の分解が自力で計算できますか?本記事では公式暗記に頼りがちな重回帰分析の分散分析の解析までの流れを途中経過を一切端折らず丁寧に解説します。多変量解析を学ぶ人は必読です。

単回帰分析の寄与率Rが0≤ R ≤ 1になる理由がわかる

まず、単回帰分析について解説します。あとで、重回帰分析の場合の証明でも有効ですが、別の方法でも証明ができます。

単回帰分析の寄与率Rが0≤ R ≤ 1になる理由は
コーシーシュワルツの不等式そのもので証明できる!

関連記事で解説していますので、ご確認ください。

【必読】相関係数や寄与率が1以上にできない理由がわかる
回帰分析の相関係数rと寄与率Rがなぜ限られた範囲しかないのかが説明できますか?本記事では数式を使ってわかりやすくその理由を解説します。与えられた変数の特徴をそのまま暗記せず、「なぜそうなるのか?」を考える大切な記事なので品質管理、AI,統計学を学ぶ人は必読です。

この関連記事を書いたあとで、気づいたのですが、
これから解説する、重回帰分析の寄与率の場合の証明の方が、
簡単に証明できます。

いろいろな証明方法があるので、面白いですね。

重回帰分析の寄与率Rが0≤ R ≤ 1になる理由がわかる

寄与率の定義に戻ると、
R=\(\frac{S_R}{S_T}\)
=\(\frac{\sum_{i=1}^{n}(\hat{y_i}-\bar{y})^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2}\)
かつ
\(\sum_{i=1}^{n} (y_i-\bar{y})^2\)=\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)+\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)
\(S_T\)(総平方和)=\(S_R\)(回帰平方和)+\(S_{er}\)(回帰残差平方和)
を使って、証明できます。

寄与率R ≥ 0を証明する

まず、寄与率Rの式の分母分子に注目すると、
●(分子)=\( \sum_{i=1}^{n}(\hat{y_i}-\bar{y})^2\)
=\((\hat{y_1}-\bar{y})^2\)+\((\hat{y_n}-\bar{y})^2\)+…+\((\hat{y_n}-\bar{y})^2\)
とすべての()に2乗がついているので、実数である限り、すべて0以上になります。
よって、
(分子) ≥0

●同様に(分母)も()に2乗がついているので、実数である限り、すべて0以上になります。
よって、
(分母) ≥0

つまり、寄与率Rは0より大きい分母分子の比なので、
R ≥ 0
は明らかですね。

寄与率R ≤ 1を証明する

次に、寄与率Rは
R=\(\frac{S_R}{S_T}\)
=\(\frac{\sum_{i=1}^{n}(\hat{y_i}-\bar{y})^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2}\)

でかつ、
\(\sum_{i=1}^{n} (y_i-\bar{y})^2\)=\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)+\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)
ですから、この式の(両辺)を\(\sum_{i=1}^{n} (y_i-\bar{y})^2\)で割ります。

すると、
1=\(\frac{\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2}{\sum_{i=1}^{n} (y_i-\bar{y})^2}\)+\(\frac{\sum_{i=1}^{n} (y_i-\hat{y_i})^2}{\sum_{i=1}^{n} (y_i-\bar{y})^2}\)
となり、(右辺)の第1項をよく見ると
R=\(\frac{\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2}{\sum_{i=1}^{n} (y_i-\bar{y})^2}\)
なので、

1=R+\(\frac{\sum_{i=1}^{n} (y_i-\hat{y_i})^2}{\sum_{i=1}^{n} (y_i-\bar{y})^2}\)
となります。また、(右辺)の第2項は分母、分子をよく見ると0以上ですね。

よって、
1-R=\(\frac{\sum_{i=1}^{n} (y_i-\hat{y_i})^2}{\sum_{i=1}^{n} (y_i-\bar{y})^2}\) ≥0
より、
1-R ≥0
よって、
R ≤ 1
が証明できます。

以上まとめると、
0 ≤ R ≤ 1
が証明できました。めでたしめでたし!

データの構造式と、その2乗和の平方和から証明できるので、単回帰、重回帰関係なく証明できます。コーシーシュワルツの不等式を使った証明より簡単ですね。

➁寄与率Rが0になる条件がわかる

データの構造式、平方和から導出

データの構造式から平方和を求める式を見れば、わかりやすいです。

平方和を求める式を再掲すると、
\(\sum_{i=1}^{n} (y_i-\bar{y})^2\)=\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)+\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)
ですね。

寄与率Rが0は
\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)=0

∑の中はすべて2乗ですから、∑全体=0にするには、
すべての( )の中が0であることが必須ですね。

つまり、
\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)
=\((\hat{y_1}-\bar{y})^2\)+\((\hat{y_2}-\bar{y})^2\)+…+\((\hat{y_n}-\bar{y})^2\)
のすべての( )の中が0なので、

●\((\hat{y_1}-\bar{y})\)=0
●\((\hat{y_2}-\bar{y})\)=0

●\((\hat{y_n}-\bar{y})\)=0
となります。

整理すると、

\(\hat{y_1}\)=\(\hat{y_2}\)=…=\(\hat{y_n}\)=\(\bar{y}\)
すべての回帰データと平均値が一致する場合

寄与率Rが0になる回帰式

説明変数がn個ある、重回帰分析において、回帰式は、
\(\hat{y_i}\)=\(bar{y}\)+\(β_1 x_1\)+\(β_2 x_2\)+…+\(β_n x_n\)
と表記できます。

\(\hat{y_1}\)=\(\hat{y_2}\)=…=\(\hat{y_n}\)=\(\bar{y}\)
を満たすには、
\(β_1\)=\(β_2\)=…=\(β_n\)
が必要ですね。

傾きが0なデータの場合、寄与率R=0となる
とわかります。

寄与率Rが0になる実例

具体的なデータを上げてみましょう。意外と難しいですが、1例は下表のデータです。

x1 x2 y \(S_{11}\) \(S_{1y}\) \(S_{12}\) \(S_{22}\) \(S_{2y}\) \(S_{yy}\)
1 2 3 6.25 -2.5 7.5 9 -3 1
2 3 2 2.25 0 3 4 0 0
3 4 1 0.25 0.5 0.5 1 1 1
4 6 1 0.25 -0.5 0.5 1 -1 1
5 7 2 2.25 0 3 4 0 0
6 8 3 6.25 2.5 7.5 9 3 1
合計 21 30 12 17.5 0 22 28 0 4

回帰平方和\(S_R\)は
\(S_R\)=\(β_1 S_{1y}\)+\(β_2 S_{2y}\)
=\(β_1\)×0+\(β_2\)×0
=0

となるので、寄与率Rは
R=\(S_R\)/\(S_T\)=\(S_R\)/\(S_{yy}\)
=0/4=0
となり、確かに、寄与率R=0になりました。

➂寄与率Rが1になる条件がわかる

データの構造式、平方和から導出

データの構造式から平方和を求める式を見れば、わかりやすいです。

平方和を求める式を再掲すると、
\(\sum_{i=1}^{n} (y_i-\bar{y})^2\)=\(\sum_{i=1}^{n} (\hat{y_i}-\bar{y})^2\)+\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)
ですね。

寄与率Rが1は
回帰残差平方和に注目して
\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)=0

∑の中はすべて2乗ですから、∑全体=0にするには、
すべての( )の中が0であることが必須ですね。

つまり、
\(\sum_{i=1}^{n} (y_i-\hat{y_i})^2\)
=\((y_1-\hat{y_1})^2\)+\((y_2-\hat{y_2})^2\)+…+\((y_n-\hat{y_n})^2\)
のすべての( )の中が0なので、

●\((y_1-\hat{y_1})\)=0
●\((y_2-\hat{y_2})\)=0

●\((y_n-\hat{y_n})\)=0
となります。

整理すると、

\(y_1=\hat{y_1}\),\(y_2=\hat{y_2}\),…,\(y_n=\hat{y_n}\)
と実測値と回帰直線上の理論値がすべて一致する場合が寄与率R=1になります。

寄与率Rが1になる実例

実測値と回帰直線上の理論値がすべて一致するデータを探しましょう。
x1 x2 y(=3x1+
2x2-1)
\(S_{11}\) \(S_{1y}\) \(S_{12}\) \(S_{22}\) \(S_{2y}\) \(S_{yy}\)
1 2 6 6.25 33.75 7.5 9 40.5 182.25
2 3 11 2.25 12.75 3 4 17 72.25
3 4 16 0.25 1.75 0.5 1 3.5 12.25
4 6 23 0.25 1.75 0.5 1 3.5 12.25
5 7 28 2.25 12.75 3 4 17 72.25
6 8 33 6.25 33.75 7.5 9 40.5 182.25
合計 21 30 12 17.5 96.5 22 28 122 533.5

上表のyをみると
y=3×x1+2×x2-1
で値を代入しており、誤差εは含んでいません。

そうなると、確かに

回帰平方和\(S_R\)は
\(S_R\)=\(β_1 S_{1y}\)+\(β_2 S_{2y}\)
=3×96.5+2×122
=533.5
=\(S_{yy}\)=\(S_T\)
となり、

S_T=S_Rとなるので、寄与率Rは
R=\(S_R\)/\(S_T\)=1
になりました。

以上、重回帰分析の寄与率Rにおいて
●0 ≤ R ≤1
●R=0の場合のデータ事例
●R=1の場合のデータ事例
を解説しました。

まとめ

「重回帰分析の寄与率Rがわかる」を解説しました。

  • ①寄与率Rが0≤ R ≤ 1になる理由がわかる
  • ➁寄与率Rが0になる条件がわかる
  • ➂寄与率Rが1になる条件がわかる


Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119

    Warning: Invalid argument supplied for foreach() in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 122
error: Content is protected !!