Wykrywanie wartości odstających w szeregach czasowych: jak zmniejszyć liczbę fałszywych trafień?

11

Próbuję zautomatyzować wykrywanie wartości odstających w szeregach czasowych i użyłem modyfikacji rozwiązania zaproponowanego przez Roba Hyndmana tutaj .

Powiedzmy, że mierzę codzienne wizyty na stronie z różnych krajów. W niektórych krajach, w których codzienne wizyty to kilka setek lub tysięcy, moja metoda wydaje się działać rozsądnie.

Jednak w przypadkach, gdy kraj prowadzi tylko 1 lub 2 wizyty dziennie, limity algorytmu są bardzo wąskie (np. 1 ± 0,001) i dlatego te 2 wizyty są uważane za wartości odstające. Jak automatycznie wykryć takie przypadki i jak je traktować, aby zidentyfikować wartości odstające? Nie chciałbym ustawiać ręcznego progu, powiedzmy, 100 wizyt dziennie.

Dziękuję Ci!

Stergios
źródło
2
Naturalnym, prostym sposobem, który może rozwiązać Twój problem - co wynika (przynajmniej częściowo) z bardzo zmiennej wariancji - jest zastosowanie transformacji stabilizującej wariancję, takiej jak transformacja Anscombe lub Freeman-Tukey , do danych zanim zaczniesz szukać wartości odstających.
whuber

Odpowiedzi:

3

Nie oczekuj wiele za małe, dyskretne liczby. Przejście od 1 do 2 wizyt to wzrost o 100%, a przejście od 0 do 1 wizyt to nieskończony wzrost. Na niskich poziomach możesz mieć do czynienia z modelami o zerowym napełnieniu i tam też może być bardzo głośno.

Z mojego doświadczenia wynika, że ​​liczenie danych przy użyciu kombinacji dużych i małych liczb, takich jak ta, powoduje dwa problemy z małymi liczbami: 1) są zbyt gruboziarniste, aby zrobić z nimi wiele, 2) są generowane przez różne procesy. (Pomyśl o małym wiejskim urzędzie pocztowym a dużym urzędzie pocztowym). Musisz więc przynajmniej podzielić swoje modelowanie na dwa: rób to, co z powodzeniem robisz dla większych liczb, i rób coś innego - grubsze i bardziej przybliżone - z małymi liczbami. Ale nie oczekuj wiele z tych małych liczb.

Dobrą wiadomością jest to, że duże liczby z definicji obejmują więcej transakcji, więc lepszy model obejmuje więcej danych, nawet jeśli nie obejmuje większości twoich witryn.

(Mówię, że „modelowanie” jest ogólne, ale oczywiście wykrywanie wartości odstających zakłada przyjęcie określonego modelu i znajdowanie punktów, które są bardzo mało prawdopodobne przy założeniach tego modelu).

Wayne
źródło
1

Każda wartość z szeregów czasowych jest próbką z rozkładu prawdopodobieństwa. Najpierw musisz dowiedzieć się, jaki jest rozkład prawdopodobieństwa, a następnie zdefiniować, co oznacza słowo rzadkie w ramach tego rozkładu.

Oblicz więc empiryczny cdf i oblicz 95% przedział ufności. Ilekroć zdarzyło się coś poza tym regionem, z definicji wiesz, że musi to być rzadkie wydarzenie.

aktuariusz ilościowy
źródło
0

Jedną rzeczą jest wykrycie wartości odstającej na określonym poziomie ufności, a jeszcze inną - umieszczenie drugiej specyfikacji, która jeszcze bardziej ograniczy akceptację wartości odstającej. Kiedyś zadano mi następujące pytanie: „Czy AUTOBOX może wykryć średnie przesunięcie jednostek xx na wcześniej określonym poziomie ufności”. Zasadniczo wymagano podwójnego testu. AUTOBOX to oprogramowanie, które pomogłem opracować, które może okazać się opłacalne, ponieważ żadne wolne oprogramowanie nie wdrożyło tego podwójnego testu.

Dzięki Nick: Użyłem przesunięcia poziomu jako szczególnego przykładu „wartości odstającej” lub ogólnie zidentyfikowanego empirycznie wpływu deterministycznego. Inne formy „wartości odstających” to impulsy, impulsy sezonowe i trendy czasu lokalnego ORAZ poszczególne kombinacje, takie jak przejściowa zmiana na nowy poziom. Chodziło przede wszystkim o to, że mogą istnieć dwie hipotezy odzwierciedlające znaczenie statystyczne i znaczenie w świecie rzeczywistym. Klient, który pierwotnie zwrócił moją uwagę na ten problem, był zainteresowany obydwoma.

IrishStat
źródło
Wartość odstająca nie musi oznaczać średniej zmiany ... W rzeczywistości stopniowa lub stopniowa zmiana między reżimami przy użyciu różnych środków wcale nie musi oznaczać wartości odstających. Wiesz to bardzo dobrze, ale myślę, że sugeruje to, że innym byłoby najbardziej pomocne udzielić odpowiedzi.
Nick Cox
Dziękuję wam obu. Interesuje mnie znaczenie świata rzeczywistego. Po zidentyfikowaniu wartości odstającej, ważę jej znaczenie, powiedzmy, proporcją wizyt w porównaniu do łącznej liczby wizyt, aby uzyskać jego ostateczne znaczenie. Chociaż proporcja ta jest naprawdę niewielka w przypadku 2 wizyt, ponieważ oczekiwane wartości wynoszą 1 ± 0,001, „odległość” rzeczywistego punktu od oczekiwanych granic jest bardzo wysoka (np. 2 / 0,002, gdzie 0,002 to „iqr”) . W końcu kwestia ta zyskuje na znaczeniu. Jakieś pomysły?
Stergios
Zaznaczam, że szersze stosowanie „wartości odstających” jest tutaj znacznie szersze, niż hojne poczucie czegoś ekstremalnego, co jest powszechne w wielu literaturach. Doświadczeni czytelnicy będą wiedzieć, że @IrishStat trzyma się swojej forte, analizy szeregów czasowych.
Nick Cox
0

Masz ten problem, ponieważ Twoje dane są dalekie od normalnej dystrybucji. Jeśli rozkład jest wysoce asymetryczny, z nierównościami, garbami lub zbyt długimi / krótkimi ogonami, napotkasz problemy. Dobrym pomysłem jest zastosowanie transformacji takiej jak Box Cox lub Yeo-Johnson przed użyciem tej metody. W swoim przykładzie, jeśli użyjesz F (x) = log (1 + x), unikniesz problemu różnej wielkości i możesz dokonać konwersji z powrotem za pomocą: exp (z) -1

Istnieje kilka procedur, za pomocą których można automatycznie znaleźć dobrą lambda dla transformacji Box-Coxa. Ja osobiście używam mediany wszystkich metod funkcji boxcoxnc z pakietu AID w R. Jeśli twoje dane nie są ściśle pozytywne, musisz dodać 1 lub inną liczbę dodatnią przed użyciem.

Acoustesh
źródło