Este análisis de supervivencia se basa en el estudio del tiempo, dada o no la ocurrencia de un evento.

El tiempo de superviviencia o fallo se define como el tiempo que transurre desde el estado inicial o inicio hasta la ocurrencia de un evento escpecifico dado o fallo.

Para determinar el tiempo de falla de manera precisa, hay tres puntos requeridos: - Un tiempo de origen que debe ser definido, - Una escala para medir el paso del tiempo congruente al problema y - NUestra definicion defallo debera ser completamente claro.

Frecuentemente la escala para medir el paso de tiempo es el reloj (en tiempo real, segundos, minutos, etc), sin embargo hay otras posibilidades, el tamaño de un árbol o la cantidad de agua que hay en un tambo.

La función que se creó para el análisis de supervivencia toma los parámetros del data frame seleccionado, donde se selecciona la columna de escala de tiempo a evaluar y la colummna donde nos de un indicador si no se presentó censura y si se presentó la falla del evento estudiado. También la función toma como parámetro el tamaño de la poblacion a evaluar para después hacer su gráfica para el análisis de supervivencia.

require(survival)
require(KMsurv)
require(dplyr)
require(ggplot2)
grafico<- function(n,m){
  ggplot(m)+
  geom_point(aes(x = 1:n, 
                 y = m[,1], 
                 shape = m[,2] %>% as.factor(),
                 colour = m[,2] %>% as.factor()),
                 size = 3)+
  geom_linerange(aes(x = 1:n,
                     ymin = 0,
                     ymax = m[,1]),
                    linetype = "dashed")+
  coord_cartesian(ylim = c(0, max(m[1,])+5))+
  coord_flip()+theme_light()+labs(y="tiempo",x="tamaño de la muestra")+
    scale_color_discrete(name="variables",labels=c(paste("censura"),
                                                       paste("falla")))+
    ggtitle("gráfica de supervivencia")
  }

Ahora veamos cómo funciona el código con 3 bases de datos distintas

1 Data.frame “HR_comma_sep.csv”

Este data.frame nos muestra el comportamiento de los trabajadores con respecto a la empresa donde laboran.

El data frame tiene un total de 14,999 observacioness junto con 10 variables, pero en este estudio se tomaron 20, 30 y 40 trabajadores de manera aleatoria, el cual solo nos interesó estudiar la variable de tiempo “time_spend_company” y el evento “left”.

Como el data frame es muy amplio, se creó un subconjunto de los datos tomando solamente en cuenta las variables mencionadas anteriormente para poder manejarlo mucho más sencillo y poder hacer los gráficos correspondientes para el estudio en cuestión.

hr<- read.csv("HR_comma_sep.csv")
Surv(hr$time_spend_company, hr$left)
n1<-20
set.seed(10)
m1 <- hr %>% 
  select(time_spend_company, left) %>% 
  sample_n(n1)

grafico(n1,m1)

n1<-30
set.seed(20)
m1 <- hr %>% 
  select(time_spend_company, left) %>% 
  sample_n(n1)

grafico(n1,m1)

n1<-40
set.seed(30)
m1 <- hr %>% 
  select(time_spend_company, left) %>% 
  sample_n(n1)

grafico(n1,m1)