R анализ выживания, продолжительность сюжетного события, предшествующего смерти каждого человека - PullRequest
0 голосов
/ 11 января 2019

Можно ли добавить горизонтальный индикатор длины X, предшествующий каждому смертельному событию, к классической кривой выживания? Моя цель - визуализировать продолжительность события, предшествующего смерти каждого человека. Например, продолжительность, в течение которой пациент проходил курс лечения до смерти, или время, в течение которого каждый человек находился в плохом состоянии перед смертью ( См. Изображение ниже ).

Attempted graph

Что я пробовал: Я попытался добавить горизонтальные линии к объекту графика ggsurvplot, однако я не могу получить доступ к координате y точек графика, чтобы поместить линию перед событием смерти. Есть ли решение этой проблемы в каком-либо пакете выживания R? Ниже я вставил обходной путь, который пытаюсь заменить:

library(dplyr)
library(survival)
library(survminer)
original_input <- data_frame(
  Strain = rep(c("Random_1", "Random_2"), each = 100), 
  time = c(rnorm(100, mean = 13), rnorm(100, mean = 19)),
  Censored = 0,
  treatment_onset = c(time - abs(c(rnorm(100, mean=0.25), rnorm(100, mean = 2))))
)

# Ugly work-around code to retrieve population survival
original_input <- original_input[order(original_input$Strain, original_input$time), ]
fit <- survfit(Surv(time,1-Censored) ~ Strain, data=original_input)
names(fit$strata) <- gsub(pattern = "Strain=", x = names(fit$strata), replacement = "")
mod <- summary(fit)
mod <- mod[c("strata","time","surv")] %>% as_tibble()
mod <- mod[order(mod$strata, mod$time), ]
data <- cbind(original_input,mod$surv)

# plot output        
ggsurv <- ggsurvplot(fit = fit, data = data, xlab = "Time")
ggsurv$plot + 
  geom_point(aes(x = treatment_onset, y = mod$surv, color = Strain, shape = Strain),
             data = data,show.legend = FALSE) +
  geom_segment(aes(x = treatment_onset, y = mod$surv, 
                   xend = time, yend = mod$surv, color = Strain),
               data = data)

Example solution

Я очень благодарен за предложения о том, как реализовать это лучше! Спасибо!

...