Algorytmy wykrywania anomalii szeregów czasowych

24

Obecnie używam Twitter AnomalyDetection w R: https://github.com/twitter/AnomalyDetection . Ten algorytm zapewnia wykrywanie anomalii szeregów czasowych dla danych z sezonowością.

Pytanie: czy istnieją inne algorytmy podobne do tego (kontrola sezonowości nie ma znaczenia)?

Próbuję zdobyć jak najwięcej algorytmów szeregów czasowych na moich danych, aby móc wybrać najlepszy jeden / zestaw.

Eric Miller
źródło

Odpowiedzi:

16

Algorytm Twittera jest oparty na

Rosner, B., (maj 1983), „Punkty procentowe dla uogólnionej procedury wielokrotnego odstania ESD”, Technometrics, 25 (2), s. 165–172

Jestem pewien, że istnieje wiele technik i postępów od 1983 roku! Testowałem na moich wewnętrznych danych, a wykrywanie anomalii na Twitterze nie identyfikuje oczywistych wartości odstających. Użyłbym również innych podejść do testowania wartości odstających w szeregach czasowych. Najlepsze, na jakie natrafiłem, to procedura wykrywania wartości odstających Tsay, która jest zaimplementowana w oprogramowaniu SAS / SPSS / Autobox i SCA. Wszystkie są systemami komercyjnymi. Istnieje również pakiet tsoutliers , który jest świetny, ale wymaga specyfikacji arimamodelu, aby działał wydajnie. Miałem problemy z domyślnymi ustawieniami auto.arimadotyczącymi optymalizacji i wyboru modelu.

Artykuł Tsaya jest przełomową pracą w zakresie wykrywania wartości odstających w szeregach czasowych. Wiodący dziennik w badaniach prognostycznych International Journal of Forecasting wspomniał, że artykuł Tsaya jest jedną z najczęściej cytowanych prac i najbardziej wpływowych artykułów w artykule z linkami powyżej (patrz także poniżej). Rozpowszechnianie tej ważnej pracy i innych algorytmów wykrywania wartości odstających w oprogramowaniu prognozującym (szczególnie w oprogramowaniu open source) jest rzadkością.

wprowadź opis zdjęcia tutaj

wróżka
źródło
14

Oto opcje wykrywania anomalii w R od 2017 roku.

Pakiet AnomalyDetection na Twitterze

  • Działa przy użyciu Seasonal Hybrid ESD (SH-ESD);
  • Opiera się na uogólnionym teście ESD do wykrywania anomalii;
  • Potrafi wykryć zarówno lokalne, jak i globalne anomalie;
  • Wykorzystujący rozkład szeregów czasowych i solidne miary statystyczne (np. Mediana wraz z ESD)
  • Stosuje częściowe przybliżenie dla długich szeregów czasowych;
  • Ma również metodę, kiedy znaczniki czasu nie są dostępne;
  • Potrafi określić kierunek anomalii, okno zainteresowania, przełączać przybliżenie częściowe i ma wsparcie wizualne.

anomalyDetection Package (inny niż Twitter)

  • różne podejścia, w tym odległość Mahalanobisa, analiza czynnikowa, równoległa analiza Horn, kontrola bloku, analiza podstawowych składników;
  • Ma metodę radzenia sobie z wynikami.

pakiet tsoutliers

  • Wykrywa wartości odstające w szeregach czasowych zgodnie z procedurą Chen i Liu ( https://www.jstor.org/stable/2290724?seq=1#page_scan_tab_contents );
  • Wartości odstające są uzyskiwane na podstawie „mniej zanieczyszczonych” oszacowań parametrów modelu, szacowanych efektów odstających przy użyciu wielokrotnej regresji liniowej oraz wspólnie szacuje parametry modelu i efekty.
  • Rozważa innowacyjne wartości odstające, dodatkowe wartości odstające, zmiany poziomów, zmiany tymczasowe i sezonowe zmiany poziomów.

anomalous-acm

  • Działa poprzez obliczenie wektora cech dla każdej serii czasowej (np. Korelacja opóźnienia, siła sezonowości, entropia widmowa), a następnie zastosowanie solidnego rozkładu głównego składnika na cechach, a na koniec zastosowanie różnych metod detekcji wartości odstających dwuwymiarowych dla pierwszych dwóch głównych składników;
  • Umożliwia identyfikację najbardziej niezwykłych serii na podstawie ich wektorów cech;
  • Pakiet zawiera zarówno prawdziwe, jak i syntetyczne zestawy danych od Yahoo.

pakiet tęczy

  • Wykorzystuje bagplots i boxplots;
  • Identyfikuje wartości odstające o najniższej głębokości lub gęstości.

pakiet kmodR

  • Wykorzystuje implementację k-średnich zaproponowaną przez Chawla i Gionis w 2013 r. ( Http://epubs.siam.org/doi/pdf/10.1137/1.9781611972832.21 );
  • Przydatne do tworzenia (potencjalnie) bardziej ciasnych klastrów niż standardowe k-średnie i jednoczesnego znalezienia wartości odstających niedrogo w przestrzeni wielowymiarowej.

metoda washeR

Widok zadań CRAN dla niezawodnych metod statystycznych

  • Różnorodne podejścia do stosowania solidnych metod statystycznych do wykrywania wartości odstających.

EDYCJA 2018

anomalize: Tidy Anomaly Detection

Cybernetyczny
źródło
Jakieś sugestie, których mogę użyć do danych szeregów czasowych, ale bez sezonowości? Czy w takim przypadku mogę użyć pakietu twitter?
MikeHuber,
Pakiet Twitter obsługuje zarówno anomalie lokalne, jak i globalne. Jak mówią w swoich dokumentach, „globalne anomalie zwykle rozciągają się powyżej lub poniżej oczekiwanej sezonowości i dlatego nie podlegają sezonowości i leżącym u ich podstaw trendom”. Tak, możesz użyć pakietu Twittera, aby potencjalnie wykryć anomalie w szeregach czasowych bez sezonowości. blog.twitter.com/engineering/en_us/a/2015/…
Cybernetic
8

Natknąłem się na kilka źródeł, które mogą ci pomóc, ale nie będą one tak łatwe / wygodne jak uruchamianie skryptu R na twoich danych: - Numenta ma otwartą platformę NuPIC , która jest używana do wielu rzeczy, w tym do wykrywania anomalii . - Netflix, Atlas Project , wkrótce opublikuje narzędzie do wykrywania wartości odstających / anomalii typu open source. - Prelert ma silnik wykrywania anomalii, który występuje jako aplikacja po stronie serwera. Ich wersja próbna oferuje ograniczone użycie, które może zaspokoić Twoje potrzeby.

Alternatywnie moja firma, Insignum , ma produkt w wersji beta, który pobiera dane szeregów czasowych i wykrywa anomalie w pełni zautomatyzowany sposób, a ty po prostu otrzymujesz powiadomienia e-mailem o wykryciu anomalii. Sięgnij po Twittera lub LinkedIn, a chętnie udzielę Ci więcej informacji.

Andrew Thompson
źródło
3

Autobox (moja firma) zapewnia wykrywanie wartości odstających. Algorytm Twittera odbiera duże wartości odstające, ale pomija te mniejsze w porównaniu do Autobox .

Uruchomienie zajmuje dużo czasu, ale wyniki są lepsze do znalezienia mniejszych wartości odstających, a także zmian sezonowości, które są również wartościami odstającymi. Poniżej znajduje się model znajdujący 79 wartości odstających, wykorzystujący pierwsze 8560 obserwacji z 14 398 oryginalnych obserwacji. Wersja standardowa jest dostępna przy 10 000 obserwacji, ale można ją zmodyfikować, ale nie ma żadnego powodu, aby mieć tak dużo danych, jeśli chcesz zidentyfikować wartości odstające i reagować na nie.

Mieliśmy wpływ na pracę wykonaną przez Tsay nad wartościami odstającymi, przesunięciami poziomów i zmianami wariancji oraz pracę Chow nad zmianami parametrów, a także naszą własną pracę nad wykrywaniem zmian sezonowości,

Jeśli pobierzesz 30-dniową wersję próbną i załadujesz przykładowe dane na Twitterze i określisz częstotliwość na 60, a następnie zapiszesz 3 pliki wyzwalające w folderze instalacyjnym (noparcon.afs, novarcon.afs, notrend.afs) i utworzysz plik o nazwie stepupde. afs z 100.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Tom Reilly
źródło