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

R中特定原因风险模型与多状态模型结果差异的技术咨询

问题:竞争风险场景下多状态Cox模型与特定原因Cox模型结果差异原因?

我参考了survival包的竞争风险示例文档,基于真实数据集开展竞争风险分析:患者仅会因pcm(浆细胞骨髓瘤)或死亡两种互斥原因结局,属于传统竞争风险场景。

数据集构建代码

library(survival)
data(mgus2)

mgus2$etime <- with(mgus2, ifelse(pstat == 0, futime, ptime))
event <- with(mgus2, ifelse(pstat == 0, 2 * death, 1))
mgus2$event <- factor(event, 0:2, labels = c("censor", "pcm", "death"))

建模方式

  • 拟合多状态Cox模型:
    coxph(Surv(etime, event) ~ sex, data = mgus2, id = id)
    
    得到pcm(转移1:2)和death(转移1:3)的参数估计。
  • 分别拟合两个特定原因Cox模型:
    coxph(Surv(etime, event == "pcm") ~ sex, data = mgus2, id = id)
    coxph(Surv(etime, event == "death") ~ sex, data = mgus2, id = id)
    

疑问

两种建模方式结果相近但不完全一致,尤其是death结局的z值、p值存在差异。想知道:

  • 为何结果会有差异?
  • 是否误解了多状态模型的拟合逻辑?
  • 我需要单独建模以开展亚组分析及使用emmeans进行后估计,目前仅单结局Cox模型可实现该需求,是否可行?

回答

1. 结果差异的原因

在传统竞争风险(单一初始状态、互斥结局、无重复事件)的理论框架下,多状态Cox模型与两个独立的特定原因Cox模型是等价的,但survival包的实现细节导致了数值上的细微差异:

  • 多状态模型是同时估计所有结局的参数,共享部分似然的计算框架与数值优化过程;而单独的特定原因Cox模型是针对每个结局独立计算部分似然并优化。
  • 两者在处理事件时间相同情况的tie-breaking逻辑、数值收敛的精度控制上存在细微差别,最终导致参数估计的z值、p值出现小幅度差异。
  • 你添加的id参数在这个场景下(每个患者仅一次事件)不会改变核心逻辑,但多状态模型对id的解析逻辑与单结局模型略有不同,也可能放大这种数值差异。

2. 对多状态模型拟合逻辑的理解没有偏差

你认为“传统竞争风险下多状态模型等价于两个特定原因Cox模型”的结论是正确的。这种数值差异是软件实现层面的细节问题,而非理论逻辑的错误。

3. 单独建模的可行性

完全可以使用单独的特定原因Cox模型开展亚组分析与emmeans后估计:

  • 理论上两者等价,数值差异极小,不会影响最终结论的可靠性;
  • 单结局Cox模型更灵活,适配emmeans等工具的后处理需求,也更便于拆分亚组进行分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:23:25