回帰直線の式を最小二乗法により計算する

回帰直線の傾きと切片の計算について、直感的にイメージできたとしても、やはり数学的な裏付けがあってはじめて安心して使うことができます。そこで、偏微分の考え方を使って式を導きます。

一次式による近似直線の表示

散布図を描き目分量で回帰直線を引くときには、$x$、$y$の平均値が交わる点を中心に、各点との距離が全体としてなるべく小さくなるような直線を考えました。同じように式を数学的に導くためには、$y=\alpha+\beta x$という一次式を想定します。そして、この式によって計算した$y$の予測値が、実際に測定した$y$との差がなるべく小さくなるよう、$\alpha$と$\beta$を定めればよいわけです。そこで、ここで使う用語を整理しておきます。

説明変数$x$と目的変数$y$の関係を知る上で、全部のデータを調べ上げることは費用などの制約があり現実的ではありません。そこで、いくつかのサンプルを取って$x$と$y$の値を測定し、この測定値からなるべく精度よく実際の関係を推定するしかありません。ここでサンプルの数をnとして測定値は、整理のため$x_1,x_2\cdots,x_n$、$y_1,y_2\cdots,y_n$と番号を付けます。

この測定値から回帰直線の式を推定していきますが、必ずしも実際の値とは完全に等しくならないという意味で、傾きは$\hat{\beta}$、切片は$\hat{\alpha}$、と”^”記号を付けるようにします(ベータハット、アルファハットと読みます)。このため、これから求める回帰直線の式は$y=\hat{\alpha}+\hat{\beta} x$となります。なお、回帰直線の式は$\hat{\alpha}$、$\hat{\beta}$によって表現することができるので、2つをまとめて回帰係数といいます。

最後に、これからご紹介する方法で式を求めたら、サンプルで取った測定値$x_i$を代入して求めた値$\hat{y}$(予測値という意味でやはり^が付きます)と実際の測定値$y_i$を比べ、当てはまりの良さを確認します。これがぴったり一致することは、現実的にはありえないので、差を一つ一つ計算します。この差を残差といい、$e_i$であらわします。

ということは、回帰直線の式を求めるためには、この$e_i$が全体的に最も小さくなるような$\hat{\alpha}$、$\hat{\beta}$を求めればよいわけです。しかし、残差$e_i$は、回帰直線より上になったり下になったりで打ち消しあって0になってしまいます。そこで、分散と同じように各$e_i$を2乗してから合計し、偏差平方和を求めます。この2乗した数字は、$\hat{\alpha}+\hat{\beta}$をどのように定めるかによって変動するので$S(\hat{\alpha}$、$\hat{\beta})$と$\hat {\alpha}$、$\hat{\beta}$の変数になります。これまでのことをまとめると次のような表になります。

用語 記号 意 味
データ数 n 回帰分析をするにあたり測定したサンプルの数
測定値 $x_i,y_i$ サンプルの測定の結果得られたi番目のデータ
予測値 $\hat{y_i}$ サンプルから導かれた回帰直線の式によって、$x_i$から計算された$y$の値
傾き $\hat{\beta}$ 回帰分析によって導かれた回帰直線を示す式の傾き
切片 $\hat{\alpha}$ 回帰分析によって導かれた回帰直線を示す式の切片 $x_i$が0のときの$y_i$の値
回帰係数 $\hat{\beta}$、$\hat{\alpha}$ 回帰直線の傾きと切片の総称
残差 $e_i$ 観測値$y_i$と予測値$\hat{y_i}$の差 
残差平方和 $S(\hat{\alpha}, \hat{\beta})$ 残差の2乗を合計した値。英語でSSR(sum of squared residuals)と表現するのでSの文字を使う。
回帰係数 $\alpha,\beta$ 回帰直線に式を表す切片と傾き

回帰直線の式を求める

まず残差を求める式を作ります。残差は$\hat{\alpha},\hat{\beta}$であらわします。

残差を求める式
$S(\hat{\alpha},\hat{\beta})=\displaystyle\sum_{i=1}^n {e_i}^2 =\sum_{i=1}^n (y_i-\hat{y_i})^2= \sum_{i=1}^n\{(y_i-(\hat{\alpha}+\hat{\beta}x_i)\}^2$

残差$S(\hat{\alpha},\hat{\beta})$を最小化する$\hat{\alpha}$と$\hat{\beta}$を求めるため、この式を$\hat{\alpha}$と$\hat{\beta}$で偏微分します。結果は次の通りです。

偏微分をした式
$\displaystyle\frac{\partial S}{\partial \hat{\alpha}}=-2\sum_{i=1}^n (y_i - \hat{\beta}x_i - \hat{\alpha})=0\tag{A}$
$\displaystyle\frac{\partial S}{\partial \hat{\beta}}=-2\sum_{i=1}^n (x_iy_i - \hat{\beta} x_i^2-\hat{\alpha} x_i)=0\tag{B}$

この式を整理すると次の通りになります。この式は、今後いろいろ意味でよく使われるようになり、正規方程式(normal equation)といわれています。

偏微分の結果を整理した正規方程式
$\displaystyle n\hat{\alpha}+\hat{\beta}\sum x_i=\sum y_i\tag{A-1}$
$\displaystyle \hat{\alpha}\sum x_i+\hat{\beta}\sum x_i^2=\sum x_iy_i\tag{B-1}$

式(A-1)をnで割って、$\hat{\alpha}$を求める式にします。

正規方程式を切片$\alpha$について整理した式
$\displaystyle \hat{\alpha}=\frac{1}{n}\sum y_i-\frac{1}{n}\hat{\beta}\sum x_i\tag{A-2}$

2つの方程式から$\hat{\beta}$について解くため、(A-2)を(B-1)に代入したものが(B-2)、(B-2)を$\hat{\beta}$ でまとめた式が(B-3)になります。

傾きを計算する式
$\displaystyle\left(\frac{1}{n}\sum y_i-\frac{1}{n}\hat{\beta}\sum x_i\right)\sum x_i+\hat{\beta}\sum x_i^2=\sum x_iy_i\tag{B-2}$
$\displaystyle \hat{\beta}\left(\sum x_i^2-\frac{1}{n}\sum x_i\sum x_i \right)=\sum x_iy_i-\frac{1}{n}\sum x_i\sum y_i\tag{B-3}$

$\hat{\beta}$について解くと次の通りになります。

傾きの算式
$\displaystyle \hat{\beta}=\frac{(\sum{x_iy_i)}-\frac{1}{n}(\sum{x_i})(\sum{y_i})} {\sum x_i^2-\frac{1}{n}(\sum x_i)^2}$

これで、$\hat{\beta}$が求まりました。とても複雑なうえに、以前に直感的な方法で求めた式とは少し違うような気がするので、次節で整理します。

回帰直線の回帰係数

傾きを求める式

傾きを求める式の意味するところをつかむために、分散、共分散の簡便法を使います。

共分散、積和

共分散を求めるためには、積和を求めます。積和$x$、$y$とその平均との偏差の積を合計して計算します。

積和の定義通りの計算
$\displaystyle T_{xy}=\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})$

実際には、計算を簡単にするため次の簡便法を使います。

簡便法による積和の計算
$\displaystyle T_{xy}=\sum_{i=1}^nx_iy_i-\frac{1}{n}\left(\sum_{i=1}^n{x_i}\right)\left(\sum_{i=1}^n{y_i}\right)$

ここで、$\hat{\beta}$を求める式の分子を見ると、簡便法の積和と一致します。つまり定義通りの計算式に置き換えることができます。また、共分散は積和をデータ数nで割って計算するので、$\displaystyle S_{xy}=\frac{T_{xy}}{n}$となります。

偏差平方和、分散

同様に、偏差平方和は$x$を例にとると、その平均との偏差の2乗を合計して計算するので、次の通りになります。

偏差平方和の定義通りの計算
$\displaystyle T_{xx}=\sum_{i=1}^n{(x_i - \bar{x})^2}$

実際には、計算を簡単にするため次の簡便法を使います。

偏差平方和の簡便法による計算
$\displaystyle T_{xx}=\sum_{i=1}^n{x_i^2}-\frac{1}{n}\left(\sum_{i=1}^n{x_i}\right)^2$

ここで、$\hat{\beta}$を求める式の分母を見ると、簡便法の偏差平方和と一致し、定義通りの計算式に置き換えることができます。また、分散は偏差平方和をデータ数nで割って計算するので、$\displaystyle S_{xx}=\frac{T_{xx}}{n}$となります。

これまでのことをまとめると、$\hat{\beta}$を求める式は次の通りになります。

傾きのいろいろな表現方法
$\displaystyle \hat{\beta}=\frac{\sum{x_iy_i}-\frac{1}{n}(\sum{x_i})(\sum{y_i})} {\sum x_i^2-\frac{1}{n}(\sum x_i)^2}=\frac{\sum(y_i -\bar{y})(x_i - \bar{x})} {\sum(x_i - \bar{x})^2}=\frac{T_{xy}}{T_{xx}}=\frac{\frac{1}{n}T_{xy}}{\frac{1}{n}T_{xx}}=\frac{S_{xy}}{S_{xx}}$

切片を求める式

最後に(A-2)式から切片$\hat{\alpha}$を求めます。

(A-2)式再掲
$\displaystyle \hat{\alpha}=\frac{1}{n}\sum y_i-\frac{1}{n}\hat{\beta}\sum x_i\tag{A-2}$

この式に、平均は合計÷データの個数なので$\displaystyle\bar{x}=\frac{1}{n}\sum x_i$、$\displaystyle\bar{y}=\frac{1}{n}\sum y_i$を、さらに$\displaystyle \hat{\beta}=\frac{S_{xy}}{S_{xx}}$を代入すると次の通りになります。

切片$\alpha$の算式
$\displaystyle \hat{\alpha}=\bar{y}-\hat{\beta}\bar{x}=\bar{y}-\frac{S_{xy}}{S_{xx}}\bar{x}$

まとめ

回帰直線の式を計算することができました。しかしこの式はあくまでもサンプルのデータの残差が最小になる傾きと切片を求めているだけなので、本当に実務で使えるのかという保証は全くありません。そこで、式のあてはまり具合を検証する必要があります。