簡體   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