R:列表中线性模型的残差

时间:2013-10-30 20:07:40

标签: r lm

我已经运行了一系列线性模型,我希望能够输出特定年份的残差并将这些残差与公司相匹配。

数据类似于下面显示的数据

Year    Company         pctEarn
1990    3M Company      0.295918367
1991    AT&T            0.251497006
1992    Ford            0.293233083
1993    Microsoft       0.264705882

运行LM的循环如下所示

fits <- list()

for(i in 2000:2012){
  dtSub <- subset(dt, Year <= i)
  fit <- lm(pctEarn ~ Year + Company, data = dtSub)
  fits[[i - 1999]] <- fit
}

我遇到的问题是从输出中检索特定公司的残差。

理想情况下,我可以为每个回归创建一个输出,如下所示

Year Company    pctEarn    Predicted  Residual
1990 3M Company 0.2959     0.4523     0.16000
Etc......

任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

所以我发现哪些不适合大回归的是简单地建立一个累积回归结果的数据框,我可以稍后将其删除。

out <- data.frame()
for(i in 2000:2012){
  dtSub <- subset(dt, Year <= i)
  fit <- lm(pctEarn ~ y2 + Company, data = dtSub)
  fits[[i - 1999]] <- fit
  dtSub$fitted <- fitted(fit)
  dtSub$resid <- residuals(fit)
  dtSub$reg <- i
  out <- rbind(out, dtSub)
}