線形代数 · 最小二乗法

最小二乗法

最小二乗法は、縦方向の誤差の2乗の和をできるだけ小さくするように、データに直線を当てはめます。幾何学的には、当てはめた値はデータベクトルの列空間への射影であり、誤差はその空間に垂直です。

この図で見る最小二乗法

3点が一直線上に並ぶことはまれなので、どの直線でもいくつかの点を通りません。左には点、最良の直線、その残差があります。残差は縦方向のずれで、その2乗の和がSSEです。右では同じ3つの高さが空間内の1つのベクトルになり、最良の直線を求めることは、そのベクトルを平面に射影することになります。点を動かしたり、自分の直線を試したり、2つのより単純なモデルを比較したりできます。

残差平方和
SSE=∑i=13(yi−c−mxi)2\mathrm{SSE} = \sum_{i=1}^{3} (y_i - c - m x_i)^2

なぜデータが1つの点になるのでしょうか。3つの高さを1つのベクトルb⃗=(y1,y2,y3)\vec b = (y_1, y_2, y_3)として書きます。これが右の青い矢印です。各軸は1つの高さを測るので、軸の名前はy1,y2,y3y_1, y_2, y_3です。直線は3つのxix_iで値c+mxic + m x_iをとり、これは1=(1,1,1)\mathbf 1 = (1, 1, 1)とおくとベクトルc 1+m x⃗c\,\mathbf 1 + m\,\vec xになります。一般モデルy=c+mxy = c + mxでxix_iがすべて同じでなければ、ccとmmを変化させると、これらのベクトルは1\mathbf 1とx⃗\vec xを通る透明な平面を埋めます。つまり、左に描けるどの直線も、その平面上の1点に対応します。

任意の直線を選びます。その残差はb⃗\vec bの座標から平面上の対応する点の座標を引いたものなので、SSEは2点間の距離の2乗です。したがって最良の直線は、平面上でb⃗\vec bに最も近い点p⃗\vec p、つまり正射影に対応します。残差ベクトルr⃗=b⃗−p⃗\vec r = \vec b - \vec pは平面に垂直なので、1\mathbf 1にもx⃗\vec xにも垂直です。この2つの直角を式で表したものが正規方程式です。

正規方程式
r⃗⋅1=∑ri=0,r⃗⋅x⃗=∑xiri=0\vec r\cdot\mathbf 1 = \sum r_i = 0, \qquad \vec r\cdot\vec x = \sum x_i r_i = 0

直角とつり合いをオンにすると、残差が同じ硬さの縦向きのばねになります。その合力は∑ri\sum r_iに比例し、原点まわりの力のモーメントは∑xiri\sum x_i r_iに比例します。一般の直線を最良に当てはめると、両方が0になります。定数モデルでは合力だけが0になればよく、原点を通る直線では力のモーメントだけが0になれば十分です。

赤で描かれた自分の直線は、常に現在のモデルに属します。したがって、その点q⃗\vec qはp⃗\vec pと同じ平面上または直線上にあります。p⃗\vec pからq⃗\vec qへの変位もその空間内にあり、r⃗\vec rはその空間に垂直なので、三平方の定理によって誤差が正確に分解されます。自分のSSEが最小になるのは、q⃗=p⃗\vec q = \vec pのとき、かつそのときに限ります。

自分の直線と最良の直線の比較
SSE(q⃗)=SSEmin⁡+∣p⃗−q⃗∣2\mathrm{SSE}(\vec q) = \mathrm{SSE}_{\min} + |\vec p - \vec q|^2

2つの小さなモデルでは、それぞれ1つの列だけを残します。y=cy = cを当てはめることは、b⃗\vec bを1\mathbf 1を通る直線に射影することで、ccは高さの平均値になります。y=mxy = mxを当てはめる場合は、x⃗\vec xを通る直線に射影します。ただし、すべてのxix_iが0なら、射影先は原点だけです。xix_iがすべて同じでなければ、これらは平面内の異なる2本の直線です。どちらのモデルも他方を含まず、一般の直線モデルは両方と同等以上によく当てはまります。線形回帰の中心にあるのも、この射影です。

注目する点

  • 残差は縦方向に測ります。最小二乗法が測るのは各xxでのyyのずれであり、点から直線への最短距離ではありません。
  • 一般モデルで3つのxix_iがすべて等しくなると、平面は1\mathbf 1を通る直線に縮みます。中空の丸印を通る直線はどれも同じよさで当てはまるため、最良の直線は一意ではありません。それでもp⃗\vec pは一意です。
  • パラメータ平面では、一般モデルのSSEをccとmmの関数として表示します。各データ点には、その点をちょうど通るパラメータの組(c,m)(c, m)からなる直線が対応し、現在のモデルの最良のパラメータが青で示されます。

操作

  • 右の図は回転と拡大・縮小だけができます。左の点は上下にドラッグでき、パネルにxxを入力すると横に動かせます。

関連項目