La función que se presenta a continuación hace gráficos que permiten determinar si la función de supervivencia estimada sigue alguna distribución paramétrica exponencial, weibull, lognormal, log logistica o gompertz. La función de supervivencia se estima a través del método Kaplan-Meier y si es que algún grafico es una linea recta, significa que muy probablemente la función de supervivencia sigue la distribución del grafico asociado. La función recibe tres parametros, t que es un vector de tiempos de falla, c que es el vector de datos censurados y data que es el conjunto de datos sobre el que trabajamos.
fun<-function(t, c, data){
km_model<-surv_fit(Surv(t,c)~1, data)
exponencial<-ggplot()+
geom_point(aes(x=log(km_model$surv), y=km_model$time), colour="#F52121")+
labs(x = "ln(S(t))",y = "t",title ="Diagnostico exponencial")
exponencial
weib<-ggplot()+
geom_point(aes(log(-log(km_model$surv)), log(km_model$time)), color = "#EFDA07")+
labs(x="S(t)", y="t", title = "Diagnostico Weibull")
weib
lognorm<-ggplot()+
geom_point(aes(qnorm(1-km_model$surv), log(km_model$time)), color="#00AFBB")+
labs(x="S(t)", y="t", title = "Diagnostico Lognormal")
lognorm
loglogis<-ggplot()+
geom_point(aes(log((1/km_model$surv)-1), log(km_model$time)), color="#2EE120")+
labs(x="S(t)", y="t", title = "Diagnostico Log-logistico")
loglogis
gompert<-ggplot()+
geom_point(aes(log(-log(km_model$surv)+1), km_model$time), color="#E1209E")+
labs(x="S(t)", y="t", title = "Diagnostico Gompertz")
gompert
grid.arrange(exponencial,weib,lognorm,loglogis,gompert, ncol=3)
}
Ahora mostraremos tres ejemplos de su uso con tres conjuntos de datos distintos que sacamos de R, del paquete ‘survival’.
El primero es con el data set llamado “diabetic”, que trata una retinopatía diabética de “alto riesgo”, a través de una prueba de coagulación con láser, por lo tanto el evento de interés fue el tiempo desde el inicio del tratamiento hasta el momento en que la agudeza visual cayó por debajo de 5/200 dos visitas seguidas.
fun(diabetic$time,diabetic$status,diabetic)
Este ejercicio lo haremos con el data set llamado “cancer”, que estudia la supervivencia en días de pacientes con cáncer de pulmón avanzado.
fun(cancer$time,cancer$status,cancer)
Por último trabajaremos con el data set llamado “rats”, en el cual se eligieron tres ratas de cada una de las 100 camadas, una de las cuales se trató con un medicamento, y luego se siguió a todos para determinar la incidencia de tumores.
fun(rats$time,rats$status,rats)