FUNCION

Mi funcion resive seis parametros: tiempo, estatus, indicador, y los valores n y m que se obtienen con el metodo Kaplan Meier. Una vez resividos estos datos lo que busca hacer esta funcion es encontrar la diferencia maxima de tiempo que hay entre las dos curvas de supervivencia y mostrar esta diferencia en el grafico de las supervivencias.

distancia <- function(bd, time, status,trt, n, m){
km_model_trt <- surv_fit(Surv(time,status)~trt, bd)
ggsurvplot(km_model_trt)

times1 <- km_model_trt$time[1:n]
surv1 <- km_model_trt$surv[1:n]
times2 <- km_model_trt$time[(n+1):(n+m)]
surv2 <- km_model_trt$surv[(n+1):(n+m)]
df <- data.frame(Tiempo=times1)

a <- approxfun(times1, surv1)
b <- approxfun(times2, surv2)
c <- approxfun(surv1, times1)
d <- approxfun(surv2, times2)

p <- seq(0.1,0.95, by = 0.001)
p1 <- c(p)
p2 <- d(p)
dif <- abs(p1-p2)
t_max= max(dif)

for (j in 1:length(dif)){
  if (dif[j] == t_max){
    t <- j
    break
  }else{
    t<- 0
  }
}
y1 <- p[t]
x1 <- c(y1)
x2 <- d(y1)

ggplot(data=df,aes(x = times1, y= a(times1), color="red")) + geom_step() + 
  geom_step(data=df,aes(x=times1, y=b(times1), color="blue")) +
  geom_hline(yintercept = p[t],linetype="dashed")+ geom_vline(xintercept = x1,linetype="dashed")+
  geom_vline(xintercept = x2,linetype="dashed")+
  ggtitle("Distancia máxima entre las curvas es:", t_max)+
  labs(x = "Tiempo", y = "Probabilidad de supervivencia")
}

EJEMPLO1: Base de Datos “cancer”

Esta base de datos trata sobre la supervivencia en pacientes con cancer de pulmon avanzado en el North Central Cancer Treatment Group. Los puntajes de rendimiento califican que tan bien el paciente puede realizar las actividades diarias habituales.

df <- cancer
q <- distancia(df, df$time, df$status, df$sex, 119, 87)
q

EJEMPLO2: Base de Datos “mgus2”

Esta base de datos representa la “Historia natural” de 1341 pacientes secuenciales con gammapatía monoclonal de importancia indeterminada.

df <- mgus2
q <- distancia(df, df$futime, df$death, df$pstat, 262, 90)
q

EJEMPLO3: Base de Datos “veteran”

Esta base de datos trata de un ensayo aleatorio de dos regimenes de tratamiento para el cancer de pulmon. Esta representa un conjunto de datos de analisis de supervivencia estandar.

df <- veteran
q <- distancia(df, df$time, df$status, df$trt, 61, 53)
q