计算 Ctree 对象后绘制 Kaplan Meier 曲线

问题描述 投票:0回答:1

在我的博士学位中,为了确定 COVID-19 死亡率的预测因素,我使用 Ctree 计算了分类生存树。这是使用的代码:

library(survival)
library(survminer)
library(party)
library(partykit)

tmodel<- ctree(Surv(time,status_cov) ~ Age + Sex + Education + Migrant.background + Income + Living.situation, data = up_training_cov,control = ctree_control(maxdepth = 3))

plot(tmodel,
     type = "simple",
     gp = gpar(fontsize = 10),
     drop_terminal = TRUE,
     tnex = 1,
     beside = FALSE,
     ymax = 1,
     ylines = TRUE,
     widths = 1,
     gap = 0.1,
     reverse = FALSE,
     id = TRUE)

这是输出:

我还计算了一个图表,其中包含估计生存时间中位数和每个终端节点中的个体数量:

我想保持图表不变,除了图表之外,计算每个终端节点的 Kaplan Meier 生存曲线,并在同一个图表上显示 8 个终端节点的所有生存曲线,每个终端使用一种颜色节点,以便我可以直观地比较每组的生存曲线。

谁能帮我得到KM曲线并绘制它们? :)

非常感谢!

r classification survival-analysis
1个回答
0
投票

如果您从

type = "simple"
通话中删除
plot
,您将获得 KM 曲线。

显然,您的数据太大而无法共享,因此这里是一个使用生存包中的

cancer
数据集的可重现示例:

library(survival)
library(party)

data('cancer')

tmodel <- ctree(Surv(time, status) ~ age + sex + ph.ecog + wt.loss, data = cancer)

现在,如果我们使用您的精确绘图代码,我们会得到:

plot(tmodel,
     type = "simple",
     gp = gpar(fontsize = 10),
     drop_terminal = TRUE,
     tnex = 1,
     beside = FALSE,
     ymax = 1,
     ylines = TRUE,
     widths = 1,
     gap = 0.1,
     reverse = FALSE,
     id = TRUE)

但是如果我们删除

type = "simple"
,我们会在每个叶节点得到一条 KM 曲线

plot(tmodel,
     gp = gpar(fontsize = 10),
     drop_terminal = TRUE,
     tnex = 1,
     beside = FALSE,
     ymax = 1,
     ylines = TRUE,
     widths = 1,
     gap = 0.1,
     reverse = FALSE,
     id = TRUE)

© www.soinside.com 2019 - 2024. All rights reserved.