对我来说,当merTools::predictInterval选项设置为which时,which = 'all'函数对每个组件的确切预测结果尚不清楚。例如,

library(lme4)
library(merTools)
fm1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)
pred <- predictInterval(fm1, which = 'all')
pred[pred$obs == 1,]

退货
      effect      fit      upr        lwr obs
1   combined 293.6893 335.0569 249.310016   1
181  Subject  40.6980  82.8388  -4.490277   1
361    fixed 251.2517 292.0853 212.230277   1

我假设固定效果的拟合度和随机效果主题的拟合度将合计组合效果的拟合度。但是,我得到:
> sum(pred[pred$obs == 1 & pred$effect %in% c('fixed','Subject'),]$fit)
[1] 291.9497

我在这里误解了什么?

最佳答案

关键是predictInterval通过从后验分​​布中提取出来来模拟预测间隔。它呈现组件的方式是对随机,固定和组合效果进行独立绘制的结果。因此,从逻辑上讲,它们应该相加,并带有测量误差和效果本身的差异,而在有限数量的模拟中,这些分布的均值或中位数将不会合计为组合后的效果。

您可以将n.sims增加到一个非常大的数字(〜5000,10,000),并且这个差距将变小。

但是关键的问题是,这些行中的每一行都是从后验中独立绘制的结果。

关于r - merTools::predictInterval中组件的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44570044/

10-12 14:02