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

能否在拆分后的生存数据集上执行Fine-Gray回归分析?

在拆分后的生存数据集上实现Fine-Gray回归的解决方案

可以在survSplit拆分后的数据集上应用Fine-Gray回归,你遇到的错误源于两个核心问题:一是finegray转换时未保留tgroup变量,二是原拆分过程丢失了竞争事件的原始编码。以下是修正后的完整操作流程:

步骤1:加载必要包

确保安装并加载survival和cmprsk包(finegray函数来自cmprsk):

install.packages("cmprsk")
library(survival)
library(cmprsk)

步骤2:生成并预处理模拟数据

保留原始事件编码(0=删失,1=目标事件,2=竞争事件),避免拆分时丢失竞争风险信息:

n <- 100
df <- data.frame(id=1:n, 
                 time=sample(1:36, n, replace=TRUE),
                 event=sample(0:2, n, replace=TRUE),
                 implantsurface=sample(0:1, n, replace=TRUE),
                 covariate1=sample(0:1, n, replace=TRUE),
                 covariate2=sample(0:1, n, replace=TRUE))
df$time <- as.numeric(df$time)

步骤3:时间分层拆分数据集

使用~.保留所有变量,确保tgroup(分层标签)和原始event变量被带入拆分后的数据:

fit1 <- survSplit(Surv(time, event == 1) ~ .,
                  data = df, 
                  cut=c(4),
                  episode= "tgroup")

步骤4:转换为Fine-Gray格式

在finegray公式中明确包含tgroup变量,确保其被带入转换后的数据框;同时指定目标事件编码为1:

FG <- finegray(Surv(time = time, event = event, type = "mstate") ~ 
                 implantsurface + tgroup + covariate1 + covariate2,
               data = fit1, 
               etype = 1) # etype指定目标事件(再手术)的编码

步骤5:拟合Fine-Gray模型

此时tgroup已存在于FG数据框中,可正常使用strata(tgroup):covariate1构建模型:

FGfit <- coxph(Surv(fgstart, fgstop, fgstatus) ~ 
                 implantsurface + strata(tgroup):covariate1 + covariate2,
               weights = fgwt, 
               data = FG)

# 查看模型结果
summary(FGfit)

错误原因解释

  1. 变量丢失:你之前的finegray公式未包含tgroup,导致转换后的数据框中无此变量,后续coxph调用strata(tgroup)时报错。
  2. 事件信息丢失:原survSplit的公式仅保留了目标事件的逻辑值(event==1),丢失了原始竞争事件(event=2)的编码,无法满足Fine-Gray回归对竞争风险的识别需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:25:50