Как кодировать кусочные модели выживания в R (например, кривая Каплана-Мейера с экстраполированным хвостом) - PullRequest
0 голосов
/ 15 февраля 2020

Я хотел бы спросить, как создать кусочные модели выживания в R (например, кривую Каплана-Мейера с экстраполированным хвостом (независимо от распределения), см. Пример в приложении?

Например, как создать кривую, в которой я подгоняю экспоненциальное распределение, когда время в примере ниже 200 (чтобы получить кривую, похожую на приведенную на рисунке)?

library(survival)
library(flexsurv)
library(dplyr)

data <- survival::lung %>% filter(time < 300)

formula <- Surv(data$time, data$status) ~1

model <- flexsurvreg(formula = formula, dist = "exp", na.action = na.exclude)

plot(model, main = "plot",
     col.obs = "black",
     col = "blue")

Example of piecewise survival model (ref: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4934460/)

1 Ответ

0 голосов
/ 15 февраля 2020

Модель имеет класс "flexsurvreg", поэтому страница справки для plot.flexsurvreg должна дать вам ответы, а также функцию plot.survfit, которая принимает аргумент .... Итак, чтобы получить сюжет, похожий на тот, который вы показываете, для начала может быть следующее:

plot(model, main = "plot",
     col.obs = "black",
     col = "blue", 
     ci=FALSE,
     conf.int=FALSE,
     las=2,  # axis tick labels always perpendicular to axes
     xlab="Time (months)",
     ylab="Percentage alive")

enter image description here

Надеюсь, вы этого не сделали хотите уродливые разрывы оси x или 3 значащие цифры для меток тика оси y. Кстати, метка оси Y должна быть действительно пропорциональна.

...