本文章记录通过矩阵最小二乘法,求解二元方程组的线性回归。
假设,二维平面中有三个坐标(1,1)、(2,2)、(3,2),很显然该三个坐标点不是共线的,如何拟合出一条直线使其为最优直线。
将三点的坐标分别带入,可得到如下形式:
{
C
+
D
=
1
C
+
2
D
=
2
C
+
3
D
=
2
(1)
\begin{cases} C + D = 1\\ C + 2D = 2\\ C + 3D = 2\\ \end{cases} \tag{1}
⎩
⎨
⎧C+D=1C+2D=2C+3D=2(1)
显然方程组无解,因为三点不共线。
令:
A
=
[
a
1
a
2
]
=
[
1
1
1
2
1
3
]
A = \left[ \begin{matrix} a1 & a2 \end{matrix} \right] = \left[ \begin{matrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{matrix} \right]
A=[a1a2]=
111123
b
=
[
1
2
2
]
b = \left[ \begin{matrix} 1 \\ 2 \\ 2 \end{matrix} \right]
b=
122
则(1)式可表示为:
A
[
C
D
]
=
A
x
=
b
(2)
A\left[ \begin{matrix} C \\ D \end{matrix} \right]=Ax=b\tag{2}
A[CD]=Ax=b(2)
令(1,p1)、(2,p2)、(3、p3)分别是拟合直线 y = C + Dt 上的与b 对应的三个坐标,其中
P
=
[
p
1
p
2
p
3
]
P=\left[ \begin{matrix} p1 \\ p2 \\ p3 \end{matrix} \right]
P=
p1p2p3
说明:p 是投影的缩写,这里表示b 在拟合直线上的投影点。那么 P 与 b 之间的差值即为误差 e,整个计算过程是为了求出直线,使得 e 最小。
由于 P 中的点均在拟合直线上,所以下列方程有解:
A
x
^
=
P
(3)
A\hat{x}=P\tag{3}
Ax^=P(3)
说明:P 向量是 b 向量在 Col(A) 空间的投影。Col(A) 即 A 矩阵的列空间。
有投影矩阵的性质可得,
(
b
−
A
x
^
)
⊥
a
1
,
(
b
−
A
x
^
)
⊥
a
2
(b - A\hat{x}) ⊥ a1,(b - A\hat{x}) ⊥ a2
(b−Ax^)⊥a1,(b−Ax^)⊥a2
即
A
T
(
b
−
A
x
^
)
=
0
A^T(b - A\hat{x}) = 0
AT(b−Ax^)=0
可得
A
T
A
x
^
=
A
T
b
(4)
A^T A\hat{x}=A^T b \tag4
ATAx^=ATb(4)
计算:
A
T
A
=
[
1
1
1
1
2
3
]
[
1
1
1
2
1
3
]
=
[
3
6
6
14
]
A^T A = \left[ \begin{matrix} 1 & 1 & 1 \\ 1 & 2 & 3 \\ \end{matrix} \right] \left[ \begin{matrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{matrix} \right] = \left[ \begin{matrix} 3 & 6 \\ 6 & 14 \end{matrix} \right]
ATA=[111213]
111123
=[36614]
A
T
b
=
[
1
1
1
1
2
3
]
[
1
2
2
]
=
[
5
11
]
A^T b = \left[ \begin{matrix} 1 & 1 & 1 \\ 1 & 2 & 3 \\ \end{matrix} \right] \left[ \begin{matrix} 1 \\ 2 \\ 2 \end{matrix} \right] = \left[ \begin{matrix} 5 \\ 11 \end{matrix} \right]
ATb=[111213]
122
=[511]
由此得方程组:
{
3
C
+
6
D
=
5
6
C
+
14
D
=
11
(5)
\begin{cases} 3C + 6D = 5\\ 6C + 14D = 11 \end{cases} \tag{5}
{3C+6D=56C+14D=11(5)
解得:
C
=
1
3
,
D
=
1
2
C =\frac{1}{3}, D =\frac{1}{2}
C=31,D=21
即最后求得的拟合直线方程为:
y
=
1
3
+
1
2
t
(6)
y = \frac{1}{3} + \frac{1}{2} t \tag6
y=31+21t(6)
求解过程中的误差
e = p − b e = p - b e=p−b
则误差的最小二乘表示为:
m i n ( l ) = ( C + D − 1 ) 2 + ( C + 2 D − 2 ) 2 + ( C + 3 D − 2 ) 2 min(l) = (C + D - 1)^2 + (C + 2D - 2)^2 + (C + 3D - 2)^2 min(l)=(C+D−1)2+(C+2D−2)2+(C+3D−2)2
利用求导函数等于0 的方式,同样可以求得
C = 1 3 , D = 1 2 C =\frac{1}{3}, D =\frac{1}{2} C=31,D=21.
补充说明
A 的各列线性无关,才使得 A^T A可逆,这是最小二乘法成立的大前提。
至此,结束。
追加题目:
t = 1 ; y = 4 t = 1; y = 4 t=1;y=4
t = 2 ; y = 5 t = 2; y = 5 t=2;y=5
t = 3 ; y = 8 t = 3; y = 8 t=3;y=8
如何将上述三个点,拟合到过原点(0,0)的直线上?