【发布时间】:2019-11-19 13:54:34
【问题描述】:
在对线性统计模型进行预测时,我们通常有一个模型矩阵X,其中包含与我们要进行预测的点相对应的预测变量;系数向量beta;和方差-协方差矩阵V。计算预测只是X %*% beta。计算预测的方差最直接的方法是
diag(X %*% V %*% t(X))
或稍微更有效
diag(X %*% tcrossprod(V,X))
但是,这是非常低效的,因为当我们真正想要的只是对角线时,它会构造一个 n*n 矩阵。我知道我可以写一些 Rcpp-loopy 的东西来计算对角线项,但我想知道 R 中是否有一个现有的线性代数技巧可以很好地做我想要的......(如果有人想写Rcpp-loopy 对我来说作为答案我不会反对,但我更喜欢纯 R 解决方案)
FWIW predict.lm 似乎通过将 X 乘以 lm 的 QR 分解的 R 分量的倒数来做一些聪明的事情;我不确定它是否总是可用,但这可能是一个很好的起点(请参阅here)
【问题讨论】:
标签: r linear-algebra