You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从GLMMadaptive的mixed_model提取方差成分标准误?

关于GLMMadaptive包提取随机效应方差成分标准误的问题

问题背景

我正在使用{GLMMadaptive}包拟合混合效应随机斜率模型,需要从GLMMadaptive::mixed_model()的输出中提取方差成分的标准误。根据包文档,可以使用vcov()方法提取随机成分的方差,但我对返回值感到困惑。

示例代码(来自包文档)

library(GLMMadaptive)

set.seed(1234)
n <- 100 # 受试者数量
K <- 8 # 每位受试者的测量次数
t_max <- 15 # 最大随访时间

# 构建设计数据框:所有人有基线测量,后续为随机随访时间的测量
DF <- data.frame(id = rep(seq_len(n), each = K),
                 time = c(replicate(n, c(0, sort(runif(K - 1, 0, t_max))))),
                 sex = rep(gl(2, n/2, labels = c("male", "female")), each = K))

# 固定效应和随机效应的设计矩阵
X <- model.matrix(~ sex * time, data = DF)
Z <- model.matrix(~ time, data = DF)

betas <- c(-2.13, -0.25, 0.24, -0.05) # 固定效应系数
D11 <- 0.48 # 随机截距的方差
D22 <- 0.1 # 随机斜率的方差

# 模拟随机效应
b <- cbind(rnorm(n, sd = sqrt(D11)), rnorm(n, sd = sqrt(D22)))
# 线性预测器
eta_y <- as.vector(X %*% betas + rowSums(Z * b[DF$id, ]))
# 模拟二分类纵向数据
DF$y <- rbinom(n * K, 1, plogis(eta_y))

fm <- mixed_model(fixed = y ~ sex * time, random = ~ time | id, data = DF,
                  family = binomial())

vcov()方法的输出

使用vcov()方法返回随机效应极大似然估计的方差-协方差矩阵:

vcov(fm, parm = "var-cov")

#>             D_11        D_12       D_22
#> D_11  0.42942062 -0.09963969  0.5065884
#> D_12 -0.09963969  0.03701847 -0.2117451
#> D_22  0.50658839 -0.21174511  1.3651870

包文档说明

该协方差矩阵中对应随机效应协方差矩阵的元素(即D_xx元素)处于log-Cholesky尺度。

核心疑问

我对“协方差矩阵的元素处于log-Cholesky尺度”这句话感到困惑。我的最终目标是获取估计的随机效应的标准误,即SE(D_11)、SE(D_12)、SE(D_22)。请问是否需要对得到的矩阵进行转换?如果需要,该如何操作?

注:我了解相关问答线程中的讨论,但它针对的是{lme4}包,而我的问题是特定于{GLMMadaptive}包的。


内容的提问来源于stack exchange,提问作者Shafee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:48:15