繁体   English   中英

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

[英]Confidence Interval in mixed effect models

library(lme4)

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

以产生95%CI,我可以使用predictInterval()从封装功能merTools

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的多级模型的预测中捕获模型不确定性。 通过绘制随机效应和固定效应的采样分布,然后估算该分布上的拟合值,可以为拟合值生成一个预测区间,该区间包括模型中除协方差参数theta之外的所有变化。 对于适合大中型数据集的模型,这比引导引导要快得多。

我的目标是获取所有拟合值,而不是上下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。

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

如果有人能解释我的话,它将如何得出抽样分布?

如果在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) } )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM