El objetivo de la práctica consiste en crear una función que mida distancias (en tiempo) entre curvas de supervivencia para dos subgrupos/estratos.
max_distance<- function(km_model_trt){
#trabajamos con estrato=1
n_1<-km_model_trt$strata[1]
time_1<- km_model_trt$time[1:n_1]
survival_1<-km_model_trt$surv[1:n_1]
#trabajamos con estrato=2
n_2<-km_model_trt$strata[2]
time_2<- km_model_trt$time[(1+n_1):(n_1+n_2)]
survival_2<- km_model_trt$surv[(1+ n_1):(n_1+n_2)]
#Aproximación de la función de supervivencia
f1 <- approxfun(survival_1, time_1)
f2 <- approxfun(survival_2, time_2)
#Partición con los valores de la función aproximada
v1 <- f1(seq(0, 1.3, length = 500))
v2 <- f2(seq(0, 1.3, length = 500))
v_aux <- seq(0,1.3,length=500)
## Graficamos
n=which.max(abs(v1-v2))
ma=abs(v1[n]-v2[n])
plot(v1,v_aux,xlab = "Time", ylab = "Survival Probability",type="s",main = paste("La diferencia máxima es ",ma),col="red" )
lines(v2,v_aux,type = "s",col = "green")
n=which.max(abs(v1-v2)) #Se pide la posicón donde se alcanza el máximo de las diferencias
segments(v1[n],v_aux[n],v2[n],v_aux[n],col = "blue")
}
Paso 1. Se cargan los datos que se desean utilizar.
data_frame_original <- read.csv("Nombre_del_archivo_donde_estan_los_datos.csv")
Paso 2. Damos formato de supervivencia a nuestros datos con la función:
Surv(data_frame_original$vector_de_tiempos , data_frame_original$vector_de_fallo)
Paso 3. Ajustamos nuestros datos con KM
Km_Nombre_del_modelo <- surv_fit(Agregamos_el_paso_2 ~ vector_estratos, data=data_frame_original)
Es decir
Km_Nombre_del_modelo <- surv_fit( Surv(vector_de_tiempos , vector_de_fallo) ~ vector_estratos, data=data_frame_original)
y finalmente “Km_Nombre_del_modelo” será lo que recibe la función
data(veteran)
km_model_trt<-survfit(Surv(time, status)~trt, data=veteran)
max_distance(km_model_trt)
data(psych)
km_model_trt1<-survfit(Surv(time, death)~sex, data=psych)
max_distance(km_model_trt1)
data("diabetic")
km_model_trt2<-survfit(Surv(time, status)~trt, data=diabetic)
max_distance(km_model_trt2)