回归问题
矛盾方程是指无解的方程,比如以下方程:
x
1
+
x
2
=
11
x
1
+
x
2
=
12
x_1+x_2=11\\ x_1+x_2=12
x1+x2=11x1+x2=12
那么有人就好奇了,这种方程组有什么用?其实还真的很有用,用处最多的地方就是在测量中,比如初中物理里,一个匀速运动用打点计时器测量距离,假设时间和距离是线性关系,那么多次测量得到的结果就不一定是线性关系。这个时候求速度的方程组就是一个矛盾方程。比如以下实验数据:
x | y |
---|---|
1 | 1.9 |
2 | 3.1 |
3 | 3.9 |
4 | 5.1 |
5 | 6.1 |
从这个数据上看,
x
x
x与
y
y
y大致是呈现一个线性关系的,那么我们就可以用
y
=
k
x
+
b
y=kx+b
y=kx+b来描述这组数据,于是我们有了方程组:
k
+
b
=
1.9
2
k
+
b
=
3.1
3
k
+
b
=
3.9
4
k
+
b
=
5.1
5
k
+
b
=
6.1
k+b=1.9\\ 2k+b=3.1\\ 3k+b=3.9\\ 4k+b=5.1\\ 5k+b=6.1
k+b=1.92k+b=3.13k+b=3.94k+b=5.15k+b=6.1
这个方程明显是个矛盾方程,是没有解的,这个时候我们就想找到最接近的一个解,把这个解作为实验测量结果的线性回归。那么什么解才是最接近的呢?数学上用向量的二范数来定义这个最接近的解。假设这个最接近的解是
x
0
x_0
x0,符合以下条件的就是最接近的解:
∥
A
x
0
−
b
∥
2
=
min
{
∥
A
x
−
b
∥
2
}
\parallel Ax_0-b\parallel_2=\min\{\parallel Ax-b\parallel_2\}
∥Ax0−b∥2=min{∥Ax−b∥2}
所有解里2范数最小的解,就是最接近的解,专业名词叫做最小二乘解。这种求解方法就叫做最小二乘法。
正规方程
最小二乘least-squares解的求解方法,有很多种,比如广义逆法,QR分解法。这篇文章我只说正规方程法。正规方程normal equation也叫法方程,指的是将矛盾方程
A
x
=
b
Ax=b
Ax=b转换为以下方程:
A
T
A
x
=
A
T
b
A^TAx=A^Tb
ATAx=ATb
这个方程就叫正规方程或者法方程。比如以上测量数据的正规方程就是:
A
=
(
1
1
2
1
3
1
4
1
5
1
)
b
=
(
1.9
3.1
3.9
5.1
6.1
)
A
T
A
=
(
55
15
15
5
)
A
T
b
=
(
70.7
20.1
)
(
55
15
15
5
)
x
=
(
70.7
20.1
)
A=\begin{pmatrix} 1 &1\\ 2 &1\\ 3 & 1\\ 4& 1\\ 5 &1 \end{pmatrix}\\ b=\begin{pmatrix} 1.9\\ 3.1\\ 3.9\\ 5.1\\ 6.1 \end{pmatrix}\\ A^TA=\begin{pmatrix}55 & 15\\ 15 & 5\\ \end{pmatrix}\\ A^Tb=\begin{pmatrix}70.7\\ 20.1\\ \end{pmatrix}\\ \begin{pmatrix}55 & 15\\ 15 & 5\\ \end{pmatrix}x=\begin{pmatrix}70.7\\ 20.1\\ \end{pmatrix}
A=
1234511111
b=
1.93.13.95.16.1
ATA=(5515155)ATb=(70.720.1)(5515155)x=(70.720.1)
解得:
k
=
−
4.74
,
b
=
22.11
k=-4.74,b= 22.11
k=−4.74,b=22.11
那么回归出来的直线就是:
y
=
1.04
x
+
0.9
y=1.04x+0.9
y=1.04x+0.9
那么这个直线是什么样子呢?