【问题标题】:Is there a way to extrapolate predicted data from lmer有没有办法从 lmer 推断预测数据
【发布时间】:2012-03-17 23:01:51
【问题描述】:

我正在使用lmer 来拟合具有多个固定效应(包括特定于主题的变量,如年龄、短期记忆广度等)和两组随机效应(主题和主题:条件)的多级多项式回归模型)。现在我想预测具有特定属性(年龄、短期记忆跨度等)的假设主题的数据。我拟合了模型 (m) 并创建了一个包含我假设的主题的新数据框 (pred),但是当我尝试 predict(m, pred) 时出现错误:

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "mer"

我知道我可以使用蛮力方法从我的模型中提取固定效果并将其全部相乘,但有更优雅的解决方案吗?

【问题讨论】:

  • 最前沿的 lme4Eigen 包(在 r-forge 上,很快(?)将作为 lme4 在 CRAN 上)有一个 predict 方法,如果你愿意尝试的话(您可以随时将您的答案与lme4 进行比较——如果有不同,请告知开发人员!)
  • 谢谢,FAQ 链接很有帮助,有机会我会尝试新的predict 方法。

标签: r lme4


【解决方案1】:

您可以使用 R 的 merTools 包轻松完成这种类型的外推预测:http://www.github.com/jknowles/merTools

merTools 包含一个名为predictInterval 的函数,它为lmerglmer 拟合提供强大的预测能力。具体来说,您可以使用此函数来预测外推数据,并获得解释固定和随机效应的方差以及模型残差的预测区间。

这是一个快速的代码示例:

library(merTools)
m1 <- lmer(Reaction ~ Days + (1|Subject), data = sleepstudy)
predOut <- predictInterval(m1, newdata = sleepstudy, n.sims = 100)
# extrapolated data
extrapData <- sleepstudy[1:10,]
extrapData$Days <- 20
extrapPred <- predictInterval(m1, newdata = extrapData)

【讨论】:

  • 您可以通过lme4::predict(m1, newdata=extrapData) 获得预测本身(不是置信区间)(上面的问题已经很老了),尽管我确实看到了predictInterval 的值。class="comcopy">跨度>
  • 是的,这个问题已经很老了,现在lme4::predict(m1, newdata=extrapData) 工作得很好。同意@BenBolker!
猜你喜欢
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 2021-06-16
  • 2020-12-23
  • 2021-11-15
相关资源
最近更新 更多