我正在使用 lme4 包进行线性混合效果建模
混合效应模型如下:
fm01 <- lmer(sublat <- goal + (1|userid))
Run Code Online (Sandbox Code Playgroud)
上面的命令返回一个名为 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"
Run Code Online (Sandbox Code Playgroud)
但是,我需要提供可靠的标准错误
如何使用 lme4 返回的 S4 对象执行此操作?
Ben*_*ker 10
看起来强大的对象 SE可以通过和包lmerMod获得:merDerivclubSandwich
library(lme4)
library(clubSandwich)
m <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
Run Code Online (Sandbox Code Playgroud)
(来自merDeriv JSS论文的复制材料,感谢@AchimZeileis的提示)
library(merDeriv)
sand <- sandwich(m, bread = bread(m, full = TRUE),
mean = meat(m, level = 2))
Run Code Online (Sandbox Code Playgroud)
(所有可能的类型:我不知道在任何给定情况下哪个是“最好的”)
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)
Run Code Online (Sandbox Code Playgroud)
std_se <- sqrt(diag(vcov(m)))
cbind(std = std_se, rob_se,
merDeriv = sqrt(diag(sand)[1:2]))\
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
merDeriv的结果匹配(merDeriv 为所有type="CR0"组件提供稳健的 Wald 估计,包括随机效应参数;由您决定 RE 参数的 Wald 估计是否足够可靠)
我认为这就是您正在寻找的:https://cran.r-project.org/web/packages/robustlmm/vignettes/rlmer.pdf
这是一个robustlmm包,它有这个rlmer功能。
“对象的结构和方法的实现尽可能与 lme4 的结构和方法相似,并在需要时进行鲁棒性特定扩展。”
fm01_rob <- rlmer(sublat <- goal + (1|userid))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3807 次 |
| 最近记录: |