首页 文章

混合效应模型中的置信区间

提问于
浏览
0
library(lme4)

fm1 <- lmer(Reaction ~ Days + (Days|Subject), data = sleepstudy)

要生成95%CI,我可以使用包 merTools 中的 predictInterval() 函数 .

library(merTools)
head(predictInterval(fm1, level = 0.95, seed = 123, n.sims = 100))
# fit      upr      lwr
# 1 255.4179 313.8781 184.1400
# 2 273.2944 333.2005 231.3584
# 3 291.8451 342.8701 240.8226
# 4 311.3562 359.2908 250.4980
# 5 330.3671 384.2520 270.7094
# 6 353.4378 409.9307 289.4760

在文档中,它说的是 predictInterval() 函数

此功能提供了一种方法,可以从符合lme4的多级模型中捕获预测中的模型不确定性 . 通过绘制随机和固定效应的采样分布,然后估计该分布上的拟合值,可以生成拟合值的预测区间,该拟合值包括除了协方差参数θ的变化之外的模型中的所有变化 . 对于适合中型到大型数据集的模型,这比自举更快 .

我的目标是获得所有拟合值而不是上下CI,即对于每一行,我需要原始的n个模拟,从中计算这些95%CI . 我检查了文档中的参数,然后按照:

head(predictInterval(fm1, n.sims = 100, returnSims = TRUE, seed = 123, level = 0.95))
# fit      upr      lwr
# 1 255.4179 313.8781 184.1400
# 2 273.2944 333.2005 231.3584
# 3 291.8451 342.8701 240.8226
# 4 311.3562 359.2908 250.4980
# 5 330.3671 384.2520 270.7094
# 6 353.4378 409.9307 289.4760

它没有得到100次模拟,它仍然给我相同的输出 . 我在这做错了什么?

第二个问题虽然我认为这更像是一个StatsExchange .

“通过绘制随机和固定效果的采样分布然后 . ”`

如果有人可以解释我,它如何绘制抽样分布?

1 回答

  • 1

    如果在 predictInterval() 函数中指定newdata,则可以获取模拟值 .

    predInt <- predictInterval(fm1, newdata = sleepstudy, n.sims = 100,
               returnSims = TRUE, seed = 123, level = 0.95)
    
    simValues <- attr(predInt, "sim.results")
    

    有关如何创建参数的采样分布的详细信息,请参阅帮助页面的“详细信息”部分 . 您可以获得拟合,下限和上限的估计值:

    fit <- apply(simValues, 1, function(x){quantile(x, probs=0.500) } )
    lwr <- apply(simValues, 1, function(x){quantile(x, probs=0.025) } )
    upr <- apply(simValues, 1, function(x){quantile(x, probs=0.975) } )
    

相关问题