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