我正在使用
lme4
包进行线性混合效应建模
混合效应模型为:
fm01 <- lmer(sublat <- goal + (1|userid))
上述命令返回一个名为
fm01
的 S4 对象。
该对象包括固定效应及其 OLS 标准误差(如下)
Fixed effects:
Estimate Std. Error t value
(Intercept) 31.644 3.320 9.530
goaltypeF1 -4.075 3.243 -1.257
goaltypeF2 -9.187 5.609 -1.638
goaltypeF3 -13.935 9.455 -1.474
goaltypeF4 -20.219 8.196 -2.467
goaltypeF5 -12.134 8.797 -1.379"
但是,我需要提供可靠的标准错误。
如何使用 S4 对象(例如
lme4
返回的对象)执行此操作?
看起来
lmerMod
对象的强大SE可以通过merDeriv
和clubSandwich
包获得:
library(lme4)
library(clubSandwich)
m <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
(摘自merDeriv JSS论文的复制材料,感谢@AchimZeileis的提示)
library(merDeriv)
sand <- sandwich(m, bread = bread(m, full = TRUE),
mean = meat(m, level = 2))
(所有可能的类型:我不知道在任何给定情况下哪个是“最好的”)
cstypes <- paste0("CR", c("0", "1", "1p", "1S", "2", "3"))
rob_se_fun <- function(type) sqrt(diag(vcovCR(m, type = type)))
rob_se <- sapply(cstypes, rob_se_fun)
std_se <- sqrt(diag(vcov(m)))
cbind(std = std_se, rob_se,
merDeriv = sqrt(diag(sand)[1:2]))\
std CR0 CR1 CR1p CR1S CR2 CR3
(Intercept) 6.824597 6.632277 6.824557 7.034592 6.843700 6.824557 7.022411
Days 1.545790 1.502237 1.545789 1.593363 1.550125 1.545789 1.590604
merDeriv
(Intercept) 6.632277
Days 1.502237
merDeriv
的结果与type="CR0"
匹配(merDeriv为所有组件提供稳健的Wald估计,包括随机效应参数;由您决定RE参数的Wald估计是否足够可靠)
我认为这就是您正在寻找的:https://cran.r-project.org/web/packages/robustlmm/vignettes/rlmer.pdf
是
robustlmm
包,有rlmer
功能。
“对象的结构和方法的实现尽可能与 lme4 的结构和方法相似,并在需要时进行鲁棒性特定扩展。”
fm01_rob <- rlmer(sublat <- goal + (1|userid))