50 votos

Herramientas de análisis de supervivencia en Python

Estoy preguntando si hay algún paquete para Python capaz de realizar análisis de supervivencia. He estado utilizando el paquete de supervivencia en R pero me gustaría trasladar mi trabajo a Python.

12 votos

Utilice Rpy para llamar a R desde Python ;-)

5 votos

Es sumamente dudoso que los desarrolladores de Python para análisis de supervivencia hayan puesto el mismo esfuerzo que Terry Therneau y otros han puesto en el paquete de supervivencia de R en los últimos 30 años, incluyendo pruebas extensas. El paquete de supervivencia se somete a los procedimientos de prueba más rigurosos que he visto en estadística.

3 votos

De acuerdo. El paquete de survival de R está bajo estrecha escrutinio por una gran comunidad.

72voto

user11867 Puntos 21

Visite el proyecto lifelines¹ para ver una implementación simple y limpia de modelos de supervivencia en Python, que incluye

  • Estimadores de funciones de supervivencia
  • Estimadores de curvas de riesgo acumulado
  • Modelo de regresión de riesgos proporcionales de Cox
  • Modelo de regresión de riesgos variables en el tiempo de Cox
  • Modelos AFT paramétricos
  • Modelo de regresión aditiva de Aalen
  • Prueba multivariable

Beneficios:

  • construido sobre Pandas
  • Python puro y fácil de instalar
  • funciones de trazado incorporadas
  • interfaz simple

La documentación está disponible aquí: documentación y ejemplos

Uso de ejemplo:

from lifelines import KaplanMeierFitter

survival_times = np.array([0., 3., 4.5, 10., 1.])
events = np.array([False, True, True, False, True])

kmf = KaplanMeierFitter()
kmf.fit(survival_times, event_observed=events)

print(kmf.survival_function_)
print(kmf.median_)
kmf.plot()

Gráficos de ejemplo de la biblioteca de trazado incorporada:

introducir descripción de la imagen aquí

  1. Descargo de responsabilidad: Soy el autor principal. Contácteme (email en perfil) para preguntas o comentarios sobre lifelines.

17 votos

(+1) Nombre bastante inteligente para un paquete de supervivencia.

23voto

Eggs McLaren Puntos 945

Según tengo entendido, no hay paquetes de análisis de supervivencia en python. Como comenta mbq arriba, la única ruta disponible sería utilizar Rpy.

Incluso si hubiera un paquete en python puro disponible, sería muy cuidadoso al usarlo, en particular yo revisaría:

  • ¿Con qué frecuencia se actualiza?
  • ¿Tiene una gran base de usuarios?
  • ¿Ofrece técnicas avanzadas?

Uno de los beneficios de R es que estos paquetes estándar reciben una cantidad masiva de pruebas y retroalimentación de los usuarios. Al tratar con datos reales, pueden surgir casos inesperados.

7 votos

En los últimos 5 años muchas cosas cambiaron (para mejor) para Python. Ver respuesta de Cam.Davidson.Pilon en Lifelines.

9voto

Omar Kooheji Puntos 384

python-asurv es un esfuerzo para portar el software asurv para métodos de supervivencia en astronomía. Puede valer la pena mantenerse al tanto, pero cgillespie tiene razón sobre las cosas a tener en cuenta: tiene un camino largo por recorrer y el desarrollo no parece activo. (Por lo que yo sé, solo existe un método y, aunque completado, el paquete puede ser insuficiente para, por ejemplo, biostatísticos.)

Probablemente sea mejor utilizar el paquete survival en R desde Python a través de algo como RPy o PypeR. No he tenido problemas haciendo esto yo mismo.

8voto

christy Puntos 51

PyIMSL contiene un puñado de rutinas para análisis de supervivencia. Es Libre Como en una cerveza para uso no comercial, completamente compatible en otros casos. Desde la documentación en la Guía del Usuario de Estadísticas...

Calcula estimaciones de Kaplan-Meier de probabilidades de supervivencia: kaplanMeierEstimates()

Analiza datos de supervivencia y fiabilidad utilizando el modelo de riesgos proporcionales de Cox: propHazardsGenLin()

Analiza datos de supervivencia utilizando el modelo lineal generalizado: survivalGlm()

Estima utilizando varios modelos paramétricos: survivalEstimates()

Estima una función de riesgo de fiabilidad utilizando un enfoque no paramétrico: nonparamHazardRate()

Produce tablas de vida de población y cohortes: lifeTables()

1voto

Yuval Filmus Puntos 123

Además de utilizar R a través de RPy o equivalente, existen una serie de rutinas de análisis de supervivencia en la biblioteca de python statsmodels (anteriormente conocida como sicpy.statsmodel). Sin embargo, estas se encuentran en el paquete de "sandbox", lo que significa que no están listas para producción en este momento.

Por ejemplo, tienes el modelo de Cox de riesgo proporcional codificado 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