上一篇是用正交回归算法来拟合直线。本文将正交回归一般化,当原始点的横纵坐标都有噪声和误差,并且噪声不同时,就可以考虑在目标函数中假如权值。这样看起来就像是斜投影,所以也可以说是优化的斜距离。
戴明回归
正交方法考虑的是自变量x和因变量y有相同方差的情况。但是更一般的,可能自变量和因变量的测量方式是不一样的,这样会造成两个方差的不同,因此应该给与不同的考虑。戴明回归就相当于求加权的正交回归,是正交回归向一般化方向的推导。
总结一下:
- 最小二乘法优化的是竖直距离;
- 正交回归优化的垂直距离;
- 戴明回归优化的是斜距离。
对比如下图所示:
目标函数
假设ϵi和ηi都符合正态分布且相互独立,其方差分别为:sxx和syy。定义方差比δ为:
δ=sxxsyy
在大部分情况下,测量一组数据的环境和方法基本是不变的,所以同一组数据的方差应该不会变化。在后面的计算中,我们都假设它们的方差为常值,所以它们的方差比δ也为常值。
同样使用直线方程y=ax+b来进行拟合。假设最后拟合直线的参数为a^和b^,则有:
y^i=a^x^i+b^
目标函数可以写成:
J3=∑(syyϵi2+sxxηi2)=syy1∑((yi−yi⋆)2+δ(xi−xi⋆)2)
因为syy为常数,所以可以将目标函数写成:
J3=∑[(yi−axi⋆−b)2+δ(xi−xi⋆)2]
所以最终目的是求a,b,xi⋆的值,使得目标函数J3最小。
求解结果
为了求目标函数的最小值,应该将目标函数J3分别对xi⋆,a,b求导。然后令三个式子等于0,应该就能解出三个参数的值。
推导过程有些复杂,如果感兴趣可以看文章最后的详细推导过程。
这里直接写出求解结果:
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧a^=2sxysyy−δsxx+(syy−δsxx)2+4δsxy2b^=yˉ−a^xˉx^i=xi+a^2+δa^(yi−b^−a^xi)
所以最后拟合曲线的斜率为a^,与y轴的截距为b^,而且第i个点的横坐标的估计值为x^i。
其中sxx和syy为x和y的样本方差,sxy为x和y的协方差。
验证正交回归
因为戴明回归是正交回归的一般化推导,所以在特殊情况下,一般回归就变为正交回归,这个特殊情况就是方差比δ=1。
所以当δ=1时,最后结果可以化简为:
{a2(sxy)+a(−syy+sxx)−sxy=0b=yˉ−axˉ
这与正交回归的结果一致。
附录:详细推导过程
对xi⋆求导:
首先对xi⋆求导。因为是要求目标函数的最小值,应该是对任意i,目标函数都取最小值,所以目标函数对xi⋆求导时,可以推导其中一个i:
xi⋆∂J2i=∂xi⋆∂[(yi−axi⋆−b)2+δ(xi−xi⋆)2]=−2a(yi−axi⋆−b)−2δ(xi−xi⋆)=2(−ayi+a2xi⋆+ab−δxi+δxi⋆)
令xi⋆∂J2i=0,得:
−ayi+a2xi⋆+ab−δxi+δxi⋆=0
解得:
xi⋆=a2+δayi+δxi−ab
对b求导:
将目标函数J2对b求导:
∂b∂J2=∂b∂∑[(yi−axi⋆−b)2+δ(xi−xi⋆)2]=∑(−2yi+2axi⋆+2b)
令∂b∂J2=0,得:
−∑yi+a∑xi⋆+nb=0
解得:
b=n1∑(yi−axi⋆)
将上面求得的xi⋆=a2+δayi+δxi−ab带入,得:
b=n1∑(yi−axi⋆)=n1∑(yi−aa2+δayi+δxi−ab)=n1∑(yi−aa2+δayi+δxi+a2+δa2b)
继续化简得:
b(1−a2+δa2)=n1∑(yi−aa2+δayi+δxi)=n1∑[yi(1−a2+δa2)−xia2+δaδ]
最后解得:
b=n1∑(yi−xia)=yˉ−axˉ
所以,可以得:
b=yˉ−axˉ
对a求导:
将目标函数J2对a求导:
∂a∂J2=∂a∂∑[(yi−axi⋆−b)2+δ(xi−xi⋆)2]=−2∑[(yi−axi⋆−b)xi⋆]
令∂a∂J2=0,得:
∑[(yi−axi⋆−b)xi⋆]=0
同样,将xi⋆=a2+δayi+δxi−ab代入,得:
∑[(yi−b−aa2+δayi+δxi−ab)a2+δayi+δxi−ab]=0
等号两边同时乘a2+δ,可以得:
∑{[(yi−b)(a2+δ)−a2(yi−b)−aδxi][δxi+a(yi−b)]}=0
继续化简得:
0=+−a2(bδ∑xi−∑δ∑xiyi)a(b2δ−2bδ∑yi+δ∑yi2−δ2∑xi2)bδ2∑xi+δ2∑xiyi
将b=yˉ−axˉ带入,得:
0=+++a3(nxˉ2−xˉ∑xi)a2(yˉ∑xi−∑xiyi−2nxˉyˉ+2xˉ∑yi)a(∑yi2+nyˉ2−2yˉ∑yi+δxˉ∑xi−δ∑xi2)δ(∑xiyi−yˉ∑xi)
继续化简,对每一项都除以n,可以得:
0=++a2(xˉyˉ−xyˉ−2xˉyˉ+2xˉyˉ)a[y2ˉ+yˉ2−2yˉ2+δ(x2ˉ−xˉ2)]δ(xyˉ−xˉyˉ)
最后化简为:
a2(−sxy)+a(syy−δsxx)+δsxy=0
这是一个二元一次方程组,解得:
a=2sxy−(syy−δsxx)±(syy−δsxx)2+4δsxy2
因为syy−δsxx≤(syy−δsxx)2+4δsxy2总是成立的,所以上式分子只能是正或者负。又因为a的值应该与sxy的符号保持一致,所以上式分子应该取正号。