1、引言
- 求最小二乘的实例:
假定x, y有如下数值:
y | 1.00 | 0.90 | 0.90 | 0.81 | 0.60 | 0.56 | 0.35
x | 3.60 | 3.70 | 3.80 | 3.90 | 4.00 | 4.10 | 4.20
解:将这些数值画图可以看出接近一条直线,故用y=ax+b表示,故将上面的数值代入表达式有:
由于直线只有两个未知数a, b,理论上只需要两个方程就能求得,但是实际上是不可能的,因为所有点并没有真正的在同一条直线上,即不可能所有的数值都满足
误差的平方即二乘方,故成为最小二乘法。
2、最小二乘法理论(使得平方和最小)
2.1 数学理论推导
- 线性方程组
该方程组可能无解,即任何一组x1,x2,...,xs(这里为系数)都可能使得
不等于零。所以找到一组x1,x2,...,xs使得(2)式最小,称这样的解为最小二乘解,这种问题就叫最小二乘方问题。
对于(1)式,我们可以用矩阵来表示,
自变量矩阵A:
函数值B:
系数X:
函数值Y:
故(2)式等价于:
也就是说,最小二乘法就是找x1,x2,...,xs使得Y与B的距离最短。
对于(4)式Y,可以写为如下形式:
其中αi为对应的列向量,由αi生成的子空间为L(α1,α2,...,αs),那么Y就是L(α1,α2,...,αs)中的向量,故最小二乘法问题可叙述成:
找X使得(2)式最小,就是在L(α1,α2,...,αs)中找一向量Y使得B到它的距离比到子空间L(α1,α2,...,αs)中其它向量的距离都短。
设Y=AX=x1α1+x2α2+...+xsαs,则
必须垂直于子空间L(α1,α2,...,αs),故有
由向量内积的定义可知:
向量的内积:
α=(a1,a2,...,an),
β=(b1,b2,...,bn),
则α和β的内积为:(α,β)=a1b1+a2b2+...+anbn
由(6)式可得:
即:
从而有:
其中|A′A|≠0
2.2 常见形式
2.2.1 理论
根据2.1节,可以得出以下形式(s+1≤n):
这里是常见的方程表示形式aj为系数,b为常数项,xij为自变量,yi为函数值。一般我们解方程都是根据aj和b求得yi=a1xi1+a2xi2+...+asxis+b,但在解决实际问题时,一般我们都是知道xij和yi,需要反过来求解aj和b。
根据(2.2.1)式,设:
那么:
2.2.2 算法
- 算法步骤
1、输入X,y
2、求a=(X′X)−1X′y
参考
《高等代数》北大三版