La función que se creó para calcular la distancia máxima entre las dos curvas de supervivencia fue la siguiente:

distancia <- function(datos, tiempo, indicador,dependencia, n, m){
  km_model_trt <- surv_fit(Surv(tiempo,indicador)~dependencia, datos)
  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)]
  v <- data.frame(Tiempo=times1)
  
  a <- approxfun(times1, surv1)
  b <- approxfun(times2, surv2)
  e <- approxfun(surv1, times1)
  d <- approxfun(surv2, times2)
  
  p <- seq(0.1,0.95, length=1000)
  p1 <- e(p)
  p2 <- d(p)
  dif <- abs(p1-p2)
  t_max= max(dif)
  
  for (j in 1:1000){
    if (dif[j] == t_max){
      t <- j
      break
    }else{
      t<- 0
    }
  }
  y1 <- p[t]
  x1 <- e(y1)
  x2 <- d(y1)
  
  ggplot(data=v,aes(x = times1, y= a(times1), color="S1")) + geom_step() + 
    geom_step(data=v,aes(x=times1, y=b(times1), color="S2")) +
    geom_hline(yintercept = p[t],linetype="dashed")+ geom_vline(xintercept = x1,linetype="dashed")+
    geom_vline(xintercept = x2,linetype="dashed")+
    ggtitle("La distancia máxima entre las curvas de supervivencia es: ", t_max)+
    labs(x = "Tiempo", y = "Supervivencia")
}

Los parámetros que toman son los siguientes:

1. Base: “veteran”

Esta base de datos consiste en un ensayo aleatorio de dos regímenes de tratamiento para el cáncer de pulmón. Este es un conjunto de datos estándar de análisis de supervivencia.

Primero se buscan los valores de n y m. Para eso se usará el siguiente código:

km_model_trt <- surv_fit(Surv(time,status)~trt, veteran)
km_model_trt$strata
## trt=1 trt=2 
##    61    53

Una vez que se tiene los valores, es decir, n=61 y m=53 sacamos la distancia máxima entre las curvas de supervivencia para la base seleccionada “veteran”.

distancia(veteran, veteran$time, veteran$status,veteran$trt, 61, 53)

2. Base: “mgus2”

Datos De Gammapatía Monoclonal Historia natural de 1341 pacientes secuenciales con gammapatía monoclonal de importancia indeterminada (MGUS). Donde toman de variables: futime que es el tiempo de muerte o ultimo contacto death ocurrencia de muerte donde 0 es no y 1 es si. pstat ocurrencia de PCM: 0 = no, 1 = sí, donde PCM es progresión a una neoplasia maligna de células plasmáticas.

Se repite el proceso de la data “veteran” para encontrar los valores de n y m.

km_model_trt <- surv_fit(Surv(futime,death)~pstat, mgus2)
km_model_trt$strata
## pstat=0 pstat=1 
##     262      90

Ya que se tiene los valores, es decir, n=73 y m=68 sacamos la distancia máxima entre las curvas de supervivencia para “cancer”.

distancia(mgus2,mgus2$futime,mgus2$death,mgus2$pstat,262,90)

3. Base: “cancer”

Esta base de datos consiste en la supervivencia en pacientes con cáncer pulmonar avanzado del Grupo de Tratamiento del Cáncer del Norte Central. Los puntajes de rendimiento evalúan qué tan bien el paciente puede realizar las actividades diarias habituales.

Primero debemos encontrar los valores de n y m.

km_model_trt <- surv_fit(Surv(time,status)~sex, cancer)
km_model_trt$strata
## sex=1 sex=2 
##   119    87

Ya que se tiene los valores respectivos, es decir; n=119 y m=87. Se procede a sacar la distancia máxima entre las curvas de supervivencia de la base estudiada.

distancia(cancer,cancer$time,cancer$status,cancer$sex,119,87)