Ich habe ein Bild der Zeitreihe angehängt, über die ich spreche. Die Oberseite ist die Originalserie, die Unterseite ist die differenzierte Serie.
Jeder Datenpunkt ist ein 5-Minuten-Durchschnittswert von einem Dehnungsmessstreifen. Dieser Dehnungsmessstreifen wird an einer Maschine angebracht. Die lauten Bereiche entsprechen Bereichen, in denen die Maschine eingeschaltet ist, die sauberen Bereiche sind Bereiche, in denen die Maschine ausgeschaltet ist. Wenn Sie sich den rot eingekreisten Bereich ansehen, gibt es anomale Schritte in der Anzeige, die ich automatisch erkennen möchte.
Ich bin völlig ratlos darüber, wie ich das schaffen könnte - irgendwelche Ideen?
time-series
change-point
mohamedmoussa
quelle
quelle
Antworten:
Es scheint, dass Sie innerhalb von Intervallen relativer Ruhe nach Spitzen suchen . "Relativ" bedeutet im Vergleich zu typischen Werten in der Nähe, was darauf hindeutet, die Reihe zu glätten . Eine robuste Glätte ist gerade deshalb wünschenswert, weil sie nicht durch einige lokale Spitzen beeinflusst werden sollte. "Ruhig" bedeutet, dass die Variation um diese Glätte gering ist. Auch hier ist eine robuste Schätzung der lokalen Variation wünschenswert. Schließlich wäre eine "Spitze" ein großes Residuum als Vielfaches der lokalen Variation.
Um dieses Rezept zu implementieren , müssen wir auswählen, (a) wie nahe "in der Nähe" bedeutet, (b) ein Rezept zum Glätten und (c) ein Rezept zum Finden lokaler Variationen. Möglicherweise müssen Sie mit (a) experimentieren, also machen wir es zu einem leicht steuerbaren Parameter. Gute, leicht verfügbare Auswahlmöglichkeiten für (b) und (c) sind Lowess bzw. IQR . Hier ist eine
R
Implementierung:Betrachten Sie als Beispiel für die Verwendung diese simulierten Daten, bei denen zwei aufeinanderfolgende Spitzen zu einer Ruheperiode hinzugefügt werden (zwei in einer Reihe sollten schwerer zu erkennen sein als eine isolierte Spitze):
Hier ist das diagnostische Diagramm:
Trotz des Rauschens in den Originaldaten erkennt dieses Diagramm die (relativ kleinen) Spitzen in der Mitte auf wunderbare Weise. Automatisieren Sie die Erkennung, indem Sie
f(x)
nach größeren Werten suchen (größer als etwa 5 im absoluten Wert: Experimentieren Sie, um herauszufinden, was mit Probendaten am besten funktioniert).Die falsche Erkennung zum Zeitpunkt 273 war ein zufälliger lokaler Ausreißer. Sie können den Test verfeinern , um (die meisten) derartigen Störwerte auszuschließen, indem Sie ändern
f
, um nach gleichzeitig hohen Werten der Diagnoser/z
und niedrigen Werten des laufenden IQR zu suchenz
. Obwohl die Diagnose eine universelle (einheitlose) Skala und Interpretation hat, hängt die Bedeutung eines "niedrigen" IQR von den Einheiten der Daten ab und muss aus Erfahrung bestimmt werden.quelle
Hier ist ein Zwei-Cent-Vorschlag.
quelle