如何对 Kaplan-Meier 生存曲线下的面积进行着色?

Cha*_*LDN 2 r survival-analysis

如何对 Kaplan-Meier 生存曲线下的区域进行阴影或填充?

让我们用 R 画一个最小的工作示例:

library (survival)
fit2 <- survfit(Surv(entry, futime, death) ~1, myeloma)
plot (fit2, conf.int = FALSE)
abline (v = 3650, col = "blue")
Run Code Online (Sandbox Code Playgroud)

卡普兰-迈耶生存曲线

我想对 0 到 3650 天(10 年)之间的曲线下区域进行着色或填充。我知道当有两个带有 survRM2 软件包的手臂时如何执行此操作,但我无法弄清楚何时只有一个手臂。我想表示受限平均生存率,我可以使用以下几行轻松计算它:

survival:::survmean (fit2, rmean = 3650)
$matrix
   records      n.max    n.start     events      rmean  se(rmean)     median    0.95LCL    0.95UCL 
3882.00000 2387.00000 2194.00000 2769.00000 1108.22471   19.62718  764.00000  728.00000  811.00000 

$end.time
[1] 3650
Run Code Online (Sandbox Code Playgroud)

Base R 或 ggplot2 解决方案都受欢迎。

先感谢您。

查尔斯

ste*_*fan 8

使用基本 R,您可以使用以下命令填充曲线下的区域polygon

library(survival)
fit2 <- survfit(Surv(entry, futime, death) ~ 1, myeloma)
plot(fit2, conf.int = FALSE)
abline(v = 3650, col = "blue")

time <- fit2$time[fit2$time <= 3650]
surv <- fit2$surv[fit2$time <= 3650]

polygon(
  c(min(time), time, max(time)),
  c(0, surv, 0),
  col = "blue", border = F
)
Run Code Online (Sandbox Code Playgroud)

或者使用ggplot2and ageom_area你可以这样做:


library(ggplot2)

dat <- data.frame(
  time = fit2$time,
  surv = fit2$surv
)

ggplot(dat, aes(time, surv)) +
  geom_line() +
  geom_vline(xintercept = 3650, color = "blue") +
  geom_area(data = subset(dat, time <= 3650), fill = "blue") +
  theme_minimal()
Run Code Online (Sandbox Code Playgroud)