Algorithmen zur Erkennung von Zeitreihenanomalien

24

Ich verwende derzeit Twitter's AnomalyDetection in R: https://github.com/twitter/AnomalyDetection . Dieser Algorithmus ermöglicht die Erkennung von Zeitreihenanomalien für Daten mit Saisonalität.

Frage: Gibt es ähnliche Algorithmen (die Kontrolle der Saisonalität spielt keine Rolle)?

Ich versuche, so viele Zeitreihenalgorithmen wie möglich mit meinen Daten zu bewerten, damit ich das beste / Ensemble auswählen kann.

Eric Miller
quelle

Antworten:

16

Twitter-Algorithmus basiert auf

Rosner, B. (Mai 1983), "Percentage Points for a Generalized ESD Many-Outlier Procedure", Technometrics, 25 (2), S. 165-172

Ich bin sicher, dass es seit 1983 viele Techniken und Fortschritte gegeben hat! Ich habe meine internen Daten getestet und die Erkennung von Twitter-Anomalien identifiziert keine offensichtlichen Ausreißer. Ich würde auch andere Ansätze verwenden, um Ausreißer in Zeitreihen zu testen. Das Beste, auf das ich gestoßen bin, ist Tsays Ausreißererkennungsverfahren, das in SAS / SPSS / Autobox- und SCA-Software implementiert ist. All dies sind kommerzielle Systeme. Es gibt auch tsoutliers- Paket, das großartig ist, aber eine Spezifikation des arimaModells benötigt , um effizient zu arbeiten. Ich hatte Probleme mit der Standardeinstellung auto.arimain Bezug auf Optimierung und Modellauswahl.

Tsays Artikel ist eine wegweisende Arbeit zur Erkennung von Ausreißern in Zeitreihen. Führende Zeitschrift für Prognoseforschung International Journal of Forecasting erwähnte, dass Tsays Artikel eine der am häufigsten zitierten Arbeiten und einflussreichsten Veröffentlichungen in einem oben verlinkten Artikel ist (siehe auch unten). Die Verbreitung dieser wichtigen Arbeit und anderer Algorithmen zur Erkennung von Ausreißern in Prognosesoftware (insbesondere in Open-Source-Software) ist eine Seltenheit.

Bildbeschreibung hier eingeben

Prognostiker
quelle
14

Hier sind die Optionen für die Erkennung von Anomalien in R ab 2017.

Das AnomalyDetection-Paket von Twitter

  • Funktioniert mit saisonaler Hybrid-ESD (SH-ESD);
  • Baut auf dem generalisierten ESD-Test zur Erkennung von Anomalien auf;
  • Kann sowohl lokale als auch globale Anomalien erkennen;
  • Verwendung von Zeitreihenzerlegung und robusten statistischen Metriken (zB Median zusammen mit ESD)
  • Verwendet stückweise Approximation für lange Zeitreihen;
  • Hat auch eine Methode für den Fall, dass Zeitstempel nicht verfügbar sind.
  • Kann die Richtung von Anomalien und das interessierende Fenster angeben, die stückweise Annäherung umschalten und unterstützt Grafiken.

anomalyDetection-Paket (anders als bei Twitter)

  • verschiedene Ansätze, einschließlich Mahalanobis-Distanz, Faktoranalyse, Horn-Parallelanalyse, Blockinspektion, Hauptkomponentenanalyse;
  • Hat Methode für den Umgang mit den Ergebnissen.

tsoutliers Paket

  • Erkennt Ausreißer in Zeitreihen nach dem Chen- und Liu-Verfahren ( https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents );
  • Ausreißer werden basierend auf 'weniger kontaminierten' Schätzungen von Modellparametern, geschätzten Ausreißereffekten unter Verwendung multipler linearer Regression und gemeinsamen Schätzungen der Modellparameter und -effekte erhalten.
  • Berücksichtigt innovative Ausreißer, additive Ausreißer, Ebenenverschiebungen, vorübergehende Änderungen und saisonale Ebenenverschiebungen.

anomal-acm

  • Berechnet einen Vektor von Merkmalen für jede Zeitreihe (z. B. Verzögerungskorrelation, Stärke der Saisonalität, spektrale Entropie), wendet dann eine robuste Hauptkomponentenzerlegung auf die Merkmale an und wendet schließlich verschiedene bivariate Ausreißererkennungsmethoden auf die ersten beiden Hauptkomponenten an;
  • Ermöglicht die Identifizierung der ungewöhnlichsten Serien anhand ihrer Merkmalsvektoren.
  • Das Paket enthält sowohl reale als auch synthetische Datensätze von Yahoo.

Regenbogen-Paket

  • Verwendet Bagplots und Boxplots;
  • Identifiziert Ausreißer mit der niedrigsten Tiefe oder Dichte.

kmodR-Paket

  • Verwendet eine Implementierung von k-means, die 2013 von Chawla und Gionis vorgeschlagen wurde ( http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21 ).
  • Nützlich, um (potenziell) engere Cluster als mit Standard-k-Mitteln zu erstellen und gleichzeitig kostengünstig Ausreißer im mehrdimensionalen Raum zu finden.

WASHER METHODE

Die CRAN-Task-Ansicht für robuste statistische Methoden

  • Eine Vielzahl von Ansätzen zur Verwendung robuster statistischer Methoden zur Erkennung von Ausreißern.

EDIT 2018

Anomalize: Ordentliche Anomalieerkennung

Kybernetisch
quelle
Welche Vorschläge kann ich für Zeitreihendaten verwenden, aber ohne Saisonalität? Kann ich in diesem Fall das Twitter-Paket verwenden?
Mike Huber
Das Twitter-Paket behandelt sowohl lokale als auch globale Anomalien. In ihren Dokumenten heißt es: "Globale Anomalien liegen in der Regel über oder unter der erwarteten Saisonalität und unterliegen daher nicht der Saisonalität und dem zugrunde liegenden Trend." Ja, Sie können das Twitter-Paket verwenden, um potenziell Anomalien in Zeitreihen ohne Saisonabhängigkeit zu erkennen. blog.twitter.com/engineering/en_us/a/2015/…
Cybernetic
8

Ich habe einige Quellen gefunden, die Ihnen vielleicht helfen, aber nicht so einfach / bequem sind wie das Ausführen eines R-Skripts für Ihre Daten: - Numenta verfügt über eine Open-Source- NuPIC- Plattform, die für viele Zwecke , einschließlich der Erkennung von Anomalien, verwendet wird . - Netflix 'Atlas Project wird in Kürze ein Open-Source-Tool zur Erkennung von Ausreißern und Anomalien veröffentlichen. - Prelert verfügt über eine Anomalieerkennungs-Engine, die als serverseitige Anwendung geliefert wird. Ihre Testversion bietet eine eingeschränkte Nutzung, die Ihre Bedürfnisse befriedigen kann.

Alternativ bietet mein Unternehmen Insignum ein Beta-Produkt an, das Zeitreihendaten aufnimmt und Abweichungen vollautomatisch erkennt. Sie erhalten einfach eine Benachrichtigung per E-Mail, wenn Abweichungen festgestellt werden. Besuchen Sie Twitter oder Linkedin und ich würde Ihnen gerne mehr erzählen.

Andrew Thompson
quelle
3

Autobox (meine Firma) bietet Ausreißererkennung. Der Twitter-Algorithmus ermittelt die großen Ausreißer, aber die kleineren werden im Vergleich zu Autobox nicht berücksichtigt .

Die Ausführung dauert lange, aber die Ergebnisse sind besser, um die kleineren Ausreißer und auch Änderungen in der Saisonalität zu finden, die auch Ausreißer sind. Das folgende Modell ermittelt 79 Ausreißer anhand der ersten 8.560 Beobachtungen von 14.398 ursprünglichen Beobachtungen. Die Standardversion hat eine maximale Anzahl von 10.000 Beobachtungen, kann jedoch geändert werden. Es gibt jedoch keinen wirklichen Grund, so viele Daten zu haben, wenn Sie Ausreißer identifizieren und darauf reagieren möchten.

Wir wurden beeinflusst von der Arbeit von Tsay an Ausreißern, Pegelverschiebungen und Varianzänderungen und von Chows Arbeit an Parameteränderungen sowie von unserer eigenen Arbeit zur Erkennung von Änderungen in der Saisonalität.

Wenn Sie die 30-Tage-Testversion herunterladen und die Twitter-Beispieldaten laden und die Häufigkeit auf 60 festlegen und 3 Auslöserdateien im Installationsordner (noparcon.afs, novarcon.afs, notrend.afs) speichern und eine Datei mit dem Namen stepupde erstellen. afs mit 100.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Tom Reilly
quelle