acpass

最小二乗法

知識マップ

統計用語

ひとことで言うと

最小二乗法は『データ点と直線の縦のズレ(残差)を二乗して全部足したものを、いちばん小さくする直線を選ぶ』という、回帰直線の決め方そのものです。なぜ二乗なのか、どう解くのか——偏微分してゼロとおく『正規方程式』を立てれば、係数が一意に求まります。

5点の散布図 x=(1,2,3,4,5), y=(2,3,5,4,6) に最小二乗回帰直線 y=1.3+0.9x(緑)を当てはめた図。各点から直線へ下ろした縦の赤破線が残差で、残差平方和Sum(yi-b0-b1xi)^2を最小にするように直線を選ぶ。最適解では残差の和Sum ei=0かつSum ei*xi=0(残差は説明変数と直交)が成り立つ残差平方和を最小化→Σei=0, Σei・xi=0(残差⊥説明変数)y=1.3+0.9xyx

5点 x=(1,2,3,4,5), y=(2,3,5,4,6)x=(1,2,3,4,5),\ y=(2,3,5,4,6) への最小二乗回帰直線 y^=1.3+0.9x\hat y=1.3+0.9x(緑)。各点から直線へ下ろした縦の破線が残差 eie_i。残差平方和 (yib0b1xi)2\sum(y_i-b_0-b_1x_i)^2 を最小にする直線が解で、最適解では ei=0\sum e_i=0 かつ eixi=0\sum e_i x_i=0

数式で表すと

minb0,b1(yib0b1xi)2\min_{b_0,b_1}\sum (y_i-b_0-b_1x_i)^2

残差平方和を最小化して回帰係数を求める方法。正規方程式の解。

最小二乗法(OLS)は、回帰直線 y^=b0+b1x\hat y=b_0+b_1 x の係数 b0,b1b_0,b_1 を『残差平方和を最小にする』という基準で決める方法です。残差とは各データ点の実測値 yiy_i と直線による予測値 b0+b1xib_0+b_1 x_i の差 ei=yi(b0+b1xi)e_i=y_i-(b_0+b_1 x_i) で、最小化する目的関数は S(b0,b1)=i(yib0b1xi)2S(b_0,b_1)=\sum_{i}(y_i-b_0-b_1 x_i)^2 です。なぜ二乗か——絶対値だと折れ曲がって微分できず解析的に解けないのに対し、二乗は滑らかで微分でき、大きなズレをより強く罰するため、偏微分=0という明快な条件で唯一の解が得られます。 解き方は、SSb0,b1b_0,b_1 それぞれで偏微分してゼロとおく正規方程式です。b0b_0 で偏微分すると S/b0=2(yib0b1xi)=0\partial S/\partial b_0=-2\sum(y_i-b_0-b_1 x_i)=0b1b_1 で偏微分すると S/b1=2xi(yib0b1xi)=0\partial S/\partial b_1=-2\sum x_i(y_i-b_0-b_1 x_i)=0。残差 ei=yib0b1xie_i=y_i-b_0-b_1 x_i を使って書き直すと、この2式はそのまま ei=0,eixi=0\sum e_i=0,\qquad \sum e_i x_i=0 という条件になります。前者は残差の和がゼロ(直線が点の重心 (xˉ,yˉ)(\bar x,\bar y) を通る)、後者は残差と説明変数 xx が直交する(残差に xx で説明できる成分が残っていない)ことを意味します。この2式を b0,b1b_0,b_1 について解くと b1=Sxy/Sxxb_1=S_{xy}/S_{xx}b0=yˉb1xˉb_0=\bar y-b_1\bar x という単回帰の公式が出てきます。 実務上の注意を2つ。ひとつは、最小二乗で最小化しているのは『yy 方向の縦のズレ』であって、点から直線への垂線距離ではないこと。だから xxyy の役割を入れ替えると、一般に別の直線になります。もうひとつは、最小二乗法は外れ値を含むとそれに引きずられやすいこと——二乗が大きなズレを強調するため、1点の異常値が直線を大きく動かすことがあります。

試験に出る性質

目的関数

残差平方和 S=(yib0b1xi)2S=\sum(y_i-b_0-b_1 x_i)^2 を最小化する。二乗は微分可能で大きなズレを強く罰するので解が一意に定まる。

正規方程式

S/b0=0, S/b1=0\partial S/\partial b_0=0,\ \partial S/\partial b_1=0 の連立。これを解くと b1=Sxy/Sxx, b0=yˉb1xˉb_1=S_{xy}/S_{xx},\ b_0=\bar y-b_1\bar x が得られる。

残差の和はゼロ

最適解では ei=0\sum e_i=0。直線は点の重心 (xˉ,yˉ)(\bar x,\bar y) を必ず通る。

残差は説明変数と直交

最適解では eixi=0\sum e_i x_i=0。残差に xx で説明できる成分が残っていない(直交条件)。

y方向の最小化・非対称

縦のズレを最小化するので x,yx,y を入れ替えると別の直線になる。外れ値に引きずられやすい点にも注意。

例で見る

x=(1,2,3,4,5), y=(2,3,5,4,6)x=(1,2,3,4,5),\ y=(2,3,5,4,6)xˉ=3, yˉ=4\bar x=3,\ \bar y=4Sxx=10, Sxy=9S_{xx}=10,\ S_{xy}=9 より b1=Sxy/Sxx=9/10=0.9b_1=S_{xy}/S_{xx}=9/10=0.9b0=yˉb1xˉ=40.93=1.3b_0=\bar y-b_1\bar x=4-0.9\cdot3=1.3。予測値 y^=(2.2,3.1,4.0,4.9,5.8)\hat y=(2.2,3.1,4.0,4.9,5.8)。 残差 e=(0.2,0.1,1.0,0.9,0.2)e=(-0.2,-0.1,1.0,-0.9,0.2)ei=0\sum e_i=0eixi=0\sum e_i x_i=0。SSE =ei2=1.90=\sum e_i^2=1.90

つまずきポイント

  • 最小化しているのを『点から直線への垂線距離』だと誤解する(最小二乗は yy 方向の縦のズレの二乗和。x,yx,y 入替で別の直線になる)
  • 正規方程式を立てずに公式 b1=Sxy/Sxxb_1=S_{xy}/S_{xx} を暗記だけで使う(公式は偏微分=0を解いた結果。導出元の ei=0,eixi=0\sum e_i=0,\sum e_i x_i=0 を押さえる)
  • 外れ値の影響を軽視する(二乗が大きなズレを強調するため、1点の異常値で直線が大きく動くことがある)

定着クイズ

最小二乗法が最小化するのは?

最小二乗解で残差が満たす条件は?

x=(1..5),y=(2,3,5,4,6)x=(1..5),y=(2,3,5,4,6)Sxx=10,Sxy=9S_{xx}{=}10,S_{xy}{=}9)の傾き b1b_1 は?

この用語を扱う問題(1