我想知道回归包使用了哪些技术(特别是lmR 的函数)来最小化平方和。
它使用梯度下降吗?
期待中的感谢。
我想知道回归包使用了哪些技术(特别是lmR 的函数)来最小化平方和。
它使用梯度下降吗?
期待中的感谢。
不,lm在 R 中不使用梯度下降来拟合线性模型。
线性最小二乘法有一个明确的解决方案。
的可能性,只处理“普通”多元回归:
然后试图找到误差平方和的 argmin 导致最小二乘法线方程(具有代数解 - 但实际上并没有计算出来。lm
大多数回归程序所做的(lm包括)是计算的QR 分解,然后正规方程变为:
,但,所以
可以重铸为
然后(略过很多细节*)是上三角形这一事实来有效地解决该系统。
*(包括使用枢轴/置换矩阵,大R/小R二分法,在解决之前进一步简化上述内容,以及一堆其他问题)
如果您搜索QR 分解最小二乘法,您应该会找到列出全部细节的注释集(但您可能需要学习很多东西才能完全清楚)。
一个经典参考是 Golub 和 Van Loan 的矩阵计算。
虽然这或多或少是当今大多数最小二乘回归代码的工作方式,但您可能会发现一些使用 Choleski 分解或矩阵的奇异值分解的代码,或者在少数情况下使用其他算法。
如果您有相当大的问题,大到足以使典型的分解变得令人望而却步,则更有可能使用梯度下降等其他算法(但不是lm)。