线性拟合2-正交回归
文章目錄
- 正交回歸
- 目標(biāo)函數(shù)
- 求解推導(dǎo)
- 結(jié)果整理
- 幾何意義
上一篇文章使用最小二乘法來擬合直線,有一個重要的缺點就是僅考慮了因變量 yyy存在誤差的情況,但是很多情況下,原始點的橫縱坐標(biāo)都會有誤差存在。
本文使用正交回歸的方法,解決了最小二乘的兩個缺點:
正交回歸
正交方法能夠同時考慮自變量xxx和因變量yyy的誤差。正交回歸將橫縱坐標(biāo)殘差的平方和作為目標(biāo)函數(shù),來求得最優(yōu)解。直觀地理解,正交回歸就是找到一條直線,使得點到直線的距離之和最小。
所以如果擬合點的橫縱坐標(biāo)都包含誤差的情況下,使用正交回歸能夠得到更準(zhǔn)確的結(jié)果。
目標(biāo)函數(shù)
定義橫坐標(biāo)xxx的真值為x?x^{\star}x?,估計值為x^\hat{x}x^,則橫坐標(biāo)的誤差和殘差定義如下:
ηi=xi?xi?\eta_i=x_i-x_i^{\star} ηi?=xi??xi??
η^i=xi?x^i\hat{\eta}_i=x_i-\hat{x}_i η^?i?=xi??x^i?
要綜合考慮橫縱坐標(biāo)的誤差,得出的目標(biāo)函數(shù)應(yīng)該有如下形式:
J2=∑[(?^i)2+(η^i)2]=∑[(yi?y^i)2+(xi?x^i)2]\begin{aligned} \bm{J}_2&=\sum[(\hat{\epsilon}_i)^2+(\hat{\eta}_i)^2] \\ &=\sum[(y_i-\hat{y}_i)^2+(x_i-\hat{x}_i)^2] \end{aligned} J2??=∑[(?^i?)2+(η^?i?)2]=∑[(yi??y^?i?)2+(xi??x^i?)2]?
因為要求目標(biāo)函數(shù)的最小值,所以點(x^i,y^i)(\hat{x}_i,\hat{y}_i)(x^i?,y^?i?)應(yīng)該是直線上到點(xi,yi)(x_i,y_i)(xi?,yi?)距離最短的點,也就是第iii個點到直線的正交投影點。所以目標(biāo)函數(shù)可以寫成:
J2=∑di2\bm{J}_2=\sum d_i^2 J2?=∑di2?
其中did_idi?為第iii個點(xi,yi)(x_i,y_i)(xi?,yi?)到擬合直線的距離。
求解推導(dǎo)
上一篇文章中,最小二乘法使用斜截式直線方程的話,會有無法表示的直線,所以本文使用點法式直線方程。
用點法式直線方程的形式來表示擬合的直線a(x?x0)+b(y?y0)=0a(x-x_0)+b(y-y_0)=0a(x?x0?)+b(y?y0?)=0,其中(x0,y0)(x_0,y_0)(x0?,y0?)是直線經(jīng)過的一個點的坐標(biāo),(a,b)(a,b)(a,b)為直線的法向量。因為向量僅表示一個方向,其長度我們并不關(guān)心,所以為了方便計算,我們采用直線的單位法向量來表示。所以有:
a2+b2=1a^2+b^2=1 a2+b2=1
第iii個點到直線的距離,可以表示為向量(xi?x0,yi?y0)(x_i-x_0,y_i-y_0)(xi??x0?,yi??y0?)在(a,b)(a,b)(a,b)方向上的投影的長度,所以目標(biāo)函數(shù)可以寫成:
J2=∑di2=∑([xi?x0,yi?y0]?[a,b])2a2+b2=∑[a(xi?x0)+b(yi?y0)]2\begin{aligned} \bm{J}_2=\sum d_i^2&=\sum\dfrac{([x_i-x_0,y_i-y_0] \cdot [a,b])^2}{a^2+b^2} \\ &=\sum[a(x_i-x_0)+b(y_i-y_0)]^2 \end{aligned} J2?=∑di2??=∑a2+b2([xi??x0?,yi??y0?]?[a,b])2?=∑[a(xi??x0?)+b(yi??y0?)]2?
將目標(biāo)函數(shù)J2\bm{J}_2J2?分別對x0x_0x0?和y0y_0y0?求導(dǎo),并令其等于000,得:
?J2?x0=?2a∑[a(xi?x0)+b(yi?y0)]=0?J2?y0=?2b∑[a(xi?x0)+b(yi?y0)]=0\begin{aligned} \dfrac{\partial \bm{J}_2}{\partial x_0}&=-2a\sum[a(x_i-x_0)+b(y_i-y_0)]=0 \\ \dfrac{\partial \bm{J}_2}{\partial y_0}&=-2b\sum[a(x_i-x_0)+b(y_i-y_0)]=0 \end{aligned} ?x0??J2???y0??J2???=?2a∑[a(xi??x0?)+b(yi??y0?)]=0=?2b∑[a(xi??x0?)+b(yi??y0?)]=0?
上式等號兩邊同時除以nnn,得:
a(xˉ?x0)+b(yˉ?y0)=0a(\bar{x}-x_0)+b(\bar{y}-y_0)=0 a(xˉ?x0?)+b(yˉ??y0?)=0
其中xˉ\bar{x}xˉ和yˉ\bar{y}yˉ?分別為xxx和yyy的均值。
很明顯,點(xˉ,yˉ)(\bar{x},\bar{y})(xˉ,yˉ?)滿足直線方程,所以一定在直線上。因此可以令x0=xˉx_0=\bar{x}x0?=xˉ,y0=yˉy_0=\bar{y}y0?=yˉ?。此時目標(biāo)函數(shù)變?yōu)?#xff1a;
J2=∑[a(xi?xˉ)+b(yi?yˉ)]2=[ab][∑(xi?xˉ)2∑(xi?barx)(yi?yˉ)∑(xi?xˉ)(yi?yˉ)∑(yi?yˉ)2][ab]\begin{aligned} \bm{J}_2&=\sum[a(x_i-\bar{x})+b(y_i-\bar{y})]^2 \\&=\left[ \begin{matrix} a & b \end{matrix}\right]\left[ \begin{matrix} \sum(x_i-\bar{x})^2 & \sum(x_i-bar{x})(y_i-\bar{y}) \\ \sum(x_i-\bar{x})(y_i-\bar{y}) & \sum(y_i-\bar{y})^2 \end{matrix}\right]\left[ \begin{matrix} a \\ b \end{matrix} \right] \end{aligned} J2??=∑[a(xi??xˉ)+b(yi??yˉ?)]2=[a?b?][∑(xi??xˉ)2∑(xi??xˉ)(yi??yˉ?)?∑(xi??barx)(yi??yˉ?)∑(yi??yˉ?)2?][ab?]?
對目標(biāo)函數(shù)J2\bm{J}_2J2?除以nnn可得:
J2=[ab][sxxsxysxysyy][ab]=vTSv\begin{aligned} \bm{J}_2 &=\left[ \begin{matrix} a & b \end{matrix}\right]\left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix}\right]\left[ \begin{matrix} a \\ b \end{matrix} \right] \\&=\bm{v}^T\bm{S}\bm{v} \end{aligned} J2??=[a?b?][sxx?sxy??sxy?syy??][ab?]=vTSv?
其中
sxx\bm{s}_{xx}sxx?和syy\bm{s}_{yy}syy?分別為xxx和yyy的方差,sxy\bm{s}_{xy}sxy?為xxx和yyy的協(xié)方差,
v=[ab]\bm{v}= \left[ \begin{matrix} a \\ b \end{matrix} \right]v=[ab?],S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]S=[sxx?sxy??sxy?syy??]。
很明顯,這是一個二次型求最小值的問題。因為S\bm{S}S為實對稱矩陣,所以可以將其進行正交對角化分解:
S=[q1q2][λ100λ2][q1Tq2T]=QΛQT\begin{aligned} \bm{S} &= \left[ \begin{matrix} \bm{q}_1 & \bm{q}_2 \end{matrix} \right] \left[ \begin{matrix} \lambda_1 & 0\\ 0 & \lambda_2 \end{matrix} \right] \left[ \begin{matrix} \bm{q}_1^T \\ \bm{q}_2^T \end{matrix} \right] \\ &=\bm{Q}\bm{\Lambda}\bm{Q}^T \end{aligned} S?=[q1??q2??][λ1?0?0λ2??][q1T?q2T??]=QΛQT?
其中λ1\lambda_1λ1?和λ2\lambda_2λ2?為矩陣S\bm{S}S的特征值,q1\bm{q}_1q1?和q2\bm{q}_2q2?為對應(yīng)的特征向量,Q\bm{Q}Q為特征向量組成的矩陣,Λ\bm{\Lambda}Λ為特征值組成的對角矩陣。
則有:
J2=vTSv=(vTQ)Λ(vTQ)T\begin{aligned} \bm{J}_2&=\bm{v}^T\bm{S}\bm{v}\\ &=(\bm{v^T}\bm{Q})\bm{\Lambda}(\bm{v^T}\bm{Q})^T \end{aligned} J2??=vTSv=(vTQ)Λ(vTQ)T?
令u1=vTq1u_1=\bm{v}^T \bm{q}_1u1?=vTq1?,u2=vTq2u_2=\bm{v}^T \bm{q}_2u2?=vTq2?,u=[u1u2]\bm{u}=\left[ \begin{matrix} u_1 \\ u_2 \end{matrix} \right]u=[u1?u2??]則:
J2=uTΛu=λ1u12+λ2u22\begin{aligned} \bm{J}_2&=\bm{u}^T\bm{\Lambda}\bm{u}\\ &=\lambda_1u_1^2+\lambda_2u_2^2 \end{aligned} J2??=uTΛu=λ1?u12?+λ2?u22??
因為
uTu=vTQQTv=vTv=1\bm{u}^T\bm{u}=\bm{v}^T\bm{Q}\bm{Q}^T\bm{v}=\bm{v}^T\bm{v}=1 uTu=vTQQTv=vTv=1
所以u\bm{u}u為單位矩陣,即u12+u22=1u_1^2+u_2^2=1u12?+u22?=1。
不妨設(shè)λ1≤λ2\lambda_1 \leq \lambda_2λ1?≤λ2?,則可以得到:當(dāng)u1=1u_1=1u1?=1,u2=0u_2=0u2?=0的時候,J2\bm{J}_2J2?取得最小值λ1\lambda_1λ1?。即v=q1\bm{v}=\bm{q}_1v=q1?
所以最終結(jié)果是擬合直線的法向量v\bm{v}v等于對應(yīng)矩陣S\bm{S}S最小特征值的特征向量。
結(jié)果整理
擬合直線方程為:a(x?x0)+b(y?y0)=0a(x-x_0)+b(y-y_0)=0a(x?x0?)+b(y?y0?)=0。其中(x0,y0)(x_0,y_0)(x0?,y0?)為直線上一點,向量u=[ab]\bm{u}=\left[ \begin{matrix} a\\ b \end{matrix}\right]u=[ab?]為直線的法向量。
最后結(jié)果為:
x0=xˉx_0=\bar{x}x0?=xˉ,y0=yˉy_0=\bar{y}y0?=yˉ?。
擬合直線的法向量v=[ab]\bm{v}=\left[ \begin{matrix} a\\ b \end{matrix}\right]v=[ab?]為矩陣S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]S=[sxx?sxy??sxy?syy??]的最小特征值對應(yīng)的特征向量。
幾何意義
從正交回歸的直觀上的理解是:在二維平面上找到一條直線,使得每個點到直線的垂直距離之和最小。也就是說,正交回歸優(yōu)化的是垂直距離。
上圖中紅色線段即為每個點的豎直誤差,正交回歸就是找到這樣一條直線,使得紅色線段的和最小。
總結(jié)
以上是生活随笔為你收集整理的线性拟合2-正交回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D视觉应用案例:法兰件/引擎盖/控制臂
- 下一篇: notability录音定位_《Nota