2017-06-15 20 views
1

which選項設置爲which = 'all'時,我不完全清楚merTools::predictInterval函數對每個組件的精確預測。例如,merTools中的組件含義:: predictInterval

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 

我在這裏錯誤地解釋了什麼?

回答

0

關鍵是predictInterval通過從後驗分​​布圖中模擬預測區間。它呈現組件的方式是獨立繪製隨機,固定和組合效果的結果。因此,儘管在邏輯上他們應該加起來,測量誤差和效應本身的變化,以及有限數量的模擬,這些分佈的均值或中值不會排列在一起以綜合起來。

您可以將n.sims增加到非常大的數字(〜5000,10,000),並且這個差距會更小。

但是關鍵的問題是每一行都是從後面獨立繪製的結果。