最小二乘法简介
最小二乘法(Least Squares)是回归分析中的一种标准方法,它是用来近似超定系统(Overdetermined System)答案的一种方法。超定系统是指数学中的一种概念,一组包含未知数的方程组中,如果方程的数量大于未知数的数量,那么这个系统就是一个超定系统(超定方程组)。超定系统(超定方程组)一般是无解的,只能求近似解。而最小二乘法就是求超定方程组近似解的一种方法。
举个通俗的例子,如下二维平面图中有很多个点,假设我们想用一条直线来拟合数据,即期望能找到一条直线能最好地穿过这些数据点。
那么图中,一个点就可以构造一个方程,而未知数显然只有两个(直线的斜率和截距),因此这就是一个超定系统,我们是没有办法找到一条完美的直线,使得上述的点都在直线上。因此,我们只能期望找到一条最好的“适配(best fitting line)”直线来拟合这些数据。那么,什么样的直线才是我们需要的呢?在定义这样的直线之前,我们先定义一些变量:
首先,使用 yiy_{i}yi 表示数据 xix_{i}xi 的观测结果,即真实值,或者是观测的响应变量(observed response)。
其次,xix_{i}xi 表示第 iii 个数据,即第 iii 个预测变量(predictor value)
最后,y^i\hat{y}_{i}y^i 表示第 iii 个数据的实验结果,即预测的响应变量(predicted response)。
注意,上述表述中没有严格区分变量和数值的含义。那么,我们假设最佳的直线表示如下:
y^=βxi+β0 \hat{y} = \beta x_{i} + \beta_{0} y^=βxi+β0
有了这条直线之后,我们就可以使用已知的 xxx 来预测其对应的标签 yyy。例如,假设 xxx 是某个学生的体重,yyy 是某个学生的身高,建立了学生的体重和身高之间的回归方程之后我们就可以在已知学生的体重的情况下来预测学生的身高了。但是实际上,我们的预测未必是准确的,例如体重为32公斤的学生,实际身高是1.27米,但是我们预测的结果可能是1.17米,那么我们预测的结果和真实的结果之间就有了一个预测误差prediction error(残差,residual error)。这个之间的差值是0.1米。某个我们最终确定的直线在训练集中会产生 nnn 个这样的误差。我们希望这 nnn 个误差的平均值越小越好。最小误差的那个直线就是我们期望找到的直线。
因此,找一条直线能使得所有点离这个直线的距离平均值最小的这种近似的结果就是回归分析的目标。
最小二乘(Least squares)的含义就是在整体的优化方案中,最小化每个方程结果的残差平方和。
最小二乘法主要包含了两大类方法,一种是线性最小二乘法(Linear Least Squares),一种是非线性最小二乘法(Nonlinear Least Squares)。
线性最小二乘法主要包括如下三种类型:
- 普通最小二乘法(Ordinary Least Squares, OLS)
- 加权最小二乘法(Weighted Least Squares, WLS)
- 广义最小二乘法(Generalized Least Squares, GLS )
线性模型的形式(参考:线性回归的符号表示和相关公式):
y^=XβT \hat{y} = {X} {\beta}^T y^=XβT
其中,βββ 是回归系数(包含了偏差),也是我们待求的结果。数据就是给定的 (X,y)(X, y)(X,y)。一般情况下这个方程是无解的,我们希望能找到一个最优的βββ可以最好的适配数据:
β^=argminβS(β) {\hat{\beta}} = \arg min _{\beta} S({\beta}) β^=argminβS(β)
其中S(β)S(β)S(β)是目标函数:
S(β)=∑i=1m∣yi−∑j=1nxijβj∣2=∥y−XβT∥2 S(\beta)=\sum_{i=1}^{m}\left|y_{i}-\sum_{j=1}^{n} x_{i j} \beta_{j}\right|^{2}=\left\|y-\mathbf{X} \beta^{T}\right\|^{2} S(β)=i=1∑m∣∣∣∣∣yi−j=1∑nxijβj∣∣∣∣∣2=∥∥y−XβT∥∥2
为什么要采用这个形式的目标函数呢?因为这样的最小化问题在X的列是线性独立的情况下,有唯一的解。
普通最小二乘法(Ordinary Least Squares)
普通最小二乘法是应用最广泛的一种最小二乘法,它的目标是求得一个使得全局残差平方和最小的参数。
普通最小二乘法要求残差满足Gauss-Markov假设,即:
也就是说,残差的期望为0,协方差是单位矩阵,与自变量的协方差为0。
加权最小二乘法(Weighted Least Squares)
加权最小二乘法和普通最小二乘法形式类似,只是残差不满足Gauss-Markov假设,其残差的协方差不要求是单位矩阵,而是对角阵,且对角线的值不相等。即:
这里的∑是对角阵,对角线上的值不相等。
前面说到,我们回归的目标函数是:
S(β)=∑i=1m(yi−∑j=1nxijβj)2 S(\beta)=\sum_{i=1}^{m}\left(y_{i}-\sum_{j=1}^{n} x_{i j} \beta_{j}\right)^{2} S(β)=i=1∑m(yi−j=1∑nxijβj)2
但是有时候我们希望给某些观测值更高的权重,那么我们的目标函数就变成了:
S(β)=∑i=1mwi(yi−∑j=1nxijβj)2 S(\beta)=\sum_{i=1}^{m}w_{i}\left(y_{i}-\sum_{j=1}^{n} x_{i j} \beta_{j}\right)^{2} S(β)=i=1∑mwi(yi−j=1∑nxijβj)2
这就是加权最小二乘法。为什么要使用这个权重呢?在普通最小二乘法中,我们的因变量方差是一个常数,即:
var(yi)=σi2 var(y_i) = \sigma_i^2 var(yi)=σi2
假设我们使用如下权重:
wi=1σi2 w_i = \frac{1}{\sigma_i^2} wi=σi21
那么,WLS比普通最小二乘法有更小的标准差。实际上使用上述权重可以得到最小的标准差,是最优的结果。