lme4 包中混合效应模型的稳健标准误

问题描述 投票:0回答:2

我正在使用

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
返回的对象)执行此操作?

r mixed-models
2个回答
11
投票

看起来

lmerMod
对象的强大SE可以通过
merDeriv
clubSandwich
包获得:

library(lme4)
library(clubSandwich)
m <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)

使用 merDeriv

(摘自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估计是否足够可靠)


0
投票

我认为这就是您正在寻找的:https://cran.r-project.org/web/packages/robustlmm/vignettes/rlmer.pdf

robustlmm
包,有
rlmer
功能。

“对象的结构和方法的实现尽可能与 lme4 的结构和方法相似,并在需要时进行鲁棒性特定扩展。”

fm01_rob <- rlmer(sublat <- goal + (1|userid))
© www.soinside.com 2019 - 2024. All rights reserved.