簡體   English   中英

R 中調整后的生存曲線來自 Cox Model 在特定協變量值

[英]Adjusted Survival Curves in R From Cox Model at Specific Covariate Values

我想 plot 在特定的協變量值下調整 Cox model 的生存曲線。 survfit package 中的survival package 和ggsurvplot中的survminer允許人們輕松地從 model 調整生存曲線 plot,但似乎僅在協變量的平均值處這樣做。 我想 plot 曲線在我指定的值,但找不到在R中輕松執行此操作的方法。 SAS可以通過在PROC PHREG中使用BASELINE命令輕松完成此操作,我希望能夠在R中執行類似的操作。

您可以“手動”執行此操作。 這是使用來自coxph()的示例數據的一種可能性。 本質上,您需要制作一個數據集,該數據集將所有 model 個變量保持為您要使用的值,然后在數據中從最小值到最大值(此處為 0:4)改變時間。 然后,您可以預測這些數據和 plot 的生存概率。

  library(ggplot2)
  library(survival)
  test1 <- list(time=c(4,3,1,1,2,2,3), 
              status=c(1,1,1,0,1,1,0), 
              x=c(0,2,1,1,1,0,0), 
              sex=c(0,0,0,0,1,1,1)) 
# Fit a stratified model 
m1 <- coxph(Surv(time, status) ~ x + strata(sex), test1) 

tmp1 <- data.frame(
  time = 0:4, 
  status=0, 
  x = 1, 
  sex = 0)

tmp1$fit <- predict(m1, newdata=tmp1, type="survival")

ggplot(tmp1, aes(x=time, y=fit)) + 
  geom_line() + 
  geom_point() + 
  theme_classic()

下面,我們選擇不同的x值,生成預測並將數據與上面的預測數據放在一起。 如果您願意,這可以一步完成。


tmp2 <- data.frame(
  time = 0:4, 
  status=0, 
  x = 2, 
  sex = 0)

tmp2$fit <- predict(m1, newdata=tmp2, type="survival")

tmp <- rbind(tmp1, tmp2)

現在,我們可以對同一個 plot 進行兩組預測 plot。

ggplot(tmp, aes(x=time, y=fit, colour=as.factor(x))) + 
  geom_line() + 
  geom_point() + 
  theme_classic() + 
  labs(colour="X")

reprex package (v2.0.1) 創建於 2022-04-29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM