如何加速最小二乘回归中的杠杆率计算(帽子矩阵对角线)?

3

针对稳健拟合问题,我希望通过杠杆值来找到离群值,杠杆值是“帽子”矩阵的对角线元素。设数据矩阵为X(n * p),帽子矩阵为:

Hat = X(X'X)^{-1}X'

其中X'表示X的转置。

n很大时,帽子矩阵是一个巨大的矩阵(n * n)。因此计算它是耗时的。我想知道是否有更快的方法只计算杠杆值?


我刚刚看到了你的答案。非常清晰易懂,对我很有帮助。非常感谢! - areslp
1个回答

2

您没有指定编程语言,因此我将仅关注算法部分。

如果您已经使用QR分解和SVD等正交方法拟合了最小二乘问题,则帽子矩阵是简单的形式。您可以查看我的回答通过QR分解、SVD(和Cholesky分解?)计算投影/帽子矩阵以获取帽子矩阵的显式形式(用LaTeX编写)。请注意,那里的OP想要完整的帽子矩阵,因此我没有演示如何高效地计算仅对角线元素。但这非常简单。请注意,对于正交方法,帽子矩阵最终呈现为QQ'的形式。对角线是逐行内积。不同行之间的叉积给出非对角线元素。在R中,这样的逐行内积可以计算为rowSums(Q ^ 2)

我的回答 如何有效地计算diag(X %% solve(A) %% t(X))而不需要进行矩阵求逆? 是在一个更一般的设置中。帽子矩阵是一个特殊情况,其中 A = X'X。这个答案侧重于使用三角分解(如Cholesky分解和LU分解),并展示如何仅计算对角线元素。您将看到这里使用的是 colSums 而不是 rowSums,因为帽子矩阵最终呈现为一个形式为 Q'Q 的形式。
最后我想指出一些统计学上的内容。高杠杆本身并不表明异常值。高杠杆和高残差(即高Cook距离)的组合才会表明异常值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接