回帰分析の考え方|最小二乗法で回帰直線を導出する方法

統計学
統計学

例えば,「勉強時間」と「テストの成績」のような関係する2つのデータを考えるとき,集めた2種類のデータの散布図を描いて相関を視覚的に考えることはよくありますね.

しかし,微妙な関係の2つのデータを考えた場合には,散布図からすぐに相関が分かるとは限りません.

そこで,データの関係を散布図の上に視覚的に表現するための方法として回帰分析というものがあり,回帰分析を用いると2つのデータの相関関係をグラフとして視覚的に捉えやすくなります.

この記事では

  • 回帰分析は散布図の傾向を視覚的に表す分析
  • 最小二乗法による回帰直線の考え方と導出
  • 補足(回帰直線の行列・ベクトルを用いた導出)
  • 参考文献

を順に解説します.

回帰分析は散布図の傾向を視覚的に表す分析

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

勉強時間$x$とテストの成績$y$
$x$ 13 10
$y$ 24 60 63 40 92 85 43 49

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

勉強時間xとテストの成績yの散布図
勉強時間が長いほどテストの成績が高いように見える

このように,2つのデータの組$(x,y)$を$xy$平面上にプロットした図を散布図といい,

  • $y$を説明するために用いる$x$を説明変数
  • 説明・予測される$y$を目的変数

などといいます.

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

勉強時間xとテストの成績yの回帰直線
データの関係は直線でだいたいこのように表せる

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

回帰分析でデータを表現する線は必ずしも直線とは限らず曲線であることもあります.

最小二乗法による回帰直線の考え方と導出

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

最小二乗法の考え方

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

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

回帰直線ではない散布図上の直線
点たちの間を通るような直線が「それっぽい」ように思える

こう考えると「どの点からもそれなりに近い直線」を回帰直線と言いたくなり,この「どの点からもそれなりに近い」というものを以下のように考えます.

各データ$(x_i,y_i)$に対して,直線上の$x=x_i$での$y$の値を$\hat{y}_i$として

\begin{align*}e_i=y_i-\hat{y}_i\end{align*}

と表しましょう.

データの観測値と直線上の値との誤差
$e_i$はデータの観測値$y_i$と予測値$\hat{y}_i$の誤差

このとき,

\begin{align*}e_1^2+e_2^2+\dots+e_n^2\end{align*}

が最も0に近くなるような直線はどのデータにもまんべんなく近いと言えそうですね.ここで,

  • $\hat{y}_i$を予測値
  • $e_i$を残差(residual)
  • 和$e_1^2+e_2^2+\dots+e_n^2$を残差平方和

といいます.

一般に実数の2乗は0以上なので,残差平方和$e_1^2+e_2^2+\dots+e_n^2$は0以上ですね.

この考え方で回帰直線を求める方法を最小二乗法といいます.つまり,次のようにいうことができます.

残差平方和が最小になるような直線を回帰直線とする方法を最小二乗法(least squares method, LSM)という.

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

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

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

$n$個のデータの組$x=(x_1,x_2,\dots,x_n)$, $y=(y_1,y_2,\dots,y_n)$を考える.ただし,$x_1=\dots=x_n$ではないとする.このとき,$x$, $y$について最小二乗法を用いると,回帰直線は

\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$の平均,$\bar{y}$は$y$の平均,$\sigma_x^2$は$x$の分散,$C_{xy}$は$x$, $y$の共分散である.

分散$\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*}

とも表せることを思い出しておきましょう.

定理の「$x_1=\dots=x_n$ではない」の部分について,もし$x_1=\dots=x_n$なら$\hat{b}$の分母$\sigma_x^2$が0となります.分母が0(すなわち,0で割る)というのは定義されていませんから,この場合を避けるためにこの仮定があるわけですね.ただ,$x_1=\dots=x_n$なら散布図の点は全て$y$軸に平行な直線上に乗っており回帰直線を描くまでもありませんから,実用上問題はありませんね.

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

それでは,上の定理を示しましょう.

直線$y=a+bx$を考える.

散布図上の直線y=a+bx
散布図の直線$y=a+bx$に関する残差平方和が最小となるような$a$, $b$を求める(最小二乗法)

$i=1,2,\dots,n$に対して,$x=x_i$での直線$y=a+bx$の$y$の値が予測値$\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*}

となる.これは$a$, $b$の2次式なので,平方完成することにより最小値を求める.

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

なので,$S_e$は

\begin{align}S_e&=na^2-2a\sum_{i=1}^{n}(y_i-bx_i)+\sum_{i=1}^{n}(y_i-bx_i)^2\notag
\\&=n\bra{a^2-2a(\overline{y}-b\overline{x})}+\sum_{i=1}^{n}(y_i-bx_i)^2\notag
\\&=n\bra{a-(\overline{y}-b\overline{x})}^2-n(\overline{y}-b\overline{x})^2+\sum_{i=1}^{n}(y_i-bx_i)^2\label{eq:Se}\end{align}

と$a$について平方完成できる.

ここで,$\overline{x^2}$を$x_i^2$の平均,$\overline{y^2}$を$y_i^2$の平均,$\overline{xy}$を$x_iy_i$の平均とおくと,式\eqref{eq:Se}の第3項は

\begin{align*}\sum_{i=1}^{n}(y_i-bx_i)^2
&=\sum_{i=1}^{n}(y_i^2-2bx_iy_i+b^2x_i^2)
\\&=n\overline{y^2}-2nb\overline{xy}+nb^2\overline{x^2}\end{align*}

なので,さらに$\sigma_y^2$を$y_i$の分散とおくと,式\eqref{eq:Se}の第2項と第3項は

\begin{align*}&-n(\overline{y}-b\overline{x})^2+\sum_{i=1}^{n}(y_i-bx_i)^2
\\&=n\bra{-\overline{y}^2+2b\overline{y}\cdot\overline{x}-b^2\overline{x}^2+\overline{y^2}-2b\overline{xy}+b^2\overline{x^2}}
\\&=n\bra{b^2\sigma_x^2-2bC_{xy}+\sigma_y^2}
\\&=n\sigma_x^2\bra{b^2-2b\frac{C_{xy}}{\sigma_x^2}}+n\sigma_y^2
\\&=n\sigma_x^2\bra{b-\frac{C_{xy}}{\sigma_x^2}}^2-\frac{nC_{xy}^2}{\sigma_x^2}+n\sigma_y^2\end{align*}

と$b$について平方完成できる.

等式$\sigma_x^2=\overline{x^2}-\overline{x}^2$, $\sigma_y^2=\overline{y^2}-\overline{y}^2$が成り立つのでした.

以上をまとめて

\begin{align*}S_e=n\bra{a-(\overline{y}-b\overline{x})}^2+n\sigma_x^2\bra{b-\frac{C_{xy}}{\sigma_x^2}}^2-\frac{nC_{xy}^2}{\sigma_x^2}+n\sigma_y^2\end{align*}

となるので,

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

とおくと,$S_e$は$(a,b)=(\hat{a},\hat{b})$のとき最小となる.

補足(回帰直線の行列・ベクトルを用いた導出)

本質的にはいまの証明と変わりませんが,線形代数的に行列列ベクトルを用いると以下のようにも最小二乗法による回帰直線が導出できます.

$n$個のデータの組$x=(x_1,x_2,\dots,x_n)$, $y=(y_1,y_2,\dots,y_n)$を考える.ただし,$x_1=\dots=x_n$ではないとする.このとき,$x$, $y$について最小二乗法を用いると,回帰直線は

\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$の平均,$\bar{y}$は$y$の平均,$\sigma_x^2$は$x$の分散,$C_{xy}$は$x$, $y$の共分散である.

行列・ベクトルを用いた証明

各データのベクトルを$\m{x}$, $\m{y}$,全ての成分が1のベクトルを$\m{1}$,残差を並べたベクトルを$\m{e}$と表す:

\begin{align*}&\m{x}:=\bmat{x_1\\\vdots\\x_n},\quad
\m{y}:=\bmat{y_1\\\vdots\\y_n},\quad
\m{1}:=\bmat{1\\\vdots\\1},
\\&\m{e}:=\m{y}-a\m{1}-b\m{x}\bra{=\bmat{y_1-(a+bx_1)\\\vdots\\y_n-(a+bx_n)}}\end{align*}

このとき,これらの内積について,

  • $\m{x}\cdot\m{1}=\sum_{i=1}^{n}x_i=n\overline{x}$
  • $\m{y}\cdot\m{1}=\sum_{i=1}^{n}y_i=n\overline{y}$
  • $\|\m{1}\|^2=\m{1}\cdot\m{1}=\sum_{i=1}^{n}1=n$
  • $\|\m{x}\|^2=\m{x}\cdot\m{x}=\sum_{i=1}^{n}x_i^2=n\overline{x^2}$
  • $\|\m{y}\|^2=\m{y}\cdot\m{y}=\sum_{i=1}^{n}y_i^2=n\overline{y^2}$

である.残差平方和$S_e(a,b)$は

\begin{align*}S_e(a,b)=\sum_{i=1}^{n}{e_i}^2=\|\m{e}\|^2\end{align*}

だから

\begin{align*}\nabla_{a,b}{S_e}(a,b)
=&\nabla_{a,b}\|\m{e}\|^2
=\bmat{\pd{}{a}\|\m{e}\|^2\\\pd{}{b}\|\m{e}\|^2}
=\bmat{2\m{e}\cdot(\pd{}{a}\m{e})\\2\m{e}\cdot(\pd{}{b}\m{e})}
\\=&2\bmat{\m{e}\cdot(-\m{1})\\\m{e}\cdot(-\m{x})}
=-2\bmat{(\m{y}-a\m{1}-b\m{x})\cdot\m{1}\\(\m{y}-a\m{1}-b\m{x})\cdot\m{x}}
\\=&-2\bmat{n\bar{y}-na-nb\bar{x}\\n\overline{xy}-na\bar{x}-nb\overline{x^2}}\end{align*}

となる.よって,${S_e}(a,b)$を最小にする$(a,b)=(\hat{a},\hat{b})$は

\begin{align*}\nabla_{a,b}{S_e}(\hat{a},\hat{b})=\m{0}
\iff&\bmat{\bar{y}\\\overline{xy}}=\bmat{\hat{a}+\hat{b}\bar{x}\\\hat{a}\bar{x}+\hat{b}\overline{x^2}}
\\\iff&\bmat{\bar{y}\\\overline{xy}}=\bmat{1&\bar{x}\\\bar{x}&\overline{x^2}}\bmat{\hat{a}\\\hat{b}}\end{align*}

を満たす.ここで,行列$X:=\bmat{1&\bar{x}\\\bar{x}&\overline{x^2}}$の行列式$|X|$は

\begin{align*}|X|=1\cdot\overline{x^2}-(\bar{x})^2=\sigma_x^2\end{align*}

である.$\sigma_x^2\neq0$なので$|X|\neq0$となって$X$は逆行列$X^{-1}$を持つ:

\begin{align*}X^{-1}=\frac{1}{\sigma_x^2}\bmat{\overline{x^2}&-\bar{x}\\-\bar{x}&1}\end{align*}

よって,

\begin{align*}\bmat{\hat{a}\\\hat{b}}
=&X^{-1}\bmat{\bar{y}\\\overline{xy}}
=\frac{1}{\sigma_x^2}\bmat{\overline{x^2}&-\bar{x}\\-\bar{x}&1}\bmat{\bar{y}\\\overline{xy}}
\\=&\frac{1}{\sigma_x^2}\bmat{\overline{x^2}\bar{y}-\bar{x}\overline{xy}\\-\bar{x}\bar{y}+\overline{xy}}
\\=&\frac{1}{\sigma_x^2}\bmat{(\overline{x^2}-\bar{x}^2)\bar{y}-(\overline{xy}-\bar{x}\bar{y})\bar{x}\\\overline{xy}-\bar{x}\bar{y}}
\\=&\frac{1}{\sigma_x^2}\bmat{\sigma_x^2\bar{y}-C_{xy}\bar{x}\\C_{xy}}\end{align*}

となる.よって,最小二乗法による回帰直線は

\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*}

となる.

行列・ベクトルを用いた導出が重要な理由

「行列・ベクトルを用いなくても,最初に示した平方完成による方法で十分ではないか?」と思う方もいらっしゃると思います.確かに,この記事で考えたような説明変数が$x$のみの回帰直線の導出では平方完成による方法で十分です.

しかし,統計ではいくつもの説明変数から回帰分析を行うことがあります.この記事で扱った説明変数が1つの場合の回帰分析を単回帰分析といい,説明変数が複数ある場合の回帰分析を重回帰分析といいます.

説明変数が$x$の単回帰分析の場合に考える方程式は$y=a+bx$でしたが,説明変数が$z_1,\dots,z_m$の重回帰分析の場合に考える方程式は

\begin{align*}y=a+b_1z_1+\dots+b_mz_m\end{align*}

となり,この場合には$a,b_1,\dots,b_m$を最小二乗法により定めることになります.

しかし,この重回帰分析の場合には途中で現れる$a,b_1,\dots,b_m$の連立方程式を消去法や代入法で地道に解くのは困難で,行列・ベクトルを用いた線形代数的な計算をするのが現実的な方法となります.

実際,上の行列・ベクトルを用いた導出は重回帰分析の場合にも使える方法となっており,この意味で行列・ベクトルを用いた導出は重要です.

参考文献

以下は参考文献です.

統計学

[久保川達也 著/東京大学出版会]

現代の統計学は社会学・心理学・機械学習など様々な分野に応用されている極めて実学的な分野です.

本書は統計学の基礎を基礎から丁寧に解説した初学者向けのテキストで,大きく

  • 第1部:統計データの整理と記述のための基礎事項
  • 第2部:統計学で必要となる確率の知識
  • 第3部:統計的推測の基礎事項
  • 第4部:社会・経済・時系列データ

の4部構成になっています(本書「はしがき」より).

著者が大学2年生に向けて行った講義に基づいて書かれており,数理的な計算はしっかり追いつつも分かりやすさを重視した記述になっています.

難易度としては統計検定の2級を少し超えたくらいになっており,部分的には準1級レベルの箇所もあります.

章末問題も豊富にあり,統計検定の2級対策としても利用できます.

さらに,著者による章末問題の略解がウェブにアップロードされているのも独学者にはありがたい点です.

改訂版 統計検定2級対応 統計学基礎

[日本統計学会 編/東京図書]

統計検定2級は「大学基礎科目(学部1,2年程度)としての統計学の知識と問題解決能力」という位置付けであり,ある程度の数学的な処理能力が求められます.

そのため,統計検定2級を取得していると,一定以上の統計的なデータの扱い方を身に付けているという指標になります.

日本統計学会が実施する「統計検定」の2級の範囲に対応する教科書なので,「2級の試験範囲を確認する」くらいのつもりで持っておくのが良いかもしれません.

しかし,このテキストは表面的な説明に留まっているなど読みづらい部分も多いので,本書だけで2級の対策をするのは少し難しいと思います.

大学1年の微分積分学の知識は必要なので,もし自信がなければ統計検定3級からの挑戦を検討しても良いでしょう.

なお,本書については,以下の記事で書評としてまとめています.

コメント