工作數據看起來像:R:從自舉混合效應模型獲得係數&CI導致
set.seed(1234)
df <- data.frame(y = rnorm(1:30),
fac1 = as.factor(sample(c("A","B","C","D","E"),30, replace = T)),
fac2 = as.factor(sample(c("NY","NC","CA"),30,replace = T)),
x = rnorm(1:30))
的lme
模型擬合爲:
library(lme4)
mixed <- lmer(y ~ x + (1|fac1) + (1|fac2), data = df)
我用bootMer
運行參數引導和我可以成功獲得固定係數(截距)和SEs &隨機效應:
mixed_boot_sum <- function(data){s <- sigma(data)
c(beta = getME(data, "fixef"), theta = getME(data, "theta"), sigma = s)}
mixed_boot <- bootMer(mixed, FUN = mixed_boot_sum, nsim = 100, type = "parametric", use.u = FALSE)
我的第一個問題是如何從自舉結果mixed_boot
獲得兩個隨機效應的每個單獨水平的係數(斜率)?
我沒有問題,使用augment
功能從broom
包提取mixed
模型的係數(斜率),見下圖:
library(broom)
mixed.coef <- augment(mixed, df)
然而,這似乎是broom
不能boot
類對象處理。我無法直接在mixed_boot
上使用上述功能。
我也試圖通過增加mmList
修改mixed_boot_sum
(我想這將是我所期待的),但[R抱怨爲:
Error in bootMer(mixed, FUN = mixed_boot_sum, nsim = 100, type = "parametric", :
bootMer currently only handles functions that return numeric vectors
此外,是否有可能同時獲得固定的CI &通過指定FUN
以及隨機效果?
現在,我很困惑FUN
正確的規格,以達到我的需求。任何有關我的問題的幫助將不勝感激!
非常感謝! @Ben Bolker。這很好。還有一個問題,是否有可能在使用'coef'時恢復每個級別變量的原始名稱?我看到,在你的結果中,R產生的是數字而不是原來的名字。 – Chuan