获取`lm()`返回的"mlm"对象的残余标准错误

use*_*118 6 regression r linear-regression lm mlm

我曾经习惯于lm()拟合多个回归模型,用于R中的多个(~100万个)响应变量.例如.

allModels <- lm(t(responseVariablesMatrix ~ modelMatrix)
Run Code Online (Sandbox Code Playgroud)

这将返回类"mlm"的对象,它类似于包含所有模型的巨大对象.我想为每个模型获得剩余的平方和,我可以使用:

summaries <- summary(allModels)
rss1s <- sapply(summaries, function(a) return(a$sigma))
Run Code Online (Sandbox Code Playgroud)

我的问题是,我认为"摘要"功能也计算了一大堆其他东西,因此非常慢.我想知道是否有更快的方法来提取模型的残差平方和?

谢谢!

Jou*_*ske 5

在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)))