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

如何提取JointModel竞争风险联合模型随机效应的标准误

竞争风险联合模型构建

1.1 线性混合模型

mod_mml=lme(MDRD~DELAI_MONTH, data=Mixed, random=~1+DELAI_MONTH|N_ID,na.action=na.exclude)

1.2 包含死亡、移植两类竞争风险事件的数据转换

SurvieCR=crLong(Survie,"Statut1_60m","Vivant 60m")

1.3 竞争风险生存子模型

生存子模型需采用长格式数据,将竞争风险标识作为分层因子纳入:

Surv_comp=coxph(Surv(DELAI_M,status2) ~ 1*strata + strata(strata),
                data=SurvieCR, x=TRUE,method="efron",na.action=na.exclude)

1.4 联合模型拟合

将上述两个子模型作为核心传入参数,设置CompRisk=TRUE即可拟合对应联合模型:

JM_comp=jointModel(mod_mml, Surv_comp, timeVar="DELAI_MONTH",
                   method="spline-PH-aGH",
                   interFact=list(value= ~ strata, data=SurvieCR),
                   CompRisk=TRUE)
已尝试的随机效应提取方法

已尝试调用如下函数提取结果,但未获得目标值:

summary(JM_comp)
random.effects(JM_comp)
coef(JM_comp) 
coef(JM_comp, process = "Longitudinal")
现有输出示例

调用random.effects(JM_comp)仅返回各受试者对应截距、DELAI_MONTH斜率的随机效应点估计值,输出示例如下:

> random.effects(JM_comp)
     (Intercept)   DELAI_MONTH
1    3.727740214 -0.2020818077
2    1.070965087  0.0370529800
3    3.440276448  0.1582811172
4   -4.551210225 -0.1568204062
5   -2.943917109 -0.0389127841
待解决问题

需要获取每个个体随机效应中截距、斜率对应的标准差(标准误),寻求可行的实现方案。

实现方案

JM包返回的jointModel对象中,个体随机效应的后验协方差数组存储在posterior.var.b字段,结构为「个体数 × 随机效应个数 × 随机效应个数」的三维数组,每个二维切片对应单个受试者的随机效应后验协方差矩阵,取矩阵对角线元素开平方即可得到对应随机效应的后验标准差(即需要的标准误)。
直接运行以下代码即可批量提取并合并结果:

# 提取已有的随机效应点估计
re_est <- random.effects(JM_comp)
# 遍历所有个体,计算每个随机效应的标准误
re_se <- t(
  apply(JM_comp$posterior.var.b, 1, function(cov_mat){
    sqrt(diag(cov_mat))
  })
)
# 列名对齐
colnames(re_se) <- c("(Intercept)_se", "DELAI_MONTH_se")
# 合并点估计和标准误为最终结果表
re_final <- cbind(re_est, re_se)

说明:如果需要的是总体层面随机效应分布的截距、斜率标准差,而非个体层面估计值的标准误,直接提取JM_comp$coefficients$D随机效应总体协方差矩阵,对对角线元素开平方即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:24:25