16 votos

Estimación de una probabilidad de supervivencia en R

Basado en una muestra de $n$ tiempos de supervivencia, me gustaría estimar la probabilidad de sobrevivir al tiempo $t$ Para algunos casos específicos $t$ utilizando el estimador de Kaplan-Meier. ¿Es posible hacer esto en R ? Tenga en cuenta que $t$ no es necesariamente una hora de evento.

1 votos

Por supuesto: véase la función survfit() del paquete survival [type help(package="survival")].

3 votos

@Stephane Laurent: La función surfit() da como resultado la supervivencia estimada en los momentos del evento. Pero me gustaría tener un procedimiento automático para calcular esa supervivencia en cualquier momento t. Gracias...

0 votos

Entonces usa approxfun()

26voto

Zypher Puntos 26466

Puede utilizar la salida del survfit de la función survival y dárselo a stepfun .

km <- survfit(Surv(time, status)~1, data=veteran)
survest <- stepfun(km$time, c(1, km$surv))

Ahora survest es una función que puede ser evaluada en cualquier momento.

> survest(0:100)
  [1] 1.0000000 0.9854015 0.9781022 0.9708029 0.9635036 0.9635036 0.9635036
  [8] 0.9416058 0.9124088 0.9124088 0.8978102 0.8905109 0.8759124 0.8613139
 [15] 0.8613139 0.8467153 0.8394161 0.8394161 0.8175182 0.8029197 0.7883212
 [22] 0.7737226 0.7664234 0.7664234 0.7518248 0.7299270 0.7299270 0.7225540
 [29] 0.7225540 0.7151810 0.7004350 0.6856890 0.6856890 0.6783160 0.6783160
 [36] 0.6709430 0.6635700 0.6635700 0.6635700 0.6635700 0.6635700 0.6635700
 [43] 0.6561970 0.6488240 0.6414510 0.6340780 0.6340780 0.6340780 0.6267050
 [50] 0.6193320 0.6193320 0.5972130 0.5750940 0.5677210 0.5529750 0.5529750
 [57] 0.5456020 0.5456020 0.5456020 0.5382290 0.5382290 0.5308560 0.5308560
 [64] 0.5234830 0.5234830 0.5234830 0.5234830 0.5234830 0.5234830 0.5234830
 [71] 0.5234830 0.5234830 0.5161100 0.5087370 0.5087370 0.5087370 0.5087370
 [78] 0.5087370 0.5087370 0.5087370 0.4939910 0.4939910 0.4866180 0.4866180
 [85] 0.4791316 0.4791316 0.4791316 0.4716451 0.4716451 0.4716451 0.4640380
 [92] 0.4640380 0.4564308 0.4564308 0.4564308 0.4412164 0.4412164 0.4412164
 [99] 0.4412164 0.4257351 0.4179945

6 votos

Surrealista es tener un problema, buscar una respuesta en StackExchange, encontrar la misma pregunta, y darse cuenta de que fuiste tú quien la respondió hace casi 7 años...

9voto

Se puede pasar un parámetro de tiempo a la función de resumen del objeto survfit:

summary(km, times=100)

También se puede pasar un vector:

summary(km, times=0:100)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X