線性代數 · 最小平方法

最小平方法

最小平方法以鉛直誤差的平方和最小為標準,找出擬合資料的直線。從幾何上看,擬合值是資料向量在行空間上的投影,而誤差與行空間垂直。

從圖中看最小平方法

三個點很少恰好共線,所以任何直線都會錯過其中一些點。左圖是資料點、最佳直線與它的殘差,也就是鉛直方向的偏差;殘差平方加總就是SSE。右圖將同樣的三個高度組成空間中的一個向量,找最佳直線就成了將這個向量投影到平面上。你可以移動資料點、試畫自己的直線,也可以比較兩種較簡單的模型。

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

為什麼資料會變成一個點?將三個高度寫成一個向量b⃗=(y1,y2,y3)\vec b = (y_1, y_2, y_3),就是右圖的藍色箭頭。右圖的三根軸稱為y1,y2,y3y_1, y_2, y_3,因為每根軸測量的都是一個高度。一條直線在三個xix_i處取值為c+mxic + m x_i,合起來就是向量c 1+m x⃗c\,\mathbf 1 + m\,\vec x,其中1=(1,1,1)\mathbf 1 = (1, 1, 1)。在一般模型y=c+mxy = c + mx中,只要xix_i不全相同,隨著cc與mm改變,這些向量便會鋪滿通過1\mathbf 1與x⃗\vec x的透明平面。因此,左圖能畫出的每條直線,都對應到該平面上的一個點。

任取一條直線,它的殘差就是b⃗\vec b的座標減去該直線在平面中對應點的座標,因此SSE是兩點的距離平方。所以最佳直線對應平面中最接近b⃗\vec b的點p⃗\vec p,也就是正交投影。殘差向量r⃗=b⃗−p⃗\vec r = \vec b - \vec p與平面垂直,因而同時垂直於1\mathbf 1與x⃗\vec x。將這兩個直角條件寫出來,就是正規方程式:

正規方程式
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

兩個較簡單的模型各保留一個行向量。擬合y=cy = c會將b⃗\vec b投影到通過1\mathbf 1的直線上,得到的cc就是三個高度的平均數。擬合y=mxy = mx則投影到通過x⃗\vec x的直線;若所有xix_i皆為0,就只剩投影到原點。當xix_i不全相同時,這是平面中的兩條不同直線。兩個模型互不包含,而一般直線模型的擬合至少與兩者一樣好。線性迴歸的核心也是同一種投影。

值得留意

  • 殘差是鉛直的。最小平方法測量的是每個xx處的yy偏差,而不是資料點到直線的最短距離。
  • 在一般模型中,若三個xix_i都相同,平面就縮成通過1\mathbf 1的直線。所有通過空心圓環的直線都擬合得一樣好,所以最佳直線不唯一,但p⃗\vec p仍然唯一。
  • 參數平面將一般模型的SSE表示為cc與mm的函數。每個資料點都對應一條由參數對(c,m)(c, m)組成的直線,這些參數都能完全擬合該資料點。藍色標示目前模型的最佳參數。

操作方式

  • 右圖只能旋轉與縮放。在左圖上下拖曳資料點;若要水平移動某個點,請在面板輸入它的xx座標。

相關內容