在统计学中,普通最小二乘法(Ordinary Least Squares,OLS)是一种用于在线性回归
模型中估计未知参数的线性最小二乘法。 OLS通过最小二乘法原则选择一组解释变量的线性函数的参数:最小化给定数据集中观察到的因变量(被预测变量的值)与预测变量之间残差的平方和。
一元线性回归求解过程
我们先以一元线性模型为例来说明。
假设有一组数据,我们希望求出对应的一元线性模型来拟合这一组数据:
既然要拟合,总要有一个拟合程度高低的判断标准,上文说到,最小二乘法中使用的就是误差平方和方法,所以,这时候损失函数,或者说我们的目标函数就是:
有了这个目标函数,我们要做的就是求出和使得最小,在这里就是极小值。
求极值的一个很好的方法就是求导,在这里因为有多个参数,所以,我们要分别对和求偏导:
因为,, 所以,上面第二个,也就是对的偏导可以转化为:
我们知道,目标函数取得极值时,偏导一定是等于0的,所以,我们令等于0,于是有:
接着,我们继续回到上面第一个偏导,也就是对的偏导,令,并将代入,得:
根据求和性质
可得:
求和性质:
求和性质,具体可以参考Introductory Econometrics A Modern Approach (Fourth Edition) 一书(计量经济学导论,第4版,杰弗里·M·伍德里奇 著)的附录A。
分子得证
分母得证
有了上述推导证明,普通最小二乘法一般形式可以写成(字母盖小帽表示估计值,具体参考应用概率统计):
的普通最小二乘解为:
多元线性回归求解过程
对于多元的情况,需要使用矩阵运算来求解,先用矩阵表示:
其中,
目标函数:
如果要使上述目标函数最小,显然其结果为0,即:
也就是说:
最终获得解:
可以看出,对于一般的最小二乘法多元求解,使用矩阵运算即可,都不需要迭代 。
此处不做证明,具体可参考《应用概率统计》 张国权著 第九章 回归分析
最小二乘法 VS 梯度下降法
通过上面推导可知,最小二乘法可以矩阵运算求解,这种方法十分方便快捷,但这种方法不是万能的,因为线性最小二乘的解是closed-form即 ,而非线性最小二乘没有closed-form(即 没有可逆矩阵),这时候矩阵运算求解就行不通,这时候就可以通过迭代法(梯度下降法)求最优解。
来具体说说这两种方法的区别:
最小二乘法 | 梯度下降法 |
---|---|
不需要设置学习率 | 需要设置学习率 |
一次运算得出最优解 | 需要多次迭代求解最优解 |
矩阵求逆得复杂度时,所以数据维度越大,效率越低,甚至不可接受 | 维度较大时也适用 |
只适用于线性模型 | 适用性高,各种模型都可以使用 |
迭代法,即在每一步update未知量逐渐逼近解,可以用于各种各样的问题(包括最小二乘),比如求的不是误差的最小平方和而是最小立方和。
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法(一定程度上可视为标准非线性最小二乘求解方法)。
还有一种叫做Levenberg-Marquardt的迭代法用于求解非线性最小二乘问题,就结合了梯度下降和高斯-牛顿法。
所以如果把最小二乘看做是优化问题的话,那么梯度下降是求解方法的一种,是求解线性最小二乘的一种,高斯-牛顿法和Levenberg-Marquardt则能用于求解非线性最小二乘。
莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解。此算法能借由执行时修改参数达到结合高斯-牛顿算法以及梯度下降法的优点,并对两者之不足作改善(比如高斯-牛顿算法之反矩阵不存在或是初始值离局部极小值太远)
然后Levenberg-Marquardt方法的好处就是在于可以调节:
如果下降太快,使用较小的λ,使之更接近高斯牛顿法
如果下降太慢,使用较大的λ,使之更接近梯度下降法