La función que se creo para graficar la funciones de supervivencia toma como parametros: El nombre del data.frame donde se debe de seleccionar la columna de escala de tiempo a evaluar y la colummna donde nos de un indicador 0 si no se presento censura y 1 si se presento la falla del evento estudiado, Y tambĆen la función toma como parametro el tamaƱo de la poblacion a evaluar. Cabe resaltar que como manejamos datos muy extentos como el nĆŗmero de población para cada base a n=30 o n=26 segĆŗn sea el caso.
library(survival)
library(KMsurv)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(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")+
labs(x = "Observaciones",
y = "Tiempo",
shape = "Ocurrencia del evento",
colour = "Ocurrencia del evento")+
coord_cartesian(ylim = c(0, max(m[1,])+5))+
coord_flip()+theme_get()
}
Ahora veamos las tres bases de datos utilizadas para esta practica:
El primer data.frame en ser usado es āHR_comma_sep.csvā, donde nos muestra el comportamiento de los trabajadores con respecto a la empresa donde laboran
n1<-30
hr<- read.csv("HR_comma_sep.csv")
a<-Surv(hr$time_spend_company, hr$left)
print(a[1:30])
## [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
set.seed(123)
m1 <- hr %>%
select(time_spend_company, left) %>%
sample_n(n1)
grafico(n1,m1)
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Ahora veamos tres ejemplos con la base de datos anterior:
1.- Podemos ver que de las 30 personas sometidas a la evaluación, la persona número 5 decidio renunciar entre el periodo 5 y 7 por lo cual vemos que se trata de una censura de intervalos, debido a que no sabemos con ciencia exacta en que momento sucedio debido a que manejamos una escala discreta en el tiempo.
2.- La persona número 13 esta censurada debido a que no renuncio en el periodo de evaluación, los cual nos indica que es una censura por la derecha tipo 1
3.- El complemento de la población observada es decir todas las personas menos la 5 y 14, presentaron una censura aleatoria debido a que por causas desconocidad dejaron el estudio si haber renunciado.
El segundo data.frame en usarse es āgenfanā, donde es un estudio de 70 ventiladores a disel, donde la escala de tiempo son las horas de servicio y la calomna de status nos dice con 0 si es censurado el dato y con 1 si se presenta una falla. Por motivos practicos tomaremos n=30
n2<-30
data("genfan")
## Warning in data("genfan"): data set 'genfan' not found
gf<-data.frame(genfan)
Surv(gf$hours, gf$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+
m2<-gf %>%
select(hours,status) %>%
sample_n(n2)
grafico(n2,m2)
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Ahora procedamos a ver tres ejemplos
1.- De los treinta ventiladores evaluados podemos ver que la mayorĆa presenta censura aleatoria, es decir que la mayorĆa de los ventiladores se retiro del estudio por razones aleatorias
2.- El ventilador 25 sufrio una falla entre 0 y 2500 hrs
3.- El ventilador 16 sufrio censura por la derecha tipo 1 debido a que no presento falla alguna durante el tiempo de observación del estudio
Por ultimo data.frame se ocupo āpsychā, donde se cuenta con una población de 26 personas y nos interesa ver si ocurre la muerte del paciente o no.
n3<-26
data("psych")
ps<-data.frame(psych)
Surv(psych$time,psych$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+
m3<-ps %>%
select(time,death) %>%
sample_n(n3)
grafico(n3,m3)
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Ejemplos con la base anterior:
1.- El paciente 11 y 13 fallecen aproximadamente en el mismo bloque de tiempo
2.- Podemos observar como el paciente 24 presenta la falla en el ultimo bloque del estudio
3.- Los pacientes que sufrieron censura, fue del tipo aleatoria debido a que salieron del estudio sin haber fallecido