如何从R的mmrm包拟合模型中获取AR1参数估计值
如何从mmrm拟合的AR1模型中获取正确的相关系数
mmrm包默认用Cholesky分解来参数化协方差结构,所以你从theta_est拿到的数值不是直接的AR1相关系数,而是为了数值优化稳定性做过变换的参数,这就是为什么数值不在-1到1之间。要拿到正确的AR1相关系数,有两种简单方法:
方法一:用VarCorr()直接提取
这是最便捷的方式,VarCorr()函数会直接输出协方差矩阵和对应的相关系数矩阵,一眼就能看到AR1的参数:
# 先拟合你的模型 library(mmrm) fit <- mmrm( formula = 你的因变量 ~ 固定效应 + (Days | Subject), data = 你的数据集, cov_struct = ar1() ) # 提取协方差和相关系数 VarCorr(fit)
输出里会明确标注「Correlation」部分,AR1的相关系数phi就在这里,数值会落在-1到1之间,和glmmTMB、GEE的结果匹配。
方法二:从协方差矩阵转换得到
如果你需要手动计算,可以先提取模型的协方差矩阵,再转成相关系数矩阵:
# 提取协方差结构并转为矩阵 cov_matrix <- as.matrix(cov_struct(fit)) # 转换为相关系数矩阵 cor_matrix <- cov2cor(cov_matrix) # 提取AR1相关系数(比如取矩阵中第二行第一列的元素,对应相邻时间点的相关) ar1_phi <- cor_matrix[2, 1]
补充说明:mmrm的summary()默认只输出固定效应和方差分量的标准差,不会直接显示AR1相关系数,所以得用上面的方法提取。
内容的提问来源于stack exchange,提问作者Lynchian
相关产品推荐
相关产品推荐

