对于 OLS,哪个在数值上更稳定:pinv vs QR

机器算法验证 矩阵 计算统计 矩阵分解 逆矩阵
2022-04-14 18:59:15

如果我正在做标准 OLS 并想要计算 beta 值(OLS 估计器),以下哪一个是数值更稳定的方法?为什么?

假设列X已经以均值为中心并归一化,以解决Y=Xβ+ϵ做:

1)β^pinv=(XX)+XY

2)β^QR=solve(R,QY)

在哪里+表示摩尔-彭罗斯逆,QR来自 QR 分解Xandsolve是一个类似于 python 或 r 中的求解函数的函数。

我会认为(2)更好(XX)+似乎有更高的条件数R,但在实践中(至少在 python 中)我发现从(1)派生的 beta 值可以更好地最小化残差平方和。

1个回答

使用 Moore-Penrose 伪逆X矩阵的X在可以直接解释秩不足设计矩阵的意义上更稳定X. X允许我们自然地使用身份:XXX=XXXX=X; 矩阵X可以用作“代理”矩阵的真正逆矩阵X, 即使逆矩阵X1不存在。此外,“通常”的计算方式X通过使用矩阵的奇异值分解X, 在哪里X=USVT, 在方法上和计算上都经过了很好的研究。我们简单地取对角矩阵中非零奇异值的倒数S,我们很高兴。Moore-Penrose 伪逆在许多证明中很常见,因为它们“只是存在”并大大简化了许多推导

也就是说,在大多数情况下,使用 Moore-Penrose Pseudo-inverse 并不是一个好的做法,除非我们有充分的理由(例如,我们的程序始终使用小的且可能是秩退化的协方差矩阵)。原因是:1. 它可以隐藏我们数据的真正潜在问题(例如变量重复)和 2. 它不必要地昂贵(我们有更好的选择)。最后,注意满秩的 Moore-Penrose 伪逆X可以通过 QR 分解来计算X,X=QR, 作为:X=[R110]QT在哪里R1是一个上三角矩阵,来自“瘦/缩减/瘦”的 QR 分解X. 因此,如果X反正是满级。(Gentle 的矩阵代数:统计学中的理论、计算和应用提供了丰富的信息,如果人们希望进一步探索这个问题——关于广义逆的第 3.6 节应该是一个相关的起点。)

稍微详细说明我的第一点:如果我们遇到共线性问题或只是有一个pn(即比数据点更多的预测变量)而不是使用隐藏问题X. 通过使用 Moore-Penrose 伪逆求解的方程组的条件可能仍然非常糟糕,导致解不稳定和/或误导性推断。因此,如果数值稳定性是一个问题,我建议直接使用正则化而不是 Moore-Penrose 伪逆。请注意,在速度方面,计算X也是有问题的;对于大型系统,基于梯度下降法或交替最小二乘法的潜在迭代方法要快得多(例如,在推荐系统文献中,请参阅 Paterek (2008)改进正则化奇异值分解以实现非常简洁的协同过滤)。