Los paquetes a ocupar en esta práctica fueron los siguientes:

library(tidyverse)
## -- Attaching packages ---------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.1     v purrr   0.3.2
## v tibble  2.1.3     v dplyr   0.8.3
## v tidyr   0.8.3     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## -- Conflicts ------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
require(ggplot2)
library(magrittr)
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
## 
##     set_names
## The following object is masked from 'package:tidyr':
## 
##     extract
library(ggpubr)
library(survminer)
library(survival)
library(gridExtra)
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
require(dplyr)
require(easynls)
## Loading required package: easynls

Ahora se construye la función que va a crear los gráficos diagnóstico para determinar si a una curva de supervivencia estimada KM le subyace algún modelo paramétrico

Graficos_diagnosis<- function(time, ocurrencia, datos){
  
  km_model <- surv_fit(Surv(time, ocurrencia)~1, datos)
  
  Grafica_exp<-ggplot()+
    geom_point(aes(log(km_model$surv), km_model$time), color="dodgerblue" )+ geom_smooth()+
    labs(x="Supervivencia", y="tiempo de Supervivencia",title = "Exponential diagnosis", subtitle = "negative slope expected" )+theme_bw() + 
  theme(
    panel.background = element_rect(fill = "wheat"),
    panel.grid.minor = element_line(linetype = "solid")
  )
  
  Grafica_Weibull<-ggplot()+
    geom_point(aes(log(-log(km_model$surv)), log(km_model$time)), color="orangered")+
    geom_smooth()+
    labs(x="Supervivencia", y="tiempo de Supervivencia", title = "Weibull diagnosis", subtitle = "positive slope expected")+theme_bw() + 
  theme(
    panel.background = element_rect(fill = "khaki"),
    panel.grid.minor = element_line(linetype = "solid")
  )
 
  
   Grafica_log<-ggplot()+ 
     geom_point(aes(qnorm(1-km_model$surv), log(km_model$time)), color="deeppink")+
    labs(x="Supervivencia", y="tiempo de Supervivencia", title = "Log-normal diagnosis", subtitle = "positive slope expected")+theme_bw() + 
  theme(
    panel.background = element_rect(fill = "thistle1"),
    panel.grid.minor = element_line(linetype = "solid")
  )

  
  Grafica_logistic<-ggplot()+ 
    geom_point(aes((1/km_model$surv-1),km_model$time),color="limegreen")+
    geom_smooth()+
    labs(x="Supervivencia", y="tiempo de supervivencia", title = "Log-Logistic diagnosis", subtitle = "positive slope expected")+
    theme_bw() + 
  theme(
    panel.background = element_rect(fill = "lightcyan"),
    panel.grid.minor = element_line(linetype = "solid")
  )
  
  
  Grafica_gompertz<-ggplot()+ 
    geom_point(aes(log(-log(km_model$surv)+1), km_model$time), color="purple4")+
    geom_smooth()+
    labs(x="Supervivencia", y="tiempo de Supervivencia", title = "Gompertz  diagnosis", subtitle = "positive slope expected")+theme_bw() + 
  theme(
    panel.background = element_rect(fill = "lightblue"),
    panel.grid.minor = element_line(linetype = "solid")
  )
  
grid.arrange(Grafica_exp,Grafica_Weibull,Grafica_gompertz, Grafica_log, Grafica_logistic, nrow=2)
  
}

Ahora, se observa el comportamiento de algunas bases de datos de la paquetería Survival

Datos del catéter renal

Datos sobre los tiempos de recurrencia a la infección, en el punto de inserción del catéter, para pacientes renales que utilizan equipos portátiles de diálisis. Los catéteres pueden retirarse por distintas razones a la infección, en cuyo caso la observación está censurada. Cada paciente tiene exactamente dos observaciones.

data(kidney)
Graficos_diagnosis(kidney$time, kidney$status, kidney)

Quimioterapia para el cáncer de colon

Estos son datos de uno de los primeros ensayos exitosos de quimioterapia adyuvante para el cáncer de colon. El levamisol es un compuesto de baja toxicidad utilizado anteriormente para tratar infestaciones de gusanos en animales; El 5-FU es un agente de quimioterapia moderadamente tóxico (como sucede). Hay dos registros por persona, uno para recurrencia y otro para muerte.

data(colon)
Graficos_diagnosis(colon$time, colon$status, colon)

Datos de supervivencia del cáncer de ovario

Supervivencia en un ensayo aleatorio que compara dos tratamientos para el cáncer de ovario.

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