El objetivo de esta práctica es crear una función que haga un gráfico para conjuntos de datos de supervivencia.

Función que realiza el gráfico

Esta función recibe un data frame que previamente hay que adecuarlo a las necesidades del problema.

#### función que genera una gráfica de datos censurados 

gra <-function(m,n){
set.seed(1501)
  ggplot(m)+ 
  ggtitle("Datos censurados")+
  ylab("Tiempo transcurrido")+ xlab("Número de Observación")+
  geom_point (aes(x=1:n,
                 y= m[,1],
                  shape=m[,2] %>% as.factor(),
                 colour=m[,2] %>% as.factor(), size=n )) +
  geom_linerange(aes(x=1:n,
                     ymin=0,
                     ymax=m[,1]))+
    coord_cartesian( ylim = c( 0 , max(m[,1])+5)) + 
     coord_flip() }

Estructura del data frame que recibe la función

Paso 1. Se cargan los datos para la función en formato csv

    data_drame_original <- read.csv("Nombre_del_archivo_donde_estan_los_datos.csv")

Paso 2. Damos formato de supervivencia a nuestros datos con la funcion

    Surv(data_frame_original$vector_de_tiempos , data_frame_original$vector_de_fallo)
    

Paso 3. Definimos tamaño de nuestra

    n = numero de muestras que se van a plotear 

Paso 4. Creamos un nuevo data frame en el cual seleccione una muestra aleatoria de cardinaldad n (definida en el paso 3) , de las variables vector de tiempo y vector de falla de la siguente manera:

  nuevo_data_frame <- data_frame_original %>% select(vector_tiempo, vector_falla) %>% sample_n(n)

Paso 5. Correr la función con el nuevo data frame generado

  gra(nuevo_data_frame, n)
  
  

Hagamos unos ejemplos

Ejemplo 1

##cargamos el data frame original 
data("genfan")
#genfan %>% View
#generamos un data frame 
dfo1=data.frame(genfan)

#Le ponemos formato de supervivencia a nuestros datos 
Surv(dfo1$hours , dfo1$status)
##  [1]   450    460+  1150   1150   1560+  1600   1660+  1850+  1850+  1850+
## [11]  1850+  1850+  2030+  2030+  2030+  2070   2070   2080   2200+  3000+
## [21]  3000+  3000+  3000+  3100   3200+  3450   3750+  3750+  4150+  4150+
## [31]  4150+  4150+  4300+  4300+  4300+  4300+  4600   4850+  4850+  4850+
## [41]  4850+  5000+  5000+  5000+  6100+  6100   6100+  6100+  6300+  6450+
## [51]  6450+  6700+  7450+  7800+  7800+  8100+  8100+  8200+  8500+  8500+
## [61]  8500+  8750+  8750   8750+  9400+  9900+ 10100+ 10100+ 10100+ 11500+
#definir el tamaño de muestra y las variables de interes
#n = tamaño de muestra 
#armamos la variable "m" como un data frame que se compone del data frame original 
# %>%  select(variable de tiempo, variable de falla )
n=20 
m1 <- dfo1 %>% select(hours, status) %>% sample_n(n)
#pongamos en marcha 
gra(m1, n )
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.

Ejemplo 2

#Cargamos otra base de datos 
data("psych")
#psych %>% View() 
dfo2<-data.frame(psych)

#damos formato de supervivencia 

Surv(dfo2$time,dfo2$death)
##  [1]  1   1   2  22  30+ 28  32  11  14  36+ 31+ 33+ 33+ 37+ 35+ 25  31+
## [18] 22  26  24  35+ 34+ 30+ 35  40  39+
#definir el tamaño de muestra y las variables de interes
#n = tamaño de muestra 
#armamos la variable "m" como un data frame que se compone del data frame original 
# %>%  select(variable de tiempo, variable de falla )
n2=10
m2 <- dfo2 %>% select(time,death) %>% 
  sample_n(n2)
#pongamos en marcha 
gra(m2, n2)
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.

Ejemplo 3

hr <- read.csv("HR_comma_sep.csv")

#damos formato de supervivencia
head(Surv(hr$time_spend_company, hr$left),200)
##   [1] 3 6 4 5 3 3 4 5 5 3 3 4 5 3 3 3 3 6 3 5 4 3 4 3 3 5 5 3 3 3 4 3 3 3 6
##  [36] 4 3 3 4 3 5 3 3 4 4 4 3 6 3 3 2 3 3 3 4 3 4 4 3 5 5 4 5 3 4 4 3 6 5 3
##  [71] 3 4 3 4 4 4 4 3 3 3 3 3 3 6 4 4 3 3 3 4 3 5 3 3 4 3 4 4 4 6 3 3 3 4 3
## [106] 5 5 3 4 3 3 4 3 5 5 3 2 4 3 3 4 3 6 5 3 4 3 5 4 3 4 3 5 3 3 5 4 3 5 5
## [141] 4 3 4 3 5 3 5 4 5 3 4 3 3 3 3 4 5 4 3 3 4 6 3 5 5 4 3 5 5 3 5 3 4 4 4
## [176] 2 3 3 3 5 3 4 5 4 3 3 4 3 3 3 5 6 5 4 5 4 3 4 4 6
#definir el tamaño de muestra y las variables de interes
#n = tamaño de muestra 
#armamos la variable "m" como un data frame que se compone del data frame original 
# %>%  select(variable de tiempo, variable de falla )
n3=30
m3 <- hr %>% select(time_spend_company,left) %>% 
  sample_n(n3)
#pongamos en marcha 

gra(m3 , n3 )
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.