銀行員 RとPythonに出会う

Rネタを中心に、いろいろと更新していきます

決定係数の導出をおさらい

備忘的にメモ。

平方和の分解

回帰直線{y=\hat\alpha+\hat\beta x}を用いるとき、応答変数(目的変数)の変動の大きさを表す平方和{S_y}は、回帰による平方和{S_e}残差平方和{S_e}の和{S_y=S_R + S_e}の形に分解できる。
観測値{y_i}の平方和の式を変形すると

{
\begin{eqnarray}
  \sum (y_i - \bar y) ^2 &=& \sum { ( y_i - \hat y_i ) + ( \hat y - \bar y ) } ^2 \\\
  &=& \sum (y_i - \hat y_i ) ^2 + ( \hat y - \bar y ) ^2 + 2 \sum (y_i - \hat y_i) (\hat y_i - \bar y) 
\end{eqnarray}
}

となる。
ここで、右辺第3項は予測値と残差の偏差積和を表すが、予測値と残差の相関係数が0であるため、この項は0。

また、第1項と第2項を入れ替え、

{
\begin{eqnarray}
  \sum (y_i - \bar y) ^2 &=& \sum { ( \hat y_i - \bar y) ^2 + \sum ( y_i - \hat y_i ) ^2 } \\\
  S_y &=& S_R + S_e
\end{eqnarray}
}

と観測値{y_i}の平方和{S_y}は2つの平方和の和の形に分解できる。
ここで、右辺の第1項は回帰による平方和{S_R} (RはRegressionを指す)、第2項は残差平方和{S_e}と呼ぶ。

決定係数

上記、平方和の分解のうち、{y}の平方和の中の回帰による平方和の割合
{ R ^2 = S_R / S_y}
決定係数、又は寄与率と呼ぶ。
理解しやすいように以下にまとめると、
- {S_y} :応答変数yの変動の大きさを表す
- {S_R}:回帰直線によって説明される部分
- {S_e}:回帰直線によって説明されない部分 となる。

下図は統計Webより引用ですが、直感的に理解する上で非常に参考になります。このサイト自体解説も分かりやすいです。

http://bellcurve.jp/statistics/wp-body/wp-content/uploads/2017/01/795316b92fc766b0181f6fef074f03fa-16.png