【问题标题】:save lmlist coefficients and residuals to dataset将 lmlist 系数和残差保存到数据集
【发布时间】:2016-05-26 06:21:38
【问题描述】:

我有 100 个组,每个组有 40 个观察值。我知道可能还有其他合适的模型,但我目前只对以下模型感兴趣。

reg<-lmList(Y ~ Intercept + a + b + c + d | grp,data=data, pool=F)

为了将残差(来自lmList)保存到我的表中,我只是这样做

data$residual <- residuals(reg)

现在我也想将 beta 系数保存到原始表中。由于每个组只有一组系数,因此组内的系数应该相同,但组间的系数不同。

  • coef &lt;- coef(reg) 给了我一个包含组系数的列表。然而,R 将其显示为只有 5 列的列表(不包括组名)。
  • data$coef&lt;-coef[,c(1) ] 给了我拦截,但我丢失了组信息。

我正在考虑创建一个带有组标识的单独表,以便我只需合并原始表和系数表。但无法弄清楚如何获得组标识以及系数。

如果有更简单的方法,请提供帮助。

【问题讨论】:

标签: r regression nlme


【解决方案1】:

如果 fm1 是您适合的 lmList 对象,那么我认为只需将行名添加到附加列中就可以满足您的需求:

library(nlme)
fm1 <- lmList(distance ~ age | Subject, Orthodont)
res <- data.frame(Subject=rownames(coef(fm1)),coef(fm1),check.names=FALSE)
rownames(res) <- NULL ## now redundant
head(res)
  Subject (Intercept)   age
1 M16           16.95 0.550
2 M05           13.65 0.850
...

那么你应该可以merge() (虽然与Orthodont 对象合并似乎有问题 - 我认为这可能是因为它是一个奇怪的groupedData 对象......)

【讨论】:

  • 非常感谢。像魅力一样工作。
猜你喜欢
  • 2017-05-19
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 2012-11-20
  • 2018-05-23
相关资源
最近更新 更多