【SPONSORED LINK】

回帰分析の目的|最小二乗法から回帰直線を求める方法

例えば,「気温」と「アイスの売り上げ」の間にどのような関係性があるのかを考えたいとき,散布図を描いて視覚的に考えることはよくありますね.

ただ,散布図を描いて,「データの分布を見て,気温が高いほどアイスの売り上げが良い」と主張しても良いですが,より定量的に説明した方が説得力が増すことには異論の余地はないでしょう.

そこで,「見た感じ」ではなく数学的にきっちりとこの相関を表現するための方法として,「回帰分析」という方法があります.

回帰分析を用いると,「気温」と「アイスの売り上げ」の間の相関の強さをグラフとして視覚的に捉えることができるので,よりハッキリと人に説明することができます.

この記事では,「最小二乗法」を使った回帰分析の考え方を説明します.

【SPONSORED LINK】

回帰分析の目的

あるテストを受けた8人の生徒について,勉強時間xとテストの成績yが以下の表のようになったとしましょう.

勉強時間xとテストの成績y
x 2 6 8 3 13 10 5 9
y 24 60 63 40 92 85 43 49

これをxy平面上にプロットすると下図のようになります.

Rendered by QuickLaTeX.com

このように,2つのデータの組(x,y)xy平面上にプロットした図を散布図といい,原因となるx説明変数,その結果となるy目的変数などといいます.

さて,この散布図を見たとき,データはなんとなく右上がりになっているように見えるので,このデータを直線で表すなら下図のようになるでしょうか.

Rendered by QuickLaTeX.com

この直線のように,「散布図にプロットされたデータをそれっぽい直線や曲線で表したい」というのが回帰分析の目的です.

回帰分析でデータを表現する線は必ずしも直線とは限らず,曲線であることもありますが,ともかく回帰分析は「それっぽい線」を見つける方法の総称のことをいいます.

最小二乗法

回帰分析のための1つの方法として,「最小二乗法」というものがあります.

最小二乗法の考え方

回帰分析で求めたい「それっぽい線」としては,曲線よりも直線の方が考えやすそうなことに異論はないでしょう.

このときの「それっぽい直線」を回帰直線(regression line)といい,回帰直線を求める考え方の1つに最小二乗法(LSM,least squares method)があります.

当然のことながら,全ての点から離れた例えば下図のような直線は「それっぽい」とは言い難いですね.

Rendered by QuickLaTeX.com

こう考えると,どのデータ点のからもそれなりに近い直線が回帰直線と言えそうです.

では,この「どの点からもそれなりに近い」というものをどのように考えれば良いでしょうか?

ここでいくつか言葉を定義しておきましょう.

実際のデータ(x_i,y_i)に対して,直線のx=x_iでのyの値をデータ(x_i,y_i)予測値といいます.本稿では,データ(x_i,y_i)の予測値を\hat{y}_iと表します.

さらに,y_i-\hat{y}_iをデータ(x_i,y_i)残差(residual)といいます.本稿では,データ(x_i,y_i)の残差をe_iと表します.

Rendered by QuickLaTeX.com

この残差という言葉を用いて「どの点からもそれなりに近い直線が回帰直線」を言い換えれば,「どのデータの残差e_iもそれなりに0に近い直線が回帰直線」となりますね.

よって,残差平方和(=残差の2乗和){e_1}^2+{e_2}^2+\dots+{e_n}^2が最も0に近いような直線はどのデータの残差e_iもそれなりに0に近いと言えますね.

なお,一般に実数の2乗は0以上だったことを思い出すと,残差平方和は必ず0以上なので「残差平方和が最も0に近いような直線」は「残差平方和が最小になるような直線」に他なりません.

このように,残差平方和が最小になるような直線を回帰直線とする方法を「最小二乗法」といいます.

二乗が最小になるようなものを見つけてくるわけですから,名前そのままですね!

最小二乗法による回帰直線

結論から言えば,最小二乗法により求まる回帰直線は以下のようになります.

n個のデータの組x=(x_1,x_2,\dots,x_n), y=(y_1,y_2,\dots,y_n)に対して最小二乗法を用いると,回帰直線は

    \begin{align*} y=\hat{a}+\hat{b}x\quad \bra{\hat{b}=\frac{C_{xy}}{{\sigma_x}^2},\quad \hat{a}=\bar{y}-\hat{b}\bar{x}} \end{align*}

となる.ただし,\bar{x}xの平均,{\sigma_x}^2xの分散,\bar{y}yの平均,C_{xy}x, yの共分散である.

念のため,\bar{x}, \bar{y}, {\sigma_x}^2, C_{xy}の定義を書いておきます.

    \begin{align*} &\bar{x}:=\frac{1}{n}\sum_{i=1}^{n}x_i,\quad \bar{y}:=\frac{1}{n}\sum_{i=1}^{n}y_i, \\&{\sigma_x}^2:=\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2, \\&C_{xy}:=\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y}). \end{align*}

なお,{\sigma_x}^2, C_{xy}

    \begin{align*} {\sigma_x}^2=\overline{x^2}-\bar{x}^2,\quad C_{xy}=\overline{xy}-\bar{x}\bar{y} \end{align*}

と表せることも大切でしたね.ただし,\overline{xy}x_iy_iの平均,\overline{x^2}{x_i}^2の平均です.

最小二乗法の計算

それでは,以下で以上ことを示しましょう.

[証明]

まず,直線y=a+bxを考えます.

Rendered by QuickLaTeX.com

abが決まれば直線y=a+bxが定まるので,最小二乗法により回帰直線の(a,b)を求めるわけですね.

i=1,2\dots,nに対して,x=x_iでの直線y=a+bxyの値が予測値\hat{y}_iだったので,\hat{y}_i=a+bx_iですね.よって,データ(x_i,y_i)の残差e_i

    \begin{align*} e_i=y_i-(a+bx_i) \end{align*}

となります.これより,残差平方和をS_eとすると,

    \begin{align*} S_e =\sum_{i=1}^{n}{e_i}^2 =\sum_{i=1}^{n}\{y_i-(a+bx_i)\}^2 =\sum_{i=1}^{n}(y_i-a-bx_i)^2 \end{align*}

となります.

y=a+bxが点から遠くなるほどS_eは大きくなるので,適当な(a,b)S_eは最小となります.ここで,S_eが最小となるような(a,b)(\hat{a},\hat{b})としましょう.

a=\hat{a}を固定してbを動かしたときb=\hat{b}S_eは最小になりますし,b=\hat{a}を固定してaを動かしたときa=\hat{a}S_eは最小になります.したがって,

    \begin{align*} \pd{S_e}{a}(\hat{a},\hat{b})=\pd{S_e}{b}(\hat{a},\hat{b})=0 \end{align*}

が成り立ちます.よって,

    \begin{align*} \pd{S_e}{a}(\hat{a},\hat{b})=0 \iff&-2\sum_{i=1}^{n}(y_i-\hat{a}-\hat{b}x_i)=0 \\\iff&\sum_{i=1}^{n}y_i=n\hat{a}+\hat{b}\sum_{i=1}^{n}x_i \\\iff&\frac{1}{n}\sum_{i=1}^{n}y_i=\hat{a}+\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}x_i \\\iff&\bar{y}=\hat{a}+\hat{b}\bar{x}, \\\pd{S_e}{b}(\hat{a},\hat{b})=0 \iff&-2\sum_{i=1}^{n}x_i(y_i-\hat{a}-\hat{b}x_i)=0 \\\iff&\sum_{i=1}^{n}x_iy_i=\hat{a}\sum_{i=1}^{n}x_i+\hat{b}\sum_{i=1}^{n}{x_i}^2 \\\iff&\frac{1}{n}\sum_{i=1}^{n}x_iy_i=\hat{a}\cdot\frac{1}{n}\sum_{i=1}^{n}x_i+\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}{x_i}^2 \\\iff&\bar{xy}=\hat{a}\bar{x}+\hat{b}\overline{x^2} \end{align*}

が従います.

\bar{xy}=\hat{a}\bar{x}+\hat{b}\overline{x^2}\bar{y}=\hat{a}+\hat{b}\bar{x}から\hat{a}を消去すると,

    \begin{align*} \bar{xy}=\bra{\bar{y}-\hat{b}\bar{x}}\bar{x}+\hat{b}\overline{x^2} \iff&\bar{xy}-\bar{y}\bar{x}=\hat{b}\bra{\overline{x^2}-\bar{x}^2} \\\iff&C_{xy}=\hat{b}{\sigma_{x}}^2 \iff\hat{b}=\frac{C_{xy}}{{\sigma_{x}}^2} \end{align*}

となります.

[証明終]

回帰直線の性質

最後に,最小二乗法で求めた回帰直線の性質を説明します.

n個のデータの組x=(x_1,x_2,\dots,x_n), y=(y_1,y_2,\dots,y_n)に対する最小二乗法による回帰直線y=\hat{a}+\hat{b}xは以下の性質をもつ.

  1. 回帰直線は点(\bar{x},\bar{y})を通る.
  2. 予測値\hat{y}_iの平均\overline{\hat{y}}y_iの平均\bar{y}は等しい.すなわち,残差e_iの平均\bar{e}は0である.
  3. 予測値\hat{y}_iと残差e_iは無相関(=相関係数が0=共分散が0)である.

これらを以下で証明していきましょう.

性質1

上で見たように,等式\bar{y}=\hat{a}+\hat{b}\bar{x}が成り立つのでした.

この等式は回帰直線の方程式y=\hat{a}+\hat{b}x(x,y)=(\bar{x},\bar{y})を代入してできる等式です.

そもそも方程式に代入して成り立つ点(x,y)を集めたものがグラフだったので,回帰直線y=\hat{a}+\hat{b}xは点(\bar{x},\bar{y})を通ることになります.

性質2

予測値\hat{y}_i\hat{y}_i=\hat{a}+\hat{b}x_iと定義されていたので,

    \begin{align*} \overline{\hat{y}} =&\frac{1}{n}\sum_{i=1}^{n}\hat{y}_i =\frac{1}{n}\sum_{i=1}^{n}(\hat{a}+\hat{b}x_i) \\=&\hat{a}+\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}x_i =\bra{\hat{a}+\hat{b}\bar{x}} =\bar{y} \end{align*}

が成り立ちます.よって,残差e_ie_i=y_i-\hat{y}_iと定義されていたので残差の平均\bar{e}

    \begin{align*} \bar{e} =&\frac{1}{n}\sum_{i=1}^{n}e_i =\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i) \\=&\frac{1}{n}\sum_{i=1}^{n}y_i-\frac{1}{n}\sum_{i=1}^{n}\hat{y}_i =\bar{y}-\overline{\hat{y}} =0 \end{align*}

となる.ただし,最後の等号では等式\bar{y}=\hat{a}+\hat{b}\bar{x}が成り立つことを用いました.

性質3

予測値\hat{y}_iと残差e_iの共分散C_{\hat{y}e}が0であることを示せばよいですね.性質2の\bar{e}=0から,

    \begin{align*} C_{\hat{y}e} =&\frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i-\overline{\hat{y}})(e_i-\bar{e}) =\frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i-\bar{y})e_i \\=&\frac{1}{n}\sum_{i=1}^{n}(\hat{a}+\hat{b}x_i)-(\hat{a}+\hat{b}\bar{x})\}e_i \\=&\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\hat{y}_i) \\=&\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})\brb{y_i-(\hat{a}+\hat{b}x_i)} \\=&\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})\brc{y_i-\brb{(\bar{y}-\hat{b}\bar{x})+\hat{b}x_i}} \\=&\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})\brb{(y_i-\bar{y})-\hat{b}(x_i-\bar{x})} \\=&\hat{b}\brb{\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})-\hat{b}\cdot\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2} \\=&\hat{b}\bra{C_{xy}-\hat{b}{\sigma_{x}}^2} =\hat{b}\bra{C_{xy}-\frac{C_{xy}}{{\sigma_{x}}^2}\cdot{\sigma_{x}}^2} =0 \end{align*}

となります.

平方和の分解と決定係数

そもそも回帰分析はデータを表す「それっぽい線」を見つけようというのが目的なのでした.

そこで,最小二乗法で求まった回帰直線がどれくらいデータを「それっぽく」表しているかを測る指標が欲しいですね.

実は,「回帰直線のそれっぽさ」を測る指標として決定係数というものがあります.

平方和の分解

上でみた回帰直線の性質3を用いると,以下のことが証明できます.

最小二乗法による回帰直線において,目的変数の平均とデータの差の平方和S_{\mrm{total}}は,

  • 残差平方和S_e
  • 回帰による平方和S_{R}

の和に等しい.すなわち,

    \begin{align*} &S_{\mrm{total}}=\sum_{i=1}^{n}(y_i-\bar{y})^2, \\&S_{R}=\sum_{i=1}^{n}(y_i-\bar{y})^2, \\&S_{e}=\sum_{i=1}^{n}(y_i-\hat{y}_i)^2\bra{=\sum_{i=1}^{n}{e_i}^2} \end{align*}

とすると,S_{\mrm{total}}=S_{e}+S_{R}が成り立つ.

[証明]

回帰直線の性質3より,

    \begin{align*} \frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)(\hat{y}_i-\bar{y}) =&\frac{1}{n}\sum_{i=1}^{n}e_i(\hat{y}_i-\overline{\hat{y}_i}) \\=&\frac{1}{n}\sum_{i=1}^{n}(e_i-\bar{e})(\hat{y}_i-\overline{\hat{y}_i}) =0 \end{align*}

なので,

    \begin{align*} S_{\mrm{total}} =&\sum_{i=1}^{n}(y_i-\bar{y})^2 =\sum_{i=1}^{n}\brb{(y_i-\hat{y}_i)+(\hat{y}_i-\bar{y})}^2 \\=&\sum_{i=1}^{n}(y_i-\hat{y}_i)^2+\sum_{i=1}^{n}(\hat{y}_i-\bar{y})^2+\sum_{i=1}^{n}(y_i-\hat{y}_i)(\hat{y}_i-\bar{y}) \\=&\sum_{i=1}^{n}(y_i-\hat{y}_i)^2+\sum_{i=1}^{n}(\hat{y}_i-\bar{y})^2 =S_{e}+S_{R} \end{align*}

となります.

[証明終]

この平方和に関する等式S_{\mrm{total}}=S_{e}+S_{R}平方和の分解といいます.

決定係数

平方和の分解S_{\mrm{total}}=S_{e}+S_{R}について,S_{e}\ge0かつS_{R}\ge0なのでS_{\mrm{total}}ge S_{e}\ge0が成り立つので,\dfrac{S_{e}}{S_{\mrm{total}}}0\le\dfrac{S_{e}}{S_{\mrm{total}}}\le1を満たします.

さて,もし全てのデータが回帰直線上にぴったり乗っていれば,データy_iと予測値\hat{y}_iが一致しているので残差e_iは全て0ですから,残差平方和S_{e}は0となります.

言い換えれば,回帰直線が完全にデータの相関を表現していれば,残差は0となるわけですね.

一方,回帰直線からデータが離れるほど残差平方{e_i}^2は大きくなり,S_{e}S_{\mrm{total}}に近付きます.

これらのことから,\dfrac{S_{e}}{S_{\mrm{total}}}が0に近いほど回帰直線はデータを表現できており,\dfrac{S_{e}}{S_{\mrm{total}}}が1に近いほど回帰直線はデータから解離しているということができますね.

よって,\dfrac{S_{e}}{S_{\mrm{total}}}の値を考えれば,回帰直線がどれくらい「それっぽい」かを判断することができますね.

目的変数の平均とデータの差の平方和S_{\mrm{total}}と残差平方和S_eの比\dfrac{S_e}{S_{\mrm{total}}}決定係数という.

上でも述べたとおり,

  • 決定係数が1に近いほど回帰直線の精度が悪く
  • 決定係数が0に近いほど回帰直線の精度が良い

というわけですね.

関連記事

【良いと思ったらシェアを!】

SNSでもご購読できます。

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください