如何从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
相关产品推荐
相关产品推荐

