author@jason_ql http://blog.csdn.net/lql0716
假定 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 表示,故将上面的数值代入表达式有:
3.6a+b−1.00=03.7a+b−0.90=03.8a+b−0.90=03.9a+b−0.81=04.0a+b−0.60=04.1a+b−0.56=04.2a+b−0.35=0
由于直线只有两个未知数 a , b,理论上只需要两个方程就能求得,但是实际上是不可能的,因为所有点并没有真正的在同一条直线上,即不可能所有的数值都满足
ax+b−y=0 ,故只需找到一对儿 a 、b,使得误差平方和 ∑(axi+b−yi)2=(ax0+b−y0)2+(ax1+b−y1)2+......+(axn+b−yn)2 最小即可。误差的平方即二乘方,故成为最小二乘法。
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪a11x1+a12x2+...+a1sxs−b1=0,a21x1+a22x2+...+a2sxs−b2=0,......an1x1+an2x2+...+ansxs−bn=0, (1)
该方程组可能无解,即任何一组 x1,x2,...,xs (这里为系数)都可能使得
∑i=1n(ai1x1+ai2x2+...+aisxs−bi)2(2)
不等于零。所以找到一组 x1,x2,...,xs 使得(2)式最小,称这样的解为最小二乘解,这种问题就叫最小二乘方问题。
对于(1)式,我们可以用矩阵来表示, 自变量矩阵 A :
A=⎡⎣⎢⎢⎢a11a21.an1a12a22.an2..........a1sa2s.ans⎤⎦⎥⎥⎥(3)
函数值 B :
B=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢b1b2...bn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥(4)
系数 X :
X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢x1x2...xs⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥(5)
函数值 Y :
Y=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∑j=1sa1jxj∑j=1sa2jxj...∑j=1sanjxj⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=AX(4)
故(2)式等价于:
|Y−B|2=|AX−B|2=∑i=1n(ai1x1+ai2x2+...+aisxs−bi)2
也就是说,最小二乘法就是找 x1,x2,...,xs 使得 Y 与 B 的距离最短。
对于(4)式 Y ,可以写为如下形式:
Y=x1⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢a11a21...an1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥+x2⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢a12a22...an2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥+...+xs⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢a1sa2s...ans⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥=x1α1+x2α2+...+xsαs(5)
其中 α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 ,则
C=B−Y=B−AX
必须垂直于子空间 L(α1,α2,...,αs) ,故有
(C,α1)=(C,α2)=...=(C,αs)=0
由向量内积的定义可知:
α′1C=0,α′2C=0,...,α′sC=0(6)
向量的内积:
α=(a1,a2,...,an) ,
β=(b1,b2,...,bn) ,
则 α 和 β 的内积为: (α,β)=a1b1+a2b2+...+anbn
由(6)式可得:
A′C=0
即:
A′C=A′(B−Y)=A′(B−AX)=0
从而有:
A′B−A′AX=0
A′B=A′AX
X=(A′A)−1A′B
其中 |A′A|≠0
根据2.1节,可以得出以下形式( s+1≤n ):
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪a1x11+a2x12+...+asx1s+b−y1=0,a1x21+a2x22+...+asx2s+b−y2=0,......a1xn1+a2xn2+...+asxns+b−yn=0, (2.2.1)
这里是常见的方程表示形式 aj 为系数, b 为常数项,xij为自变量, yi 为函数值。一般我们解方程都是根据 aj 和 b 求得yi=a1xi1 a2xi2 ... asxis b,但在解决实际问题时,一般我们都是知道 xij 和 yi ,需要反过来求解 aj 和 b 。
根据(2.2.1)式,设:
X=⎡⎣⎢⎢⎢x11x21.xn1x12x22.xn2..........x1sx2s.xns1111⎤⎦⎥⎥⎥
a=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢a1a2...asb⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
y=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2...yn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
那么:
Xa=y
X′Xa=X′y
a=(X′X)−1X′y
《高等代数》北大三版