繁体   English   中英

如何通过协变量的变化从 COX 回归 model 中得出 X 年生存概率(假设 X=10)plot?

[英]How to plot the X year survival probability(let's say X=10) from a COX regression model with the change of covariate?

我注意到为生存曲线 plot 提供的大多数代码都是关于按时间生存的趋势,是否有任何 r package 可以将“时间”设置为固定的,例如 10 年,以及 plot 10 年生存概率随协变量的变化,例如年龄?

我正在使用 COX 回归。

谢谢!

您可以随时使用predict来获得预测的生存期以及您希望的任何协变量水平。 您尚未提供您的 model 或您的数据,因此我将从survival包的内置lung数据集中创建一个演示。

library(survival)

df <- survival::lung[c(2, 3, 4, 5)]
df$time <- (df$time * 2) / 365
df$status <- df$status - 1

model <- coxph(Surv(time, status) ~ age + strata(sex), df) 

为了对不同年龄段的男女在十年后进行预测,我们创建了一个小数据框,其中包含 model 中使用的所有变量,但设置为我们想要的值(包括status ,它被忽略,因此我们可以将其设置为0)

new_data <- data.frame(age = rep(50:90, 2), sex = rep(1:2, each = 41),
                       time = 10, status = 0)

现在我们将这个新数据插入predict with type = "survival"并将其存储在我们的新数据框中。

new_data$survival <- predict(model, newdata = new_data, type = "survival")

现在我们可以得到 plot 结果。 在这里,我将使用ggplot

library(ggplot2)

ggplot(new_data, aes(age, survival, color = c("male", "female")[sex])) +
  geom_line(size = 1.5) +
  scale_color_manual(values = c("orangered", "deepskyblue3"), name = "Sex") +
  scale_y_continuous(labels = scales::percent) +
  labs(title = "10 year survival according to age") +
  theme_minimal() +
  theme(text = element_text(size = 16))

reprex package (v2.0.1) 创建于 2022-03-10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM