Gráficas de Diagnósticos.

En el análisis de la supervivencia es de interés saber si de un modelo no paramétrico hay evidencia de que este sea paramétrico. Para observar si esto es cierto, se utilizará la siguiente función que recibe como parámetros el vector de tiempos antes de la falla dentro del estudio y el vector de censura de estos tiempos.

Esta función realiza un gráfico que permite observar si la función de supervivencia estimada a través del método Kaplan-Meier sigue alguna distribución paramétrica. En cada gráfica se menciona el comportamiento que se espera según la parametrización.

Parámetros

diag<-function(datos, censura){
  df<-data.frame(datos, censura)
  km_model<-surv_fit(Surv(datos,censura)~1, data=df)
  t<-km_model$time
  s<-km_model$surv
  df<-data.frame(t,s)
  
  #Grafica exponencial
  p_e<-ggplot(df)+geom_line(aes(x=log(s), y=t), colour="lightskyblue2", size=1)+
    geom_point(aes(x=log(s), y=t), colour="lightskyblue2", size=2)+
    labs(x = "ln(S(t))",y = "t",title ="Diagnostico exponencial", 
         subtitle= "Linea recta con pendiente negativa") 
  #Grafica weibull   
  p_w<-ggplot(df)+geom_line(aes(x=log(-log(s)), y=log(t)), colour="lightskyblue2", size=1)+
    geom_point(aes(x=log(-log(s)), y=log(t)), colour="lightskyblue2", size=2)+
    labs(x = "S(t)",y = "t",title ="Diagnostico Weibull", 
         subtitle= "Linea recta con pendiente positiva")
  #Grafica Lognormal
  p_ln<-ggplot(df)+geom_line(aes(x=qnorm(1-s), y=log(t)), colour="lightskyblue2", size=1)+
    geom_point(aes(x=qnorm(1-s), y=log(t)), colour="lightskyblue2", size=2)+
    labs(x = "S(t)",y = "t",title ="Diagnostico Lognormal", 
         subtitle= "Linea recta con pendiente positiva") 
  #Grafica Loglogistica
  p_ll<-ggplot(df)+geom_line(aes(x=1/s-1, y=t), colour="lightskyblue2", size=1)+
    geom_point(aes(x=1/s-1, y=t), colour="lightskyblue2", size=2)+
    labs(x = "S(t)",y = "t",title ="Diagnostico Log-logistico", 
         subtitle= "Linea recta con pendiente positiva") 
  #Grafica Gompertz
  p_g<-ggplot(df)+geom_line(aes(x=log(1-log(s)), y=t), colour="lightskyblue2", size=1)+
    geom_point(aes(x=log(1-log(s)), y=t), colour="lightskyblue2", size=2)+
    labs(x = "S(t)",y = "t",title ="Diagnostico Gompertz", 
         subtitle= "Linea recta con pendiente positiva") 
  grid.arrange(p_e,p_w,p_ln,p_ll,p_g, ncol=2)
}

Hagamos ahora varios ejemplos de la función

Ejemplo 1

La base de datos trabaja con pacientes que presentan cáncer en sus ovarios. Se analiza el tiempo en morir y se clasifican los datos en censurados y no censurados.

data(ovarian)
diag(ovarian$futime,ovarian$fustat)

Ejemplo 2

La base de datos trabaja con paciente que presentan cáncer de médula. Se analiza el tiempo en el que fallece después de entrar al estudio o su salida del mismo. De manera análoga, se clasifican los datos en censurados (0) y no censurados (1).

data(myeloid)
diag(myeloid$futime, myeloid$death)

Ejemplo 3

La base de datos trabaja con el tiempo de contrato de empleados en una cierta empresa y si han dejado o no la empresa.

hr <- read_csv("~/R/Estadistica 3/HR_comma_sep.csv")
diag(hr$time_spend_company, hr$left)