Meilleur algorithme pour classer les données moteur des séries chronologiques

9

Je travaille sur un projet de contrôle machine. Nous pouvons mesurer le courant du moteur pendant le fonctionnement. Des exemples de données de deux moteurs exécutant une opération avec succès se trouvent ci-dessous. La trace rouge montre le courant d'un moteur, la trace bleue le courant d'un autre. Je voudrais essayer de trouver un algorithme pour identifier les problèmes de comportement de la machine. Les problèmes peuvent être un courant moteur excessivement élevé, un courant moteur proche de zéro, un courant croissant à la fin de l'opération, une série temporelle plus courte que la normale, tout ce qui en général ne ressemble pas à un fonctionnement typique ci-dessous. Quelqu'un peut-il suggérer un bon algorithme pour y parvenir? Le seul que je connaisse est un réseau de neurones. J'ai mis un fichier Excel de données réelles aux courants moteur

Courants moteur - bon fonctionnement Courants moteur - blocage en fin de fonctionnement

fred basset
la source
Probablement plus approprié pour le site de statistiques SE, car cela implique la détection d'anomalies et la modélisation statistique d'une série chronologique. L'analyse de survie peut jouer un rôle, mais ce n'est pas clair à partir de la question.
Iterator
Pourriez-vous publier une image d'un "problème"? Une idée serait de calculer la distance entre une «opération idéale» (comme la ligne rouge) et «l'opération réelle» (la ligne bleue). Si un point est trop éloigné de "l'opération idéale", signalez-le comme un problème.
Zach
1
+1 C'est une idée clé: utiliser des connaissances spécifiques à l' application pour caractériser le comportement. Elle sera beaucoup plus pertinente et puissante que n'importe quelle technique purement statistique. Les statistiques peuvent alors offrir des moyens de comparer les données à la «ligne de base» ou à la série idéale.
whuber
Cette idée d'utiliser une théorie ou un idéal peut facilement être incorporée en tant que série de support prédicteur / cause / côté droit dans un modèle de fonction de transfert qui produira ensuite les informations de détection de point de changement que j'ai décrites dans ma réponse.
IrishStat
@Irish je pense que ce n'est pas si simple. La consommation actuelle a une forme caractéristique: une pointe rapide initiale, une baisse plus lente (exponentielle?), Une longue région de courant (espérons-le) stable, suivie par la chute finale (qui prend une forme caractéristique) à la fin . Les détails varieront, mais il est essentiel de distinguer la variation normale de la "mauvaise" variation. Des problèmes tels que la hauteur relative de la pointe initiale et le temps nécessaire pour se stabiliser sont préoccupants. N'oubliez pas que l'objectif est d' identifier les problèmes et que certains d'entre eux peuvent être plus subtils que les analyses standard ne le montreront.
whuber

Réponses:

4

Mon approche consiste à former un modèle ARIMA pour les données, puis à utiliser divers "schémas de détection des points de changement" afin de fournir une alerte précoce sur des "choses" inattendues. Ces régimes comprendraient

  1. détecter la présence / l'apparition d'impulsions / de changements de niveau / de tendances temporelles locales, c'est-à-dire des changements dans la moyenne des erreurs au fil du temps
  2. détecter la présence / l'apparition de changements de paramètres dans le temps
  3. détecter la présence / le début de changements dans la variance des résidus au fil du temps

Si vous souhaitez publier une de vos séries, nous pourrions en fait vous montrer ce type d'analyse qui peut "faire sortir" l'idée que les choses changent ou ont changé de manière significative.

IrishStat
la source
3

Modèle de Markov caché

L'une des meilleures approches pour modéliser les données de séries chronologiques est un modèle de Markov caché (HMM). Vous pouvez créer un modèle unique de votre état de non-problème connu, des modèles séparés de chacun de vos états de problème connus ou, si vous avez suffisamment de données, un modèle composite unique de tous vos états de problème connus. Une bonne bibliothèque open source est la boîte à outils du modèle de Markov caché pour Matlab.

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

Filtre de Kalman

Une autre approche qui est un peu plus impliquée est un filtre de Kalman. Cette approche est particulièrement utile si vos données comportent beaucoup de bruit. Une bonne bibliothèque open source est la Kalman Filter Toolbox for Matlab.

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

Modèles bayésiens

Ces deux approches sont considérées comme des modèles bayésiens. Une bonne bibliothèque open source est la Bayes Net Toolbox for Matlab.

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

J'espère que cela fonctionne pour vous.


la source