在我的博士学位中,为了确定 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曲线并绘制它们? :)
非常感谢!
如果您从
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)