El mejor algoritmo para clasificar datos de motor de series temporales

9

Estoy trabajando en un proyecto de control de máquinas. Podemos medir la corriente del motor durante la operación. A continuación se muestran datos de muestra de dos motores que realizan una operación con éxito. El trazo rojo muestra la corriente de un motor, el azul traza la corriente de otro. Me gustaría probar y encontrar un algoritmo para identificar problemas con el comportamiento de la máquina. Los problemas pueden ser una corriente del motor excesivamente alta, una corriente del motor cercana a cero, una corriente que aumenta al final de la operación, una serie temporal más corta de lo normal, cualquier cosa en general que no se parezca a una operación típica a continuación. ¿Alguien puede sugerir un buen algoritmo para lograr esto? El único con el que estoy familiarizado es una red neuronal. He puesto un archivo Excel de datos reales en las corrientes del motor.

Corrientes del motor: buen funcionamiento Corrientes del motor: atasco al final de la operación

fred basset
fuente
Probablemente sea más apropiado para el sitio de estadísticas SE, ya que esto implica la detección de anomalías y el modelado estadístico de una serie temporal. El análisis de supervivencia puede desempeñar un papel, aunque la pregunta no lo aclara.
Iterator
¿Podría publicar una imagen de un "problema"? Una idea sería calcular la distancia entre una "operación ideal" (como la línea roja) y la "operación real" (la línea azul). Si algún punto está demasiado lejos de la "operación ideal", márquelo como un problema.
Zach
1
+1 Esta es una idea clave: utilizar el conocimiento específico de la aplicación para caracterizar el comportamiento. Será mucho más pertinente y poderoso de lo que puede ser cualquier técnica puramente estadística. Las estadísticas pueden ofrecer formas de comparar los datos con la "línea de base" o la serie ideal.
whuber
Esta idea de usar un teórico o ideal puede incorporarse fácilmente como una serie de soporte predictivo / causa / lado derecho en un modelo de Función de transferencia que luego generará la información de detección del punto de cambio que describí en mi respuesta.
IrishStat
@Irlandés Creo que no es tan simple. El consumo de corriente tiene una forma característica: un pico rápido inicial, una disminución más lenta (¿exponencial?), Una región larga de corriente (con suerte) estable, seguida por la caída final (que asume una forma característica) al final . Los detalles variarán, pero es clave distinguir la variación normal de la variación "mala". Son preocupantes cosas como la altura relativa del pico inicial y el tiempo necesario para estabilizarse. Recuerde, el objetivo es identificar problemas y algunos de ellos pueden ser más sutiles de lo que mostrarán los análisis estándar.
whuber

Respuestas:

4

Mi enfoque es formar un modelo ARIMA para los datos y luego emplear varios "esquemas de detección de puntos de cambio" para proporcionar una alerta temprana sobre "cosas" inesperadas. Estos esquemas incluirían

  1. detectar la presencia / aparición de pulsos / cambios de nivel / tendencias de tiempo local, es decir, cambios en la media de los errores a lo largo del tiempo
  2. detectar la presencia / inicio de cambios en los parámetros a lo largo del tiempo
  3. Detectar la presencia / aparición de cambios en la varianza de los residuos a lo largo del tiempo

Si desea publicar una de sus series, podríamos mostrarle este tipo de análisis que puede "expulsar" la idea de que las cosas están cambiando o han cambiado significativamente.

IrishStat
fuente
3

Modelo oculto de Markov

Uno de los mejores enfoques para modelar datos de series temporales es un modelo oculto de Markov (HMM). Puede crear un modelo único de su estado no problemático conocido, modelos separados de cada uno de sus estados problemáticos conocidos o, si tiene datos suficientes, un modelo compuesto único de todos sus estados problemáticos conocidos. Una buena biblioteca de código abierto es Hidden Markov Model Toolbox para Matlab.

http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html

Filtro Kalman

Otro enfoque que es un poco más complicado es un filtro de Kalman. Este enfoque es especialmente útil si sus datos tienen mucho ruido. Una buena biblioteca de código abierto es Kalman Filter Toolbox para Matlab.

http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html

Modelos Bayesianos

Ambos enfoques se consideran modelos bayesianos. Una buena biblioteca de código abierto es Bayes Net Toolbox para Matlab.

http://code.google.com/p/bnt

Espero que esto funcione para ti.


fuente