Algorithmes pour la détection d'anomalies de séries chronologiques

24

J'utilise actuellement AnomalyDetection de Twitter dans R: https://github.com/twitter/AnomalyDetection . Cet algorithme fournit une détection d'anomalies de séries chronologiques pour les données avec saisonnalité.

Question: existe-t-il d'autres algorithmes similaires à celui-ci (le contrôle de la saisonnalité n'a pas d'importance)?

J'essaie de marquer autant d'algorithmes de séries temporelles que possible sur mes données afin de pouvoir choisir le meilleur / ensemble.

Eric Miller
la source

Réponses:

16

L'algorithme Twitter est basé sur

Rosner, B., (mai 1983), "Pourcentage de points pour une procédure généralisée d'erreurs électrostatiques", Technometrics, 25 (2), pp. 165-172

Je suis sûr qu'il y a eu de nombreuses techniques et avancées depuis 1983!. J'ai testé mes données internes et la détection d'anomalies de Twitter n'identifie pas les valeurs aberrantes évidentes. J'utiliserais également d'autres approches pour tester les valeurs aberrantes dans les séries chronologiques. Le meilleur que j'ai rencontré est la procédure de détection des valeurs aberrantes de Tsay qui est implémentée dans les logiciels SAS / SPSS / Autobox et SCA. Ce sont tous des systèmes commerciaux. Il y a aussi le paquet tsoutliers qui est génial mais nécessite des spécifications de arimamodèle afin de fonctionner efficacement. J'ai eu des problèmes avec sa valeur auto.arimapar défaut en ce qui concerne l'optimisation et la sélection du modèle.

L'article de Tsay est un ouvrage fondateur sur la détection des valeurs aberrantes dans les séries chronologiques. Journal leader dans la recherche sur les prévisions International Journal of Forecasting mentionné que l'article de Tsay est l'un des travaux les plus cités et les plus influents dans un article lié ci-dessus (voir également ci-dessous). La diffusion de cet important travail et d'autres algorithmes de détection des valeurs aberrantes dans les logiciels de prévision (en particulier dans les logiciels open source) est une rareté.

entrez la description de l'image ici

prévisionniste
la source
14

Voici les options de détection d'anomalies dans R à partir de 2017.

Forfait AnomalyDetection de Twitter

  • Fonctionne en utilisant l'ESD hybride saisonnier (SH-ESD);
  • S'appuie sur le test ESD généralisé pour détecter les anomalies;
  • Peut détecter des anomalies locales et globales;
  • Utilisation de la décomposition de séries chronologiques et de mesures statistiques robustes (par exemple, médiane avec ESD)
  • Utilise une approximation par morceaux pour les séries chronologiques longues;
  • A également une méthode pour quand les horodatages ne sont pas disponibles;
  • Peut spécifier la direction des anomalies, la fenêtre d'intérêt, basculer l'approximation par morceaux et prend en charge les visuels.

Paquet de détection d'anomalie (différent de Twitter)

  • diverses approches, y compris la distance de Mahalanobis, l'analyse factorielle, l'analyse parallèle de Horn, l'inspection des blocs, l'analyse des principaux composants;
  • A une méthode pour gérer les résultats.

paquet tsoutliers

  • Détecte les valeurs aberrantes dans les séries chronologiques suivant la procédure Chen et Liu ( https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents );
  • Les valeurs aberrantes sont obtenues sur la base d'estimations «moins contaminées» des paramètres du modèle, des effets aberrants estimés à l'aide d'une régression linéaire multiple et d'estimation conjointe des paramètres et des effets du modèle.
  • Considère les valeurs aberrantes innovantes, les valeurs aberrantes additives, les changements de niveau, les changements temporaires et les changements de niveau saisonniers.

anomalie-acm

  • Fonctionne en calculant un vecteur d'entités sur chaque série temporelle (par exemple, corrélation de décalage, force de saisonnalité, entropie spectrale) puis en appliquant une décomposition robuste des composants principaux sur les entités, et enfin en appliquant diverses méthodes de détection des valeurs aberrantes bivariées aux deux premiers composants principaux;
  • Permet d'identifier les séries les plus insolites, en fonction de leurs vecteurs caractéristiques;
  • Le package contient des ensembles de données réels et synthétiques de Yahoo.

paquet arc-en-ciel

  • Utilise des parcelles et des parcelles;
  • Identifie les valeurs aberrantes avec la profondeur ou la densité la plus faible.

package kmodR

  • Utilise une implémentation de k-means proposée par Chawla et Gionis en 2013 ( http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21 );
  • Utile pour créer des grappes (potentiellement) plus serrées que les k-moyennes standard et trouver simultanément des valeurs aberrantes à peu de frais dans un espace multidimensionnel.

méthode washeR

La vue Tâche CRAN pour des méthodes statistiques robustes

  • Une variété d'approches pour utiliser des méthodes statistiques robustes pour détecter les valeurs aberrantes.

EDIT 2018

anomaliser: Détection des anomalies bien rangées

Cybernétique
la source
Des suggestions que je peux utiliser pour les données de séries chronologiques, mais sans saisonnalité? Puis-je utiliser le package twitter dans ce cas?
MikeHuber
Le package Twitter gère les anomalies locales et mondiales. Comme ils le disent dans leurs documents, "les anomalies mondiales s'étendent généralement au-dessus ou au-dessous de la saisonnalité attendue et ne sont donc pas soumises à la saisonnalité et à la tendance sous-jacente". Alors oui, vous pouvez utiliser le package Twitter pour détecter potentiellement des anomalies dans les séries temporelles sans saisonnalité. blog.twitter.com/engineering/en_us/a/2015/…
Cybernetic
8

J'ai rencontré quelques sources qui peuvent vous aider, mais elles ne seront pas aussi faciles / pratiques que d'exécuter un script R sur vos données: - Numenta a une source ouverte leur plate-forme NuPIC qui est utilisée pour de nombreuses choses, y compris la détection d'anomalies . - Le projet Atlas de Netflix lancera bientôt un outil open source de détection des anomalies / anomalies. - Prelert dispose d'un moteur de détection d'anomalies qui se présente comme une application côté serveur. Leur essai offre une utilisation limitée qui peut satisfaire vos besoins.

Alternativement, mon entreprise, Insignum , a un produit en version bêta qui ingère les données de séries chronologiques et détecte les anomalies de manière entièrement automatisée et vous recevez simplement des alertes par e-mail lorsque des anomalies sont détectées. Contactez-nous sur Twitter ou Linkedin et je serais heureux de vous en dire plus.

Andrew Thompson
la source
3

Autobox (mon entreprise) fournit une détection des valeurs aberrantes. L'algorithme de Twitter obtient les grandes valeurs aberrantes, mais manque les plus petites par rapport à Autobox .

Cela prend beaucoup de temps, mais les résultats sont meilleurs pour trouver les valeurs aberrantes plus petites et également les changements de saisonnalité qui sont également des valeurs aberrantes. Ci-dessous, le modèle trouve 79 valeurs aberrantes en utilisant les 8 560 premières observations de 14 398 observations originales. La version standard max est à 10 000 observations, mais elle pourrait être modifiée pour plus, mais il n'y a pas vraiment de raison d'avoir autant de données quand vous voulez identifier et répondre aux valeurs aberrantes.

Nous avons été influencés par le travail effectué par Tsay sur les valeurs aberrantes, les changements de niveau et le changement de variance et le travail de Chow sur les changements de paramètres ainsi que notre propre travail sur la détection des changements de saisonnalité,

Si vous téléchargez la version d'essai de 30 jours et chargez dans les données d'exemple Twitter et spécifiez la fréquence à 60 et enregistrez 3 fichiers déclencheurs dans le dossier d'installation (noparcon.afs, novarcon.afs, notrend.afs) et créez un fichier appelé stepupde. afs avec 100.

entrez la description de l'image ici

entrez la description de l'image ici

Tom Reilly
la source