最小二乘法(Least Squares Method)是一种用于数据拟合的方法,通过最小化观测值与模型预测值之间的误差平方和,来求得模型参数的最优估计。下面以一元线性回归为例,详细推导最小二乘法的过程。
一、问题描述#
给定 n 组数据点 (x1,y1),(x2,y2),…,(xn,yn),希望用一个线性函数
y=ax+b来拟合这些数据点。目标是找到参数 a 和 b,使得拟合直线与观测数据之间的误差平方和最小。
二、残差平方和#
对于每一个数据点 i,其观测值为 yi,拟合值为 y^i=axi+b。因此,残差为
ri=yi−(axi+b)残差平方和 S 定义为:
S(a,b)=i=1∑n[yi−(axi+b)]2我们的目标是最小化 S(a,b)。
三、求最优参数#
令 S(a,b) 关于 a 和 b 的偏导数为零,得到极值点。
1、对 a 求偏导#
∂a∂S=i=1∑n2[yi−(axi+b)]⋅(−xi)=−2i=1∑nxi[yi−(axi+b)]令 ∂a∂S=0,得
i=1∑nxiyi−ai=1∑nxi2−bi=1∑nxi=02、对 b 求偏导#
∂b∂S=i=1∑n2[yi−(axi+b)]⋅(−1)=−2i=1∑n[yi−(axi+b)]令 ∂b∂S=0,得
i=1∑nyi−ai=1∑nxi−bn=0
四、联立方程#
将上面的两个式子整理如下:
{∑i=1nxiyi=a∑i=1nxi2+b∑i=1nxi∑i=1nyi=a∑i=1nxi+bn令
- Sx=∑i=1nxi
- Sy=∑i=1nyi
- Sxx=∑i=1nxi2
- Sxy=∑i=1nxiyi
上式变为:
{Sxy=aSxx+bSxSy=aSx+bn
五、求解 a 和 b#
第一步,先用第二个方程解出 b:
b=nSy−aSx把 b 代入第一个方程:
Sxy=aSxx+(nSy−aSx)SxSxy=aSxx+nSxSy−anSx2Sxy−nSxSy=a(Sxx−nSx2)a=Sxx−nSx2Sxy−nSxSy再代入 b 的表达式:
b=nSy−aSx
六、均值符号下的表达式#
设
- x=n1∑i=1nxi
- y=n1∑i=1nyi
则有
a=∑i=1n(xi−x)2∑i=1n(xi−x)(yi−y)b=y−ax由于 S(a,b) 是关于 a 和 b 的二次函数,且系数矩阵为正定(Sxx−Sx2/n>0,只要 xi 不全相等),因此该极值点为唯一全局最小值,即最小二乘解。