回归包中平方和最小化算法

机器算法验证 r 回归 最小二乘 算法
2022-03-27 07:14:44

我想知道回归包使用了哪些技术(特别是lmR 的函数)来最小化平方和。

它使用梯度下降吗?

期待中的感谢。

1个回答

不,lm在 R 中不使用梯度下降来拟合线性模型。

线性最小二乘法有一个明确的解决方案。

的可能性,只处理“普通”多元回归:y

E(y)=β0+β1x1+β2x2++βpxp+ϵ

=Xβ+ϵ

然后试图找到误差平方和的 argmin 导致最小二乘法线方程(具有代数解 - 但实际上并没有计算出来。(XTX)β^=XTyβ^=(XTX)1XTylm

大多数回归程序所做的(lm包括)是计算的QR 分解然后正规方程变为:X

(RTQTQR)β^=XTy,但,所以QTQ=I

(RTR)β^=(RTQT)y可以重铸为

RT(Rβ^)=RT(QTy)

然后(略过很多细节*)是上三角形这一事实来有效地解决该系统。R

*(包括使用枢轴/置换矩阵,大R/小R二分法,在解决之前进一步简化上述内容,以及一堆其他问题)

如果您搜索QR 分解最小二乘法,您应该会找到列出全部细节的注释集(但您可能需要学习很多东西才能完全清楚)。

一个经典参考是 Golub 和 Van Loan 的矩阵计算

虽然这或多或少是当今大多数最小二乘回归代码的工作方式,但您可能会发现一些使用 Choleski 分解或矩阵的奇异值分解的代码,或者在少数情况下使用其他算法。XTX

如果您有相当大的问题,大到足以使典型的分解变得令人望而却步,则更有可能使用梯度下降等其他算法(但不是lm)。