7 votos

¿Paquetes de R (o código SAS) para producir dos curvas de Kaplan-Meier simultáneas?

Hay una manera de realizar un análisis de supervivencia de dos (o más supongo) riesgos competitivos mutuamente excluyentes como una mezcla de dos curvas de supervivencia diferentes. Algo así como lo que se ve en A.C. Ghani et al. Métodos para estimar la proporción de letalidad de un nuevo brote de enfermedad infecciosa. American Journal of Epidemiology (2005) Vol. 162, No. 5

Lo que busco es un paquete que ayude a producir algo como esta figura:

introduzca aquí la descripción de la imagen

Donde la curva de supervivencia de un resultado, y 1-la curva de supervivencia del otro resultado eventualmente se encontrarán en un punto particular que es la mezcla de los dos resultados.

0 votos

Es posible que desees considerar preguntar esto en SO, ya que parece estar principalmente relacionado con cómo hacer que R haga algo.

0 votos

@gung Lo consideré, elegí stats.SE porque está más cerca de ser una pregunta sobre métodos de estadísticas / programación en mi opinión, ya que la composición de dos curvas de KM en una mezcla no es solo un ejercicio de programación. Pero podría estar equivocado, y no me opondré si se migra.

0 votos

No tengo una respuesta completa, pero un lugar para buscar es "modifying the ODS template for survival plots" en la documentación de SAS para PROC LIFETEST. Alternativamente, podrías generar los datos necesarios (usando OUTEST, creo) y luego crear ambas líneas fácilmente en PROC SGPLOT con SCATTER, pero eso no sería exactamente lo que muestras.

2voto

ocram Puntos 9992

En R, un survfit.object---devuelto por survfit()---almacena una curva de supervivencia ajustada. En particular, este objeto contiene los puntos en los que la curva tiene un escalón y las ordenadas en esos puntos. Por lo tanto, puedes construir la función de supervivencia, $t\mapsto \hat{S}(t)$, mediante interpolación constante. Aquí te muestro cómo lo haría:

km <- summary(survfit(Surv(time, event) ~ 1, data=data))
S <- approxfun(km$time, km$surv,
               method="constant", f=0, yleft=1, rule=2)

Ahora, S se puede usar como cualquier función definida por el usuario en R: en particular, puedes evaluar S(t) en cualquier momento t, puedes hacer gráficos usando plot(), y puedes superponer dos curvas de Kaplan-Meier en el mismo gráfico usando lines(), ...

¡Espero que esto te sea útil!

0 votos

La pregunta entonces es cómo obtener un objeto survfit que represente una mezcla de dos curvas de supervivencia, en lugar de dos curvas que ocurren de forma independiente.

0 votos

Una pregunta de seguimiento: ¿cómo generaría intervalos de confianza para S(t)?

1voto

aron Puntos 174

Lo que estás pidiendo es un gráfico simultáneo de la función de supervivencia para un proceso y la función de incidencia acumulativa (= 1- S(t)) para el proceso competidor. El paquete R 'cmprsk' debería ser capaz de hacer los gráficos, pero como el modo habitual es mostrar ambos procesos como la incidencia acumulativa, tendrás que hacer algo de trabajo para transformar los datos de manera que uno sea S(t) y el otro sea H(t).

0 votos

Mientras que tienes razón en términos de la graficación, 'cmprsk' utiliza el modelo de riesgos proporcionales de subdistribución, lo cual no es exactamente lo que estoy buscando.

0 votos

Pediste trazar, no inferencia.

0 votos

Estás técnicamente en lo correcto, pero trazar correctamente una función de supervivencia requiere que se construya correctamente en primer lugar.

0voto

WojciechF Puntos 58

¿No sería suficiente si pudieras trazar dos curvas usando par(new=T)?

plot(survfit(KMfit1 ~ 1),main="Estimación de Kaplan-Meier con límites de confianza del 95%",xlab="tiempo", ylab="función de supervivencia",col="red",xlim=c(0,70))

par(new=T)

plot(survfit(KMfit2 ~ 1),col="green",xlim=c(0,70))

Introducir descripción de la imagen aquí

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