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

統計学
統計学

例えば,

  • 勉強時間
  • テストの成績

のような関係する2つのデータを考えるとき,集めた2種類のデータの相関散布図を描いて視覚的に考えることはよくありますね.

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

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

さて,回帰分析の中でも,基本的な方法として回帰直線を描くための最小二乗法があります.

この記事では

  • 最小二乗法の考え方
  • 回帰直線の求め方

を順に説明します.

回帰分析の目的

あるテストを受けた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つに最小二乗法があります.

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

Rendered by QuickLaTeX.com

こう考えると「どの点からもそれなりに近い直線」を回帰直線と言いたくなりますが,この「どの点からもそれなりに近い」というものをどのように考えれば良いでしょうか?

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

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

と表しましょう.

Rendered by QuickLaTeX.com

このとき,

    \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)$に対して最小二乗法を用いると,回帰直線は

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

であり,$x_1,\dots,x_n$の少なくとも1つは異なる値である.

分散${\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$の少なくとも1つは異なる値」の部分について,もし$x_1=\dots=x_n$なら${\sigma_x}^2=0$となり$\hat{b}=\dfrac{C_{xy}}{{\sigma_x}^2}$で分母が$0$になります.

分母が$0$(すなわち,$0$で割る)というのは数学では禁止されているので,この場合を除いて定理を述べているわけですね.

しかし,$x_1=\dots=x_n$なら散布図の点は全て$y$軸に平行になり回帰直線を描くまでもありませんから,実用上問題はありませんね.

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

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

Rendered by QuickLaTeX.com

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

となる.ここで,$S_e$は$a$, $b$の2次式で2次の係数が正なので,ある$(a,b)=(\hat{a},\hat{b})$で$S_e$は最小となる.このとき,

  • $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&\overline{xy}=\hat{a}\bar{x}+\hat{b}\overline{x^2}\end{align*}

が従う.

$\overline{xy}=\hat{a}\bar{x}+\hat{b}\overline{x^2}$と$\bar{y}=\hat{a}+\hat{b}\bar{x}$から$\hat{a}$を消去して

    \begin{align*}\overline{xy}=\bra{\bar{y}-\hat{b}\bar{x}}\bar{x}+\hat{b}\overline{x^2} \iff&\overline{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*}

を得る.ただし,$x_1,\dots,x_n$の少なくとも1つは異なる値をとるから,$\sigma_x\neq0$であることに注意.

行列とベクトルによる証明

本質的にはいまの証明と変わりませんが,線形代数的に行列列ベクトルを用いると以下のようにも計算できます.

各データのベクトルを$\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*}

である.$x_1,\dots,x_n$の少なくとも1つは異なる値をとるから,$\sigma_x\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_1,\dots,x_m$と$m$個ある場合の重回帰分析において,考える方程式は

    \begin{align*}y=a+b_1x_1+\dots+b_mx_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級からの挑戦を検討しても良いでしょう.

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

コメント