对我来说,当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/