¿Cómo se pueden usar los modelos de aprendizaje automático (GBM, NN, etc.) para el análisis de supervivencia?

13

Sé que los modelos estadísticos tradicionales como la regresión de riesgos proporcionales de Cox y algunos modelos de Kaplan-Meier se pueden usar para predecir días hasta la próxima ocurrencia de un evento, por ejemplo, falla, etc., es decir, análisis de supervivencia

Preguntas

  1. ¿Cómo se puede usar la versión de regresión de modelos de aprendizaje automático como GBM, redes neuronales, etc. para predecir días hasta la ocurrencia de un evento?
  2. ¿Creo que usar días hasta que ocurra como variable objetivo y simplemente ejecutar un modelo de regresión no funcionará? ¿Por qué no funciona y cómo se puede solucionar?
  3. ¿Podemos convertir el problema del análisis de supervivencia en una clasificación y luego obtener probabilidades de supervivencia? Si entonces, ¿cómo crear la variable objetivo binaria?
  4. ¿Cuáles son los pros y los contras del enfoque de aprendizaje automático frente a la regresión de riesgos proporcionales de Cox y los modelos de Kaplan-Meier, etc.?

Imagine que los datos de entrada de muestra tienen el siguiente formato

ingrese la descripción de la imagen aquí

Nota:

  • El sensor hace ping a los datos a intervalos de 10 minutos, pero a veces los datos pueden faltar debido a un problema de red, etc., como lo representa la fila con NA.
  • var1, var2, var3 son los predictores, variables explicativas.
  • failure_flag indica si la máquina falló o no.
  • Tenemos datos de los últimos 6 meses en cada intervalo de 10 minutos para cada ID de máquina

EDITAR:

La predicción de salida esperada debe estar en el siguiente formato ingrese la descripción de la imagen aquí

Nota: Quiero predecir la probabilidad de falla para cada una de las máquinas durante los próximos 30 días a nivel diario.

GeorgeOfTheRF
fuente
1
Creo que ayudaría si pudiera explicar por qué se trata de datos de tiempo hasta el evento; ¿Cuál es exactamente la respuesta que desea modelar?
Cliff AB
He editado y agregado la tabla de predicción de salida esperada para que quede claro. Avísame si tienes más preguntas.
GeorgeOfTheRF
1
Hay formas de convertir los datos de supervivencia en resultados binarios en algunos casos, por ejemplo, modelos de riesgo de tiempo discreto: statisticshorizons.com/wp-content/uploads/Allison.SM82.pdf . Algunos métodos de aprendizaje automático, como los bosques aleatorios, pueden modelar datos de tiempo para eventos, por ejemplo, utilizando la estadística de rango de registro como criterio de división.
dsaxton
@dsaxton Gracias. ¿Puede explicar cómo convertir los datos de supervivencia anteriores a resultados binarios?
GeorgeOfTheRF
Después de mirar más de cerca, parece que ya tiene resultados binarios con el failure_flag.
dsaxton

Respuestas:

6

Para el caso de las redes neuronales, este es un enfoque prometedor: WTTE-RNN: predicción de abandono menos hacky .

La esencia de este método es utilizar una red neuronal recurrente para predecir los parámetros de una distribución de Weibull en cada paso de tiempo y optimizar la red utilizando una función de pérdida que tiene en cuenta la censura.

El autor también lanzó su implementación en Github .

liori
fuente
2

Echa un vistazo a estas referencias:

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

También tenga en cuenta que los modelos tradicionales basados ​​en peligros como Cox Proportional Hazards (CPH) no están diseñados para predecir el tiempo hasta el evento, sino para inferir el impacto (correlación) de las variables en contra de i) observaciones de eventos y, por lo tanto, ii) una curva de supervivencia . ¿Por qué? Mira el MLE de CPH.

Por lo tanto, si desea predecir más directamente algo como "días hasta que ocurra", es posible que no sea aconsejable CPH; otros modelos pueden servir mejor a su tarea como se indica en las dos referencias anteriores.

Quetzalcoatl
fuente
1

Como dijo @dsaxton, puede crear un modelo de tiempo discreto. Lo configura para predecir p (falla en este día dado sobrevivió hasta el día anterior). Sus entradas son el día actual (en cualquier representación que desee), por ejemplo, una codificación activa, un entero, ... Spline ... así como cualquier otra variable independiente que desee

Entonces crea filas de datos, para cada muestra que sobrevivió hasta el tiempo t-1, murió en el tiempo t (0/1).

Entonces, ahora la probabilidad de sobrevivir hasta el momento T es el producto de p (no mueras en el tiempo t dado no murió en t-1) para t = 1 a T. Es decir, haces predicciones T de tu modelo y luego multiplicarse juntos

Diría que la razón por la que no es una idea para predecir directamente el tiempo de falla es por la estructura oculta del problema. Por ejemplo, ¿qué ingresas para las máquinas que no fallaron? La estructura subyacente es efectivamente los eventos independientes: fallar en el tiempo t dado no falló hasta t-1. Entonces, por ejemplo, si asume que es constante, su curva de supervivencia se convierte en exponencial (ver modelos de peligro)

Tenga en cuenta en su caso que podría modelar a intervalos de 10 minutos o agregar el problema de clasificación hasta el nivel del día.

seanv507
fuente