线性拟合2-正交回归


上一篇文章使用最小二乘法来拟合直线,有一个重要的缺点就是仅考虑了因变量yy存在误差的情况,但是很多情况下,原始点的横纵坐标都会有误差存在。

本文使用正交回归的方法,解决了最小二乘的两个缺点:

  1. 同时考虑了横纵坐标的误差;
  2. 使用点法式直线方程,能够表示二维平面上所有的点。

正交回归

正交方法能够同时考虑自变量xx和因变量yy的误差。正交回归将横纵坐标残差的平方和作为目标函数,来求得最优解。直观地理解,正交回归就是找到一条直线,使得点到直线的距离之和最小。
所以如果拟合点的横纵坐标都包含误差的情况下,使用正交回归能够得到更准确的结果。

目标函数

定义横坐标xx的真值为xx^{\star},估计值为x^\hat{x},则横坐标的误差和残差定义如下:
ηi=xixi \eta_i=x_i-x_i^{\star}
η^i=xix^i \hat{\eta}_i=x_i-\hat{x}_i

要综合考虑横纵坐标的误差,得出的目标函数应该有如下形式:
J2=[(ϵ^i)2+(η^i)2]=[(yiy^i)2+(xix^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}

因为要求目标函数的最小值,所以点(x^i,y^i)(\hat{x}_i,\hat{y}_i)应该是直线上到点(xi,yi)(x_i,y_i)距离最短的点,也就是第ii个点到直线的正交投影点。所以目标函数可以写成:
J2=di2 \bm{J}_2=\sum d_i^2

其中did_i为第ii个点(xi,yi)(x_i,y_i)到拟合直线的距离。

求解推导

上一篇文章中,最小二乘法使用斜截式直线方程的话,会有无法表示的直线,所以本文使用点法式直线方程。

用点法式直线方程的形式来表示拟合的直线a(xx0)+b(yy0)=0a(x-x_0)+b(y-y_0)=0,其中(x0,y0)(x_0,y_0)是直线经过的一个点的坐标,(a,b)(a,b)为直线的法向量。因为向量仅表示一个方向,其长度我们并不关心,所以为了方便计算,我们采用直线的单位法向量来表示。所以有:
a2+b2=1 a^2+b^2=1

ii个点到直线的距离,可以表示为向量(xix0,yiy0)(x_i-x_0,y_i-y_0)(a,b)(a,b)方向上的投影的长度,所以目标函数可以写成:
J2=di2=([xix0,yiy0][a,b])2a2+b2=[a(xix0)+b(yiy0)]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\bm{J}_2分别对x0x_0y0y_0求导,并令其等于00,得:
J2x0=2a[a(xix0)+b(yiy0)]=0J2y0=2b[a(xix0)+b(yiy0)]=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}

上式等号两边同时除以nn,得:
a(xˉx0)+b(yˉy0)=0 a(\bar{x}-x_0)+b(\bar{y}-y_0)=0
其中xˉ\bar{x}yˉ\bar{y}分别为xxyy的均值。

很明显,点(xˉ,yˉ)(\bar{x},\bar{y})满足直线方程,所以一定在直线上。因此可以令x0=xˉx_0=\bar{x}y0=yˉy_0=\bar{y}。此时目标函数变为:
J2=[a(xixˉ)+b(yiyˉ)]2=[ab][(xixˉ)2(xibarx)(yiyˉ)(xixˉ)(yiyˉ)(yiyˉ)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\bm{J}_2除以nn可得:
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}

其中
sxx\bm{s}_{xx}syy\bm{s}_{yy}分别为xxyy的方差,sxy\bm{s}_{xy}xxyy的协方差,
v=[ab]\bm{v}= \left[ \begin{matrix} a \\ b \end{matrix} \right]S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]

很明显,这是一个二次型求最小值的问题。因为S\bm{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}
其中λ1\lambda_1λ2\lambda_2为矩阵S\bm{S}的特征值,q1\bm{q}_1q2\bm{q}_2为对应的特征向量,Q\bm{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}
u1=vTq1u_1=\bm{v}^T \bm{q}_1u2=vTq2u_2=\bm{v}^T \bm{q}_2u=[u1u2]\bm{u}=\left[ \begin{matrix} u_1 \\ u_2 \end{matrix} \right]则:
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}

因为
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
所以u\bm{u}为单位矩阵,即u12+u22=1u_1^2+u_2^2=1

不妨设λ1λ2\lambda_1 \leq \lambda_2,则可以得到:当u1=1u_1=1,u2=0u_2=0的时候,J2\bm{J}_2取得最小值λ1\lambda_1。即v=q1\bm{v}=\bm{q}_1

所以最终结果是拟合直线的法向量v\bm{v}等于对应矩阵S\bm{S}最小特征值的特征向量。

结果整理

拟合直线方程为:a(xx0)+b(yy0)=0a(x-x_0)+b(y-y_0)=0。其中(x0,y0)(x_0,y_0)为直线上一点,向量u=[ab]\bm{u}=\left[ \begin{matrix} a\\ b \end{matrix}\right]为直线的法向量。

最后结果为:
x0=xˉx_0=\bar{x}y0=yˉy_0=\bar{y}

拟合直线的法向量v=[ab]\bm{v}=\left[ \begin{matrix} a\\ b \end{matrix}\right]为矩阵S=[sxxsxysxysyy]\bm{S}= \left[ \begin{matrix} \bm{s}_{xx} & \bm{s}_{xy}\\ \bm{s}_{xy} & \bm{s}_{yy} \end{matrix} \right]的最小特征值对应的特征向量。

几何意义

从正交回归的直观上的理解是:在二维平面上找到一条直线,使得每个点到直线的垂直距离之和最小。也就是说,正交回归优化的是垂直距离。
线性拟合2-正交回归

上图中红色线段即为每个点的竖直误差,正交回归就是找到这样一条直线,使得红色线段的和最小。