¿Cómo utilizar el análisis de supervivencia para el mantenimiento predictivo para los datos de series de tiempo?

datascience.stackexchange https://datascience.stackexchange.com/questions/14252

Pregunta

Por lo tanto, tengo un conjunto de datos con condiciones de funcionamiento diarias para diferentes máquinas y una bandera que dice si falló o no. Aquí hay una instantánea de los datos.

enter image description here

¿Cómo puedo usar el análisis de supervivencia o cualquier otro algoritmo para calcular cuándo se espera que la máquina falle en el futuro? Lo que entiendo es que puedo usar el paquete de supervivencia en R, pero no puedo usarlo para datos de series de tiempo.

¿Fue útil?

Solución

Cada vez que su tarea incluye algo como "... cuando XY fallará ...", diría que primero para el análisis de supervivencia, es fácil y rápido y le dará una descripción general de sus datos.

Con sus datos, puede convertirlos en intervalos para poder trazar curvas de supervivencia, o proceder directamente a la regresión de Cox, que puede funcionar con datos continuos y producirá la relación de riesgo.

Puede comenzar con la curva de Kaplan-Meier (como bonificación hay intervalos de confianza):

km <- survfit(Surv(datetime, Failed) ~ 1,conf.int=0.90, conf.type="log-log", data=Dataset)
summary(km)
plot(km, xlab="month", ylab="estimated S(t)", main="Kaplan-Meier with log-log, C.I.=90%")

La curva se verá algo así:enter image description here

Además, puede dividir la curva para ver si alguno de sus parámetros tiene una influencia diferente. Puede hacerlo simplemente reemplazar el ~1 con algo como ~AttributeX

Entonces deberías obtener este tipo de trama:enter image description here

Por supuesto, R también le dará varias pruebas y valores p, como log-rank para verificar si la influencia es significativa (survdiff).

Luego puede proceder a la regresión de Cox, lo que le dirá cuál es la relación de riesgo (= si el atributo influye en el peligro de forma positiva o negativa y en qué medida). Se parece a esto en R:

cox<-coxph(Surv(datetime, Failed)~AttributeX, data=pbc)
summary(cox)

Es una buena práctica verificar los supuestos: peligro proporcional y forma funcional (nuevamente R le dará valores p o puede trazar los residuos: martingale o schoenfeld).

Si estás interesado en saber CUANDO El evento ocurrirá, buscará modelos de tiempo de falla acelerados, lo que le dará la distribución de tiempo de supervivencia paramétrica, donde simplemente puede dedicar el tiempo y obtener la probabilidad.

En R:

wei<-survreg(Surv(datetime, Failed)~ AttributeA + AttributeB + AttributeC,data=Dataset) 

Hay más distribución posible, puede verificar cuál se ajusta a los mejores datos. Nunca he hecho la predicción, pero hay una función predict que se describe en documentación o ya hay preguntas similares con respuestas sobre Validados en Cross, como este.

Licenciado bajo: CC-BY-SA con atribución
scroll top