上一篇文章使用最小二乘法來擬合直線,有一個重要的缺點就是僅考慮了因變量
y存在誤差的情況,但是很多情況下,原始點的橫縱座標都會有誤差存在。
本文使用正交回歸的方法,解決了最小二乘的兩個缺點:
- 同時考慮了橫縱座標的誤差;
- 使用點法式直線方程,能夠表示二維平面上所有的點。
正交回歸
正交方法能夠同時考慮自變量x和因變量y的誤差。正交回歸將橫縱座標殘差的平方和作爲目標函數,來求得最優解。直觀地理解,正交回歸就是找到一條直線,使得點到直線的距離之和最小。
所以如果擬合點的橫縱座標都包含誤差的情況下,使用正交回歸能夠得到更準確的結果。
目標函數
定義橫座標x的真值爲x⋆,估計值爲x^,則橫座標的誤差和殘差定義如下:
ηi=xi−xi⋆
η^i=xi−x^i
要綜合考慮橫縱座標的誤差,得出的目標函數應該有如下形式:
J2=∑[(ϵ^i)2+(η^i)2]=∑[(yi−y^i)2+(xi−x^i)2]
因爲要求目標函數的最小值,所以點(x^i,y^i)應該是直線上到點(xi,yi)距離最短的點,也就是第i個點到直線的正交投影點。所以目標函數可以寫成:
J2=∑di2
其中di爲第i個點(xi,yi)到擬合直線的距離。
求解推導
上一篇文章中,最小二乘法使用斜截式直線方程的話,會有無法表示的直線,所以本文使用點法式直線方程。
用點法式直線方程的形式來表示擬合的直線a(x−x0)+b(y−y0)=0,其中(x0,y0)是直線經過的一個點的座標,(a,b)爲直線的法向量。因爲向量僅表示一個方向,其長度我們並不關心,所以爲了方便計算,我們採用直線的單位法向量來表示。所以有:
a2+b2=1
第i個點到直線的距離,可以表示爲向量(xi−x0,yi−y0)在(a,b)方向上的投影的長度,所以目標函數可以寫成:
J2=∑di2=∑a2+b2([xi−x0,yi−y0]⋅[a,b])2=∑[a(xi−x0)+b(yi−y0)]2
將目標函數J2分別對x0和y0求導,並令其等於0,得:
∂x0∂J2∂y0∂J2=−2a∑[a(xi−x0)+b(yi−y0)]=0=−2b∑[a(xi−x0)+b(yi−y0)]=0
上式等號兩邊同時除以n,得:
a(xˉ−x0)+b(yˉ−y0)=0
其中xˉ和yˉ分別爲x和y的均值。
很明顯,點(xˉ,yˉ)滿足直線方程,所以一定在直線上。因此可以令x0=xˉ,y0=yˉ。此時目標函數變爲:
J2=∑[a(xi−xˉ)+b(yi−yˉ)]2=[ab][∑(xi−xˉ)2∑(xi−xˉ)(yi−yˉ)∑(xi−barx)(yi−yˉ)∑(yi−yˉ)2][ab]
對目標函數J2除以n可得:
J2=[ab][sxxsxysxysyy][ab]=vTSv
其中
sxx和syy分別爲x和y的方差,sxy爲x和y的協方差,
v=[ab],S=[sxxsxysxysyy]。
很明顯,這是一個二次型求最小值的問題。因爲S爲實對稱矩陣,所以可以將其進行正交對角化分解:
S=[q1q2][λ100λ2][q1Tq2T]=QΛQT
其中λ1和λ2爲矩陣S的特徵值,q1和q2爲對應的特徵向量,Q爲特徵向量組成的矩陣,Λ爲特徵值組成的對角矩陣。
則有:
J2=vTSv=(vTQ)Λ(vTQ)T
令u1=vTq1,u2=vTq2,u=[u1u2]則:
J2=uTΛu=λ1u12+λ2u22
因爲
uTu=vTQQTv=vTv=1
所以u爲單位矩陣,即u12+u22=1。
不妨設λ1≤λ2,則可以得到:當u1=1,u2=0的時候,J2取得最小值λ1。即v=q1
所以最終結果是擬合直線的法向量v等於對應矩陣S最小特徵值的特徵向量。
結果整理
擬合直線方程爲:a(x−x0)+b(y−y0)=0。其中(x0,y0)爲直線上一點,向量u=[ab]爲直線的法向量。
最後結果爲:
x0=xˉ,y0=yˉ。
擬合直線的法向量v=[ab]爲矩陣S=[sxxsxysxysyy]的最小特徵值對應的特徵向量。
幾何意義
從正交回歸的直觀上的理解是:在二維平面上找到一條直線,使得每個點到直線的垂直距離之和最小。也就是說,正交回歸優化的是垂直距離。
上圖中紅色線段即爲每個點的豎直誤差,正交回歸就是找到這樣一條直線,使得紅色線段的和最小。