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

时间:2016-12-02 14:41:19

标签: matrix regression least-squares outliers robust

对于鲁棒拟合问题,我想通过杠杆值找到异常值,杠杆值是'Hat'矩阵的对角元素。设数据矩阵为X(n * p),Hat矩阵为:

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

其中X'X的转置。

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

1 个答案:

答案 0 :(得分:1)

您没有指定编程语言,所以我只关注算法部分。

如果你已经拟合了最小二乘问题正交方法,如QR分解和SVD,那么帽子矩阵就是简单的形式。您可以查看我的答案Compute projection / hat matrix via QR factorization, SVD (and Cholesky factorization?),了解帽子矩阵的明确形式(用LaTeX编写)。注意,OP需要完整的帽子矩阵,所以我没有演示如何有效地计算对角线元素。但它真的很简单。请注意,对于正交方法,hat矩阵最终以QQ'形式结束。对角线是行内产品。不同行之间的交叉产品给出了对角线。在R中,这样的行内积可以计算为rowSums(Q ^ 2)

我的回答How to compute diag(X %% solve(A) %% t(X)) efficiently without taking matrix inverse?处于更一般的环境中。 Hat矩阵是A = X'X的特例。这个答案集中在使用像Cholesky分解和LU分解这样的三角分解,并展示了如何仅计算对角元素。您会在此处看到colSums而不是rowSums,因为帽子矩阵的格式为Q'Q

最后,我想指出一些统计数据。单独的高杠杆率并不表示异常值。高杠杆和高残差(即高库克距离)的组合表示异常值。