如何在最小二乘回归中加速杠杆(帽子矩阵的对角线)的计算?
How to accelerate the computation of leverage (diagonals of hat matrix) in least square regression?
对于鲁棒拟合问题,我想通过杠杆值找到异常值,杠杆值是'Hat'矩阵的对角线元素。设数据矩阵为X
(n * p),Hat矩阵为:
Hat = X(X'X)^{-1}X'
其中 X'
是 X
的转置。
当n
很大时,Hat矩阵很大(n * n
)。所以计算它很耗时。我想知道是否有更快的方法来计算杠杆值?
你没有指定编程语言,所以我只关注算法部分。
如果您已拟合 QR 分解和 SVD 等最小二乘问题正交方法,则帽矩阵为简单形式。您可以查看我的回答 Compute projection / hat matrix via QR factorization, SVD (and Cholesky factorization?) 以了解帽矩阵的明确形式(用 LaTeX 编写)。注意,那里的 OP 需要完整的帽子矩阵,所以我没有演示如何有效地只计算对角线元素。但这真的很简单。请注意,对于正交方法,帽子矩阵以 QQ'
形式结束。对角线是行内积。不同行之间的叉积给出非对角线。在 R 中,这样的行内积可以计算为 rowSums(Q ^ 2)
.
我的回答 是在更笼统的设置中。帽子矩阵是 A = X'X
的特例。该答案着重于 Cholesky 分解和 LU 分解等三角分解的使用,并展示了如何仅计算对角线元素。您会在这里看到 colSums
而不是 rowSums
,因为帽子矩阵以 Q'Q
.
形式结束
最后我想指出一些统计数据。单独的高杠杆并不表示异常值。高杠杆率和高残差(即高库克距离)的组合表示异常值。
对于鲁棒拟合问题,我想通过杠杆值找到异常值,杠杆值是'Hat'矩阵的对角线元素。设数据矩阵为X
(n * p),Hat矩阵为:
Hat = X(X'X)^{-1}X'
其中 X'
是 X
的转置。
当n
很大时,Hat矩阵很大(n * n
)。所以计算它很耗时。我想知道是否有更快的方法来计算杠杆值?
你没有指定编程语言,所以我只关注算法部分。
如果您已拟合 QR 分解和 SVD 等最小二乘问题正交方法,则帽矩阵为简单形式。您可以查看我的回答 Compute projection / hat matrix via QR factorization, SVD (and Cholesky factorization?) 以了解帽矩阵的明确形式(用 LaTeX 编写)。注意,那里的 OP 需要完整的帽子矩阵,所以我没有演示如何有效地只计算对角线元素。但这真的很简单。请注意,对于正交方法,帽子矩阵以 QQ'
形式结束。对角线是行内积。不同行之间的叉积给出非对角线。在 R 中,这样的行内积可以计算为 rowSums(Q ^ 2)
.
我的回答 A = X'X
的特例。该答案着重于 Cholesky 分解和 LU 分解等三角分解的使用,并展示了如何仅计算对角线元素。您会在这里看到 colSums
而不是 rowSums
,因为帽子矩阵以 Q'Q
.
最后我想指出一些统计数据。单独的高杠杆并不表示异常值。高杠杆率和高残差(即高库克距离)的组合表示异常值。