Bester Algorithmus zur Klassifizierung von Zeitreihenmotordaten

9

Ich arbeite an einem Maschinensteuerungsprojekt. Wir können den Motorstrom während des Betriebs messen. Beispieldaten von zwei Motoren, die eine Operation erfolgreich ausführen, sind unten aufgeführt. Die rote Kurve zeigt den Strom von einem Motor, die blaue Spur den Strom von einem anderen. Ich möchte versuchen, einen Algorithmus zur Identifizierung von Problemen mit dem Maschinenverhalten zu entwickeln. Probleme könnten ein zu hoher Motorstrom, ein Motorstrom nahe Null, ein am Ende des Betriebs ansteigender Strom, eine kürzere Zeitreihe als normal sein, alles im Allgemeinen, was im Folgenden nicht wie ein typischer Betrieb aussieht. Kann jemand einen guten Algorithmus vorschlagen, um dies zu erreichen? Das einzige, mit dem ich vertraut bin, ist ein neuronales Netzwerk. Ich habe eine Excel-Datei mit tatsächlichen Daten zu Motorströmen abgelegt

Motorströme - guter Betrieb Motorströme - Stau am Ende des Betriebs

Fred Basset
quelle
Wahrscheinlich besser geeignet für die Statistik-SE-Site, da dies die Erkennung von Anomalien und die statistische Modellierung einer Zeitreihe umfasst. Die Überlebensanalyse kann eine Rolle spielen, obwohl dies aus der Frage nicht klar hervorgeht.
Iterator
Könnten Sie ein Bild von einem "Problem" posten? Eine Idee wäre, den Abstand zwischen einer "idealen Operation" (wie der roten Linie) und der "tatsächlichen Operation" (der blauen Linie) zu berechnen. Wenn ein Punkt zu weit vom "idealen Betrieb" entfernt ist, kennzeichnen Sie ihn als Problem.
Zach
1
+1 Dies ist eine Schlüsselidee: Verwenden Sie anwendungsspezifisches Wissen , um das Verhalten zu charakterisieren. Es wird weitaus relevanter und leistungsfähiger sein als jede rein statistische Technik. Statistiken können dann bieten Möglichkeiten , um zu vergleichen , um die Daten zu dem „Baseline“ oder ideal Serie.
whuber
Diese Idee der Verwendung eines theoretischen oder idealen Modells kann leicht als Prädiktor / Ursache / rechtsseitige Unterstützungsreihe in ein Übertragungsfunktionsmodell aufgenommen werden, das dann die in meiner Antwort beschriebenen Änderungspunkterkennungsinformationen liefert.
IrishStat
@Irish Ich denke es ist nicht so einfach. Der Stromverbrauch hat eine charakteristische Form: eine anfängliche schnelle Spitze, einen langsameren (exponentiellen?) Abfall, einen langen Bereich (hoffentlich) stabilen Stroms, gefolgt vom endgültigen Abfall (der eine charakteristische Form annimmt) am Ende . Details variieren, aber die Unterscheidung zwischen normalen und "schlechten" Abweichungen ist entscheidend. Besorgniserregend sind Dinge wie die relative Höhe der anfänglichen Spitze und die Zeit, die zum Abflachen benötigt wird. Denken Sie daran, dass das Ziel darin besteht , Probleme zu identifizieren, und einige davon können subtiler sein, als Standardanalysen zeigen.
whuber

Antworten:

4

Mein Ansatz ist es, ein ARIMA-Modell für die Daten zu erstellen und dann verschiedene "Änderungspunkterkennungsschemata" zu verwenden, um frühzeitig vor unerwarteten "Dingen" zu warnen. Diese Schemata würden umfassen

  1. Erkennen des Vorhandenseins / Einsetzens von Impulsen / Pegelverschiebungen / lokalen Zeittrends, dh Änderungen des Mittelwerts der Fehler im Laufe der Zeit
  2. Erkennen des Vorhandenseins / Einsetzens von Änderungen von Parametern im Laufe der Zeit
  3. Erkennen des Vorhandenseins / Einsetzens von Änderungen der Varianz von Residuen über die Zeit

Wenn Sie tatsächlich eine Ihrer Serien veröffentlichen möchten, können wir Ihnen diese Art von Analyse zeigen, die die Idee "verdrängen" kann, dass sich die Dinge ändern oder sich erheblich geändert haben.

IrishStat
quelle
3

Verstecktes Markov-Modell

Einer der besten Ansätze zur Modellierung von Zeitreihendaten ist ein Hidden Markov Model (HMM). Sie können entweder ein einzelnes Modell Ihres bekannten Nicht-Problemzustands, separate Modelle für jeden Ihrer bekannten Problemzustände oder, wenn Sie über ausreichende Daten verfügen, ein einzelnes zusammengesetztes Modell aller Ihrer bekannten Problemzustände erstellen. Eine gute Open Source-Bibliothek ist die Hidden Markov Model Toolbox für Matlab.

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

Kalman Filter

Ein anderer Ansatz, der etwas komplizierter ist, ist ein Kalman-Filter. Dieser Ansatz ist besonders nützlich, wenn Ihre Daten viel Rauschen aufweisen. Eine gute Open Source-Bibliothek ist die Kalman Filter Toolbox für Matlab.

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

Bayesianische Modelle

Beide Ansätze werden als Bayes'sche Modelle betrachtet. Eine gute Open Source-Bibliothek ist die Bayes Net Toolbox für Matlab.

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

Ich hoffe das funktioniert bei dir.


quelle