【问题标题】:How to get a prediction interval for a lmer object?如何获得 lmer 对象的预测区间?
【发布时间】:2015-08-13 22:29:04
【问题描述】:

我在网上冲浪并没有找到满意的答案。

如何从 lmer 对象为测试数据集中的每个观察结果生成预测区间?

train_ind <- sample(seq(1:nrow(iris)), size = nrow(iris)/2, replace = F)
TRAIN <- iris[train_ind,]
TEST <- iris[-train_ind,]

m1 <- lmer(Sepal.Length ~ Sepal.Width + Petal.Length + (1|Species), data = TRAIN)

interval 与 predict 没有参数。 sim 显然不起作用,所以我需要使用 LMER 附带的 mcmc 函数并从分位数中提取?

【问题讨论】:

  • 你看过glmm.wikidot.com/faq吗?
  • 您是否考虑过从 m1 获取您需要的数据来创建您自己的模型模拟。我想你可以从那里创建自己的 sim 函数。祝你好运。

标签: r lmer


【解决方案1】:

我们刚刚发布了一个名为merTools 的包,它简化了这个过程。它不提供完整的预测区间,因为它跳过了模拟merMod 中的theta 项的步骤,但它确实产生了一个区间,该区间考虑了固定效应系数、随机效应系数和残差的变化模型中的错误。它也非常快。

library(merTools)
preds <- predictInterval(m1, n.sims = 500, level = 0.9, stat = 'median')
head(preds)

就这么简单,你可以改变你想要返回的值,返回yhat的所有模拟值,你还可以调整你有兴趣获得的预测区间的宽度。

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2019-04-28
    • 1970-01-01
    • 2020-05-10
    • 2017-08-28
    • 2014-07-03
    • 2019-07-11
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多