我用过 lm()
拟合多个回归模型,用于 R 中的多个(~100 万)响应变量。例如。
allModels <- lm(t(responseVariablesMatrix ~ modelMatrix)
这将返回一个“mlm”类的对象,它就像一个包含所有模型的巨大对象。我想获得每个模型的残差平方和,我可以使用:
summaries <- summary(allModels)
rss1s <- sapply(summaries, function(a) return(a$sigma))
我的问题是我认为“摘要”函数也计算了一大堆其他东西,因此速度很慢。我想知道是否有更快的方法来提取模型的残差平方和?
谢谢!
最佳答案
lm
的输出中有一个分量残差对象,因此您可以通过 sum(output$residuals^2)
获得残差平方和.
编辑:您实际上是从摘要中取出 sigma,即sqrt(sum(output$residuals^2)/output$df.residuals)
对于所有型号使用sapply(allModels, function(a) sqrt(sum(a$residuals^2)/a$df.residuals)))
关于r - 获取 "mlm"返回的 `lm()`对象的残差标准错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254543/