確率・統計 · 線形回帰

線形回帰

単回帰は、縦方向の残差の平方和をできるだけ小さくする直線ŷ = a + bxを当てはめます。ここでは自分の直線を移動・回転させて最小値を探し、当てはめた直線と、それが要約する点群を比べられます。

この図で見る線形回帰

単回帰は、最小二乗直線y^=a+bx\hat y = a + bxを使ってxxからyyを予測します。残差の平方和が最も小さい直線です。点の残差e=y−y^e = y - \hat yは、点が直線よりどれだけ上にあるかを表し、下なら負です。点が少ないときは各残差に正方形がつくので、和が目に見える面積になります。自分の直線を移動・回転させて最小値を探し、当てはめた直線を1000個の点からなる模擬点群と比べられます。

なぜ直線は中心(xˉ,yˉ)(\bar x, \bar y)を通るのでしょうか。任意の直線をy=h+b(x−xˉ)y = h + b(x - \bar x)と書き、hhをxˉ\bar xでの高さとします。残差の和はn(yˉ−h)n(\bar y - h)となり、平方和は2つに分かれます。

任意の直線の平方和:高さの部分と傾きの部分
SSE=n(yˉ−h)2+P(b),P(b)=Syy−2b Sxy+b2Sxx\mathrm{SSE} = n(\bar y - h)^2 + P(b), \qquad P(b) = S_{yy} - 2b\,S_{xy} + b^2 S_{xx}

ここでSxxS_{xx}、SyyS_{yy}、SxyS_{xy}は、平均からのずれの平方和と積和です。最初の部分は高さだけ、次の部分は傾きだけで決まるので、どの傾きでも最適な高さはyˉ\bar yです。つまり最適な直線は中心を通り、残差の和は0になります。中心の周りで回すと、和は放物線P(b)P(b)に沿って変わります。xxの値がすべて同じでなければ、唯一の最小点はb=Sxy/Sxxb = S_{xy}/S_{xx}にあります。

R2R^2は何を測るのでしょうか。水平線y=yˉy = \bar yは放物線の傾き0の位置に対応し、その平方和が全変動SST=Syy\mathrm{SST} = S_{yy}です。当てはめた直線はSSE\mathrm{SSE}を残します。yyの値にばらつきがあるとき、R2=1−SSE/SSTR^2 = 1 - \mathrm{SSE}/\mathrm{SST}はyyの変動のうち直線が説明する割合です。両方の座標にばらつきがあればR2=r2R^2 = r^2なので、相関0.5が説明するのは4分の1だけです。説明するとは当てはめることで、原因を示すことではありません。

なぜ直線は点群より緩やかなのでしょうか。標準化した単位での予測はz^y=r zx\hat z_y = r\,z_xです。そのため∣r∣<1|r| < 1なら、xˉ\bar xから離れた点に対する予測値は、yˉ\bar yからの距離を標準偏差で測ると、元の点のxˉ\bar xからの距離より小さくなります。模擬点群のような楕円形の点群では、傾き±sy/sx\pm s_y/s_xの標準偏差直線が見た目の点群の向きに沿い、回帰直線はそれより緩やかです。データを引き戻す力があるわけではありません。この効果はこのようなデータならどれでも成り立ちます。逆にyyからxxを予測しても同じ効果が見られ、中心を通るもう1本の直線は図ではより急になります。このような点群でxxの狭い帯ごとにyyの平均を取ると、効果が見えます。平均は回帰直線に近いものの、ぴったり重なるわけではありません。回帰という名前はフランシス・ゴルトンによる1886年の身長の研究に由来します。非常に背が高い親や低い親の子どもは、平均するとそれほど極端ではありませんでした。

直線はどんなときに誤解を招くのでしょうか。1個の点を1上げると、その点自身の当てはめ値はてこ比h=1/n+(x−xˉ)2/Sxxh = 1/n + (x - \bar x)^2/S_{xx}だけ上がります。てこ比はxˉ\bar xから離れるほど大きくなります。xx方向に遠く離れて孤立した点では、てこ比が1に近くなることがあります。直線がその点について動くため、他のどの点とも合わなくても、自身の残差は小さく見えます。大きな点群でも、そのような1点が直線を回転させることがあります。またrrが1に近くても、残差は両端で正、中央で負となり、どんな直線でもたどれない曲線を描くことがあります。

注目すること

  • 軸の尺度にかかわらず、正方形は画面上で正方形として描かれるため、その面積はe2e^2と同じ比率で比較できます。

操作

  • 点群の点を押すと、その残差とてこ比が表示されます。空白を押すと自分の点を追加できます。
  • キーボードでは↑ ↓で直線の支点を動かし、回転ハンドルを1回に1°ずつ回します。1回の操作で中心や水平位置を越える場合はそこで止まり、答えを表示中なら最小二乗の傾きを越える場合もそこで止まります。

関連する概念