最小二乘法(Least Squares)

本文介绍了最小二乘法的基本概念及应用,通过实例演示了如何求解不相容方程组的最小二乘解,并展示了QR分解求解最小二乘问题的方法。

最小二乘法(Least Squares)

  实际问题中常出现Ax=bAx=bAx=b不相容(无解)的情况,这时候就希望找到近似解xxx,使得AxAxAx尽量接近bbb

  定义:如果m×nm\times nm×n的矩阵AAA和向量bbb属于RmR^mRm,则Ax=bAx=bAx=b的最小二乘解(Least Squares Solutions)是RnR^nRn中的x^\hat{x}x^,使得∣∣b−Ax^∣∣≤∣∣b−Ax∣∣||b-A\hat{x}||\le ||b-Ax||bAx^bAx对所有的x∈Rnx\in R^nxRn都成立。

  最小二乘解的最终要的特征是,无论怎么选取xxx,向量AxAxAx必然属于列空间Col ACol\space ACol A,所以需要寻找xxx使得AxAxAxCol ACol\space ACol A中最接近bbb的点。

  定理:方程Ax=bAx=bAx=b的最小二乘解集和法方程ATAx=ATbA^TAx=A^TbATAx=ATb的非空解集一致。

  注意,这里ATAx=ATbA^TAx=A^TbATAx=ATb称为Ax=bAx=bAx=b的法方程(normal equations),此法方程的解给出所有Ax=bAx=bAx=b的最小二乘解,在统计学中常记为XTXβ=xTyX^TX\beta=x^TyXTXβ=xTy

例1:求不相容方程组Ax=bAx=bAx=b的最小二乘解,其中A=[400211]A=\begin{bmatrix}4&0\\0&2\\1&1\end{bmatrix}A=401021b=[2011]b=\begin{bmatrix}2\\0\\11\end{bmatrix}b=2011

解:

由法方程得:
ATAx=ATbA^TAx=A^TbATAx=ATb

ATA=[401021][400211]=[17115]A^TA=\begin{bmatrix}4&0&1\\0&2&1\end{bmatrix}\begin{bmatrix}4&0\\0&2\\1&1\end{bmatrix}=\begin{bmatrix}17&1\\1&5\end{bmatrix}ATA=[400211]401021=[17115]

ATb=[401021][2011]=[1911]A^Tb=\begin{bmatrix}4&0&1\\0&2&1\end{bmatrix}\begin{bmatrix}2\\0\\11\end{bmatrix}=\begin{bmatrix}19\\11\end{bmatrix}ATb=[400211]2011=[1911]

ATAx=ATbA^TAx=A^TbATAx=ATb可以变为:

[17115][x1x2]=[1911]\begin{bmatrix}17&1\\1&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}19\\11\end{bmatrix}[17115][x1x2]=[1911]

由于ATAA^TAATA的秩为2,可逆,所以可求得(ATA)−1=184[5−1−117](A^TA)^{-1}=\frac{1}{84}\begin{bmatrix}5&-1\\-1&17\end{bmatrix}(ATA)1=841[51117]

ATAx=ATbA^TAx=A^TbATAx=ATb可以解得:x=x^=(ATA)−1ATb=184[5−1−117][1911]=[12]x=\hat{x}=(A^TA)^{-1}A^Tb=\frac{1}{84}\begin{bmatrix}5&-1\\-1&17\end{bmatrix}\begin{bmatrix}19\\11\end{bmatrix}=\begin{bmatrix}1\\2\end{bmatrix}x=x^=(ATA)1ATb=841[51117][1911]=[12]

例2:求方程组Ax=bAx=bAx=b的最小二乘解,其中:
A=[110011001010101010011001]A=\begin{bmatrix}1&1&0&0\\1&1&0&0\\1&0&1&0\\1&0&1&0\\1&0&0&1\\1&0&0&1\end{bmatrix}A=111111110000001100000011b=[−3−10251]b=\begin{bmatrix}-3\\-1\\0\\2\\5\\1\end{bmatrix}b=310251

解:

ATA=[6222220020202002]A^TA=\begin{bmatrix}6&2&2&2\\2&2&0&0\\2&0&2&0\\2&0&0&2\end{bmatrix}ATA=6222220020202002

MATLAB求AAA的秩为3,所以AAA不可逆。

ATb=[4−426]A^Tb=\begin{bmatrix}4\\-4\\2\\6\end{bmatrix}ATb=4426

由于无法求出(ATA)−1(A^TA)^{-1}(ATA)1,所以可以通过增广矩阵化简的方法求(ATA)x=(ATb)(A^TA)x=(A^Tb)(ATA)x=(ATb)的通解:

[622242200−42020220026]→[10013010−1−5001−1−200000]\begin{bmatrix}6&2&2&2&4\\2&2&0&0&-4\\2&0&2&0&2\\2&0&0&2&6\end{bmatrix}\rightarrow \begin{bmatrix}1&0&0&1&3\\0&1&0&-1&-5\\0&0&1&-1&-2\\0&0&0&0&0\end{bmatrix}6222220020202002442610000100001011103520

通解也是Ax=bAx=bAx=b的最小二乘解为:

x=[x1x2x3x4]=[3−5−20]+x4[−1111]x=\begin{bmatrix}x_1\\x_2\\x_3\\x_4\end{bmatrix}=\begin{bmatrix}3\\-5\\-2\\0\end{bmatrix}+x_4\begin{bmatrix}-1\\1\\1\\1\end{bmatrix}x=x1x2x3x4=3520+x41111

使用QR分解求最小二乘解

  定理:如果m×nm\times nm×n的矩阵AAA的各列线性无关,A=QRA=QRA=QR是矩阵AAA的QR分解(其中QQQ为一个m×nm\times nm×n的矩阵,其各列形成Col A的一个标准正交基,RRR是一个n×nn\times nn×n的上三角可逆矩阵,且在对角线上的元素为正数),那么对每一个属于RmR^mRmbbb,方程Ax=bAx=bAx=b有唯一的最小二乘解x^=R−1QTb\hat{x}=R^{-1}Q^Tbx^=R1QTb

  又因为上面的RRR是一个上三角矩阵,所以x^=R−1QTb\hat{x}=R^{-1}Q^Tbx^=R1QTb可变形为
Rx^=QTbR\hat{x}=Q^TbRx^=QTb,解这个形式的方程计算量更小。

例:求方程组Ax=bAx=bAx=b的最小二乘解,其中:
A=[135110112133]A=\begin{bmatrix}1&3&5\\1&1&0\\1&1&2\\1&3&3\end{bmatrix}A=111131135023b=[357−3]b=\begin{bmatrix}3\\5\\7\\-3\end{bmatrix}b=3573

使用MATLAB求QR分解求得:

A =

       1              3              5       
       1              1              0       
       1              1              2       
       1              3              3       

>> [Q R]=qr(A)

Q =

      -1/2            1/2           -1/2           -1/2     
      -1/2           -1/2            1/2           -1/2     
      -1/2           -1/2           -1/2            1/2     
      -1/2            1/2            1/2            1/2     


R =

      -2             -4             -5       
       0              2              3       
       0              0             -2       
       0              0              0   

A=[−1212−12−12−12−1212−12−12−12−1212−12121212][−2−4−502300−2000]=[135110112133]A=\begin{bmatrix}-\frac{1}{2}&\frac{1}{2}&-\frac{1}{2}&-\frac{1}{2}\\-\frac{1}{2}&-\frac{1}{2}&\frac{1}{2}&-\frac{1}{2}\\-\frac{1}{2}&-\frac{1}{2}&-\frac{1}{2}&\frac{1}{2}\\-\frac{1}{2}&\frac{1}{2}&\frac{1}{2}&\frac{1}{2}\end{bmatrix}\begin{bmatrix}-2&-4&-5\\0&2&3\\0&0&-2\\0&0&0\end{bmatrix}=\begin{bmatrix}1&3&5\\1&1&0\\1&1&2\\1&3&3\end{bmatrix}A=21212121212121212121212121212121200042005320=111131135023

经验算,上述QR分解(由于QR分解不是唯一的,上述分解可能和手算不一致)是正确的。

>> QT = Q.'

QT =

      -1/2           -1/2           -1/2           -1/2     
       1/2           -1/2           -1/2            1/2     
      -1/2            1/2           -1/2            1/2     
      -1/2           -1/2            1/2            1/2  
b =

       3       
       5       
       7       
      -3       

>> QT*b

ans =

      -6       
      -6       
      -4       
      -2  

可见如果用MATLAB的QR分解得到的矩阵,就会有

Rx=QTbRx=Q^TbRx=QTb

[−2−4−502300−2000][x1x2x3]=[−6−6−4−2]\begin{bmatrix}-2&-4&-5\\0&2&3\\0&0&-2\\0&0&0\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}-6\\-6\\-4\\-2\end{bmatrix}200042005320x1x2x3=6642

增广矩阵:
[−2−4−5−6023−600−2−4]→[10010010−60012]\begin{bmatrix}-2&-4&-5&-6\\0&2&3&-6\\0&0&-2&-4\end{bmatrix}\rightarrow \begin{bmatrix}1&0&0&10\\0&1&0&-6\\0&0&1&2\end{bmatrix}2004205326641000100011062

解得Rx=QTbRx=Q^TbRx=QTb的最小二乘解x^\hat{x}x^为:

x^=[10−62]\hat{x}=\begin{bmatrix}10\\-6\\2\end{bmatrix}x^=1062

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值