Herramientas de análisis de supervivencia en Python [cerrado]
46
Me pregunto si hay paquetes para Python que sean capaces de realizar análisis de supervivencia. He estado usando el paquete de supervivencia en R pero me gustaría portar mi trabajo a Python.
Es extremadamente dudoso que los desarrolladores de Python para el análisis de supervivencia se hayan esforzado en cualquier lugar cerca de lo que Terry Therneau y otros han puesto en el paquete de supervivencia R en los últimos 30 años, incluidas las pruebas exhaustivas. El paquete de supervivencia se somete a los procedimientos de prueba más rigurosos que he visto en las estadísticas.
Frank Harrell
2
Convenido. El survivalpaquete de R está bajo escrutinio minucioso por parte de una gran comunidad.
Marc Claesen
RPy (2 ahora) es muy doloroso de instalar en mi experiencia.
Zhubarb
Respuestas:
21
AFAIK, no hay paquetes de análisis de supervivencia en python. Como comenta mbq anteriormente, la única ruta disponible sería a Rpy .
Incluso si hubiera un paquete de Python puro disponible, sería muy cuidadoso al usarlo, en particular miraría:
¿Con qué frecuencia se actualiza?
¿Tiene una gran base de usuarios?
¿Tiene técnicas avanzadas?
Uno de los beneficios de R es que estos paquetes estándar reciben una gran cantidad de pruebas y comentarios de los usuarios. Cuando se trata de datos reales, pueden aparecer casos inesperados.
Gráficos de ejemplo de la biblioteca de trazado integrada:
Descargo de responsabilidad: soy el autor principal. Envíame un correo electrónico (perfil de correo electrónico) para preguntas o comentarios sobre líneas de vida .
(+1) Nombre bastante inteligente para un paquete de supervivencia.
Marc Claesen
8
python-asurv es un esfuerzo para portar el software asurv para métodos de supervivencia en astronomía. Puede valer la pena vigilar, pero cgillespie tiene razón sobre las cosas a tener en cuenta: tiene un largo camino por recorrer y el desarrollo no parece estar activo. (AFAICT solo existe un método e incluso completado, el paquete puede faltar para, por ejemplo, bioestadísticos)
Probablemente sea mejor usar el paquete de supervivencia en R de Python a través de algo como RPy o PypeR . No he tenido ningún problema para hacer esto yo mismo.
PyIMSL contiene un puñado de rutinas para análisis de supervivencia. Es gratis como en cerveza para uso no comercial, totalmente compatible de lo contrario. De la documentación en la Guía del usuario de estadísticas ...
Calcula las estimaciones de Kaplan-Meier de las probabilidades de supervivencia: kaplanMeierEstimates ()
Analiza los datos de supervivencia y confiabilidad utilizando el modelo de riesgos proporcionales de Cox: propHazardsGenLin ()
Analiza los datos de supervivencia utilizando el modelo lineal generalizado: survivalGlm ()
Estimaciones utilizando varios modos paramétricos: survivalEstimates ()
Estima una función de riesgo de confiabilidad utilizando un enfoque no paramétrico: nonparamHazardRate ()
Produce tablas de vida de poblaciones y cohortes: lifeTables ()
¿Puedes dar un ejemplo de esto? Tengo curiosidad por probarlo!
user603
Creo que te refieres a la interfaz mágica R (que usa rpy2). A mí también me encantaría ver un ejemplo rápido. (Tengo entendido que los modelos de supervivencia aún no están completamente disponibles en modelos de estadísticas .)
CHL
No estoy muy seguro acerca de statsmodels, pero puedes obtener cuadernos de github con ejemplos de las extensiones C, Octave y R. Necesitas ejecutar el Notebook para usarlos obviamente, pero estoy seguro de que puedes usar el mismo código en cualquier interfaz.
Carl Smith
3
@ user603 Aquí hay una demostración simple: nbviewer.ipython.org/4383682 ; Esto se basa en iPython bastante reciente, creo.
shabbychef
2
También quiero mencionar scikit-survival , que proporciona modelos para el análisis de supervivencia que se pueden combinar fácilmente con herramientas de scikit-learn (por ejemplo, KFold validación cruzada).
Al momento de escribir este artículo, scikit-survival incluye implementaciones de
Estimador de Nelson-Aalen de la función de riesgo acumulativo.
Estimador de Kaplan-Meier de la función de supervivencia.
Modelo de riesgo proporcional de Cox con y sin penalización neta elástica.
Modelo de tiempo de falla acelerado.
Máquina de vectores de soporte de supervivencia.
Modelo de Cox potenciado por gradiente.
índice de concordancia para la evaluación del desempeño.
¡scikit-survival es excelente para tareas relacionadas con la predicción del tiempo hasta el evento!
Cam.Davidson.Pilon
1
Además de usar a Rtravés RPyo equivalente, hay una serie de rutinas de análisis de supervivencia en la biblioteca python de statsmodels (anteriormente sicpy.statsmodel). Sin embargo, están en el paquete "sandbox", lo que significa que no se supone que estén listos para la producción en este momento.
Por ejemplo, tiene el modelo Cox de riesgo proporcional codificado aquí .
survival
paquete de R está bajo escrutinio minucioso por parte de una gran comunidad.Respuestas:
AFAIK, no hay paquetes de análisis de supervivencia en python. Como comenta mbq anteriormente, la única ruta disponible sería a Rpy .
Incluso si hubiera un paquete de Python puro disponible, sería muy cuidadoso al usarlo, en particular miraría:
Uno de los beneficios de R es que estos paquetes estándar reciben una gran cantidad de pruebas y comentarios de los usuarios. Cuando se trata de datos reales, pueden aparecer casos inesperados.
fuente
Echa un vistazo a las líneas de vida del proyecto ¹ para una implementación sencilla y limpia de los modelos de supervivencia en Python, incluyendo
Beneficios:
La documentación está disponible aquí: documentación y ejemplos.
Ejemplo de uso:
Gráficos de ejemplo de la biblioteca de trazado integrada:
fuente
python-asurv es un esfuerzo para portar el software asurv para métodos de supervivencia en astronomía. Puede valer la pena vigilar, pero cgillespie tiene razón sobre las cosas a tener en cuenta: tiene un largo camino por recorrer y el desarrollo no parece estar activo. (AFAICT solo existe un método e incluso completado, el paquete puede faltar para, por ejemplo, bioestadísticos)
Probablemente sea mejor usar el paquete de supervivencia en R de Python a través de algo como RPy o PypeR . No he tenido ningún problema para hacer esto yo mismo.
fuente
PyIMSL contiene un puñado de rutinas para análisis de supervivencia. Es gratis como en cerveza para uso no comercial, totalmente compatible de lo contrario. De la documentación en la Guía del usuario de estadísticas ...
Calcula las estimaciones de Kaplan-Meier de las probabilidades de supervivencia: kaplanMeierEstimates ()
Analiza los datos de supervivencia y confiabilidad utilizando el modelo de riesgos proporcionales de Cox: propHazardsGenLin ()
Analiza los datos de supervivencia utilizando el modelo lineal generalizado: survivalGlm ()
Estimaciones utilizando varios modos paramétricos: survivalEstimates ()
Estima una función de riesgo de confiabilidad utilizando un enfoque no paramétrico: nonparamHazardRate ()
Produce tablas de vida de poblaciones y cohortes: lifeTables ()
fuente
Ahora puede usar R desde IPython , por lo que puede considerar usar IPython con la extensión R.
fuente
rpy2
). A mí también me encantaría ver un ejemplo rápido. (Tengo entendido que los modelos de supervivencia aún no están completamente disponibles en modelos de estadísticas .)También quiero mencionar scikit-survival , que proporciona modelos para el análisis de supervivencia que se pueden combinar fácilmente con herramientas de scikit-learn (por ejemplo, KFold validación cruzada).
Al momento de escribir este artículo, scikit-survival incluye implementaciones de
fuente
Además de usar a
R
travésRPy
o equivalente, hay una serie de rutinas de análisis de supervivencia en la biblioteca python de statsmodels (anteriormentesicpy.statsmodel
). Sin embargo, están en el paquete "sandbox", lo que significa que no se supone que estén listos para la producción en este momento.Por ejemplo, tiene el modelo Cox de riesgo proporcional codificado aquí .
fuente