![](/img/trans.png)
[英]How to calculate X-year survival probability from a cox regression of random survival forest in R
[英]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.