Jaką metodę można zastosować do wykrycia sezonowości danych?

56

Chcę wykryć sezonowość w danych, które otrzymuję. Znalazłem kilka metod, takich jak wykres sezonowych podserii i wykres autokorelacji, ale chodzi o to, że nie rozumiem, jak czytać wykres, czy ktoś mógłby pomóc? Inną kwestią jest to, czy istnieją inne metody wykrywania sezonowości z końcowym wynikiem na wykresie lub bez?

Danial
źródło
1
możesz dołączyć rzeczywisty wykres, który masz problemy ze zrozumieniem.
Karl
Bardziej korzystnie oryginalne dane, które można wykorzystać do wygenerowania „kłopotliwego” ACF.
IrishStat
3
Zobacz stats.stackexchange.com/q/1207/159
Rob Hyndman
1
patrz: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu i D Wang, 2011: O zmianie El Niño: Widok z różnych okresów cykl, zmienność międzyroczna i stan średni. J. Climate, 24 (24), 6486–6500

Odpowiedzi:

70

Naprawdę dobrym sposobem na znalezienie okresowości w każdej regularnej serii danych jest sprawdzenie jego spektrum mocy po usunięciu ogólnego trendu . (To dobrze nadaje się do automatycznego przesiewania, gdy całkowita moc jest znormalizowana do wartości standardowej, takiej jak jedność.) Wstępne usunięcie trendu (i opcjonalne różnicowanie w celu usunięcia korelacji szeregowej) jest niezbędne, aby uniknąć pomyłek z innymi zachowaniami.

Spektrum mocy jest dyskretną transformatą Fouriera funkcji autokowariancji odpowiednio wygładzonej wersji oryginalnej serii. Jeśli uważasz, że szereg czasowy jest próbkowaniem fali fizycznej, możesz oszacować, ile całkowitej mocy fali jest przenoszone w obrębie każdej częstotliwości. Widmo mocy (lub periodogram ) wykreśla moc w funkcji częstotliwości. Cykliczne (to znaczy powtarzalne lub sezonowe wzorce) pojawią się jako duże skoki zlokalizowane na ich częstotliwościach.

Jako przykład rozważmy ten (symulowany) szereg czasowy pozostałości z codziennego pomiaru wykonanego przez jeden rok (365 wartości).

seria reszt

Wartości wahają się wokół bez wyraźnych trendów, co pokazuje, że wszystkie ważne trendy zostały usunięte. Wahania wydają się losowe: okresowość nie jest widoczna.0

Oto kolejny wykres tych samych danych, narysowany, aby pomóc nam zobaczyć możliwe okresowe wzorce.

seria reszt, wypełniona do 0

Jeśli spojrzysz naprawdę ciężko, być może zauważysz hałaśliwy, ale powtarzalny wzór, który pojawia się 11 do 12 razy. Długie sekwencje wartości powyżej zera i poniżej zera przynajmniej sugerują pewną pozytywną autokorelację, pokazując, że ta seria nie jest całkowicie losowa.

Oto periodogram pokazany dla częstotliwości do 91 (jedna czwarta całkowitej długości serii). Został zbudowany z oknem Welcha i znormalizowany do obszaru jednostki (dla całego periodogramu, nie tylko pokazanej tutaj części).

periodogram

Moc wygląda jak „biały szum” (małe przypadkowe fluktuacje) plus dwa wyraźne skoki. Trudno je przeoczyć, prawda? Większy występuje w okresie 12, a mniejszy w okresie 52. W ten sposób w tych danych wykryto cykl miesięczny i cykl tygodniowy . To naprawdę wszystko. Aby zautomatyzować wykrywanie cykli („sezonowość”), po prostu zeskanuj periodogram (który jest listą wartości) w poszukiwaniu stosunkowo dużych lokalnych maksimów.

Czas ujawnić, w jaki sposób te dane zostały utworzone.

Dane rozkładają się na sygnał plus szum

Wartości są generowane z sumy dwóch fal sinusoidalnych, jednej o częstotliwości 12 (o kwadratowej amplitudzie 3/4), a drugiej o częstotliwości 52 (o kwadratowej amplitudzie 1/4). To właśnie wykryły skoki w periodogramie. Ich suma jest pokazana jako gruba czarna krzywa. Następnie dodano normalny hałas wariancji 2, jak pokazują jasnoszare paski rozciągające się od czarnej krzywej do czerwonych kropek. Ten hałas wprowadził ruchy dolnego poziomu w dolnej części periodogramu, które w innym przypadku byłyby tylko płaskie 0. Całkowicie dwie trzecie całkowitej zmienności wartości jest nieokresowe i losowe, co jest bardzo głośne: dlatego jest tak trudno jest dostrzec częstotliwość, patrząc tylko na kropki. Niemniej jednak (częściowo dlatego, że jest tak dużo danych) znalezienie częstotliwości za pomocą periodogramu jest łatwe, a wynik jest jasny.

Instrukcje i dobre porady dotyczące obliczania periodogramów znajdują się na stronie z przepisami numerycznymi : poszukaj sekcji na temat „szacowania widma mocy za pomocą FFT”. Rma kod do estymacji periodogramu . Te ilustracje zostały stworzone w Mathematica 8; periodogram obliczono za pomocą funkcji „Fouriera”.

Whuber
źródło
2
Założenie „po usunięciu jakiegokolwiek ogólnego trendu” jest piętą achillesową, ponieważ może istnieć wiele trendów czasowych, z których wszystkie zostały przesunięte o wiele poziomów, z których wszystkie zostały wykluczone w twoim przykładzie. Pomysł, że szeregi wejściowe są z natury deterministyczne, przemyka w obliczu możliwego obecność sezonowej i regularnej struktury ARIMA. Nieleczone nietypowe wartości jednorazowe zniekształcają dowolny schemat identyfikacji oparty na periodogramie z powodu tendencyjności w dół w stosunku do szacunków periodogramu, które nie mają znaczenia. Jeśli tygodniowe i / lub miesięczne efekty uległyby zmianie w pewnym momencie w przeszłości, procedura oparta na periodogramie zawiodłaby
IrishStat
@Irish Myślę, że twój komentarz może nieco przesadzić. Najbardziej elementarne jest poszukiwanie i leczenie „Niezwykłych Wartości Jednorazowych” (inaczej wartości odstających), dlatego należy wspomnieć tylko o podkreśleniu, że niektóre estymatory szeregów czasowych mogą być wrażliwe na wartości odstające. „Deterministyczny charakter” błędnie przedstawia podstawowe idee: nikt nie przypuszcza, że ​​istnieje determinizm (o czym świadczy ogromna ilość hałasu w symulacji). Symulacja zawiera określony sygnał okresowy jako model - zawsze przybliżony w rzeczywistości - tylko w celu zilustrowania związku między periodogramem a sezonowością. (Ciąg dalszy ...)
whuber
2
Tak, zmiany sezonowości mogą przesłaniać periodogram (i acf itp.), Szczególnie zmiany częstotliwości (mało prawdopodobne) lub fazy (możliwe). Referencje w moim poście dają rozwiązanie tego problemu: zalecają użycie ruchomego okna do oszacowania periodogramu. Jest w tym sztuka i oczywiście są pułapki, więc wiele analiz szeregów czasowych skorzysta na eksperckim leczeniu, jak się bronisz. Ale pytanie dotyczy tego, czy istnieją „inne metody wykrywania sezonowości” i niewątpliwie periodogram jest statystycznie silną, wydajną obliczeniowo, łatwą do interpretacji opcją.
whuber
W moim świecie używanie sinusów / cosinusów jest „efektami deterministycznymi”, podobnie jak wskaźniki miesiąca roku. Dopasowanie dowolnego wcześniej określonego modelu ogranicza dopasowane wartości do wzorca określonego przez użytkownika, często poniżej normy. Dane powinny być „wysłuchane” jako pomoc analitykowi / zaawansowanemu oprogramowaniu komputerowemu w efektywnym rozróżnianiu między stałymi i stochastycznymi danymi wejściowymi. Odnoszę się do struktur opóźnień ARIMA jako stochastycznych lub adaptacyjnych „sterowników”, ponieważ dopasowane wartości dostosowują się / dostosowują do zmian w historii z serii. Moim zdaniem wykorzystanie periodogramu „sprzedaje” proste modelowanie statystyczne
IrishStat
2
@whuber Powtarzanie tego samego może nie być przydatne. Jednak fajnie byłoby też naprawić akapit pod periodogramem, aby powiedzieć, że skoki są zlokalizowane na „częstotliwości” 12 i 52 razy w roku, a nie „okresie”. Naprawienie fabuły, aby powiedzieć „częstotliwość” zamiast „kropka”, może być również miłe, jeśli uważasz, że nie jest to zbyt denerwujące.
Celelibi
19

Oto przykład, w którym wykorzystano miesięczne dane dotyczące rejestrów bezrobocia z miasta w New Jersey (ze Stata, tylko dlatego, że na początku analizowałem te dane). Sezonowość ACF

Wysokości linii wskazują na korelację między zmienną a opóźnieniem samego siebie; szary obszar pokazuje, czy ta korelacja jest znacząca (ten zakres jest jedynie wskazówką i nie jest najbardziej wiarygodnym sposobem sprawdzenia istotności). Jeśli ta korelacja jest wysoka, istnieją dowody na korelację szeregową. Zwróć uwagę na garby występujące w okresach 12, 24 i 36. Ponieważ są to dane miesięczne, sugeruje to, że korelacja staje się silniejsza, gdy spojrzysz na okresy dokładnie 1, 2 lub 3 lata wcześniej. Jest to dowód miesięcznej sezonowości.

Możesz przetestować te relacje statystycznie, regresując zmienną na zmienne fikcyjne wskazujące składnik sezonowości --- tutaj, manekiny miesiąca. Możesz przetestować łączne znaczenie tych manekinów, aby sprawdzić sezonowość.

Ta procedura nie jest do końca właściwa, ponieważ test wymaga, aby warunki błędu nie były skorelowane szeregowo. Tak więc, przed przetestowaniem tych manekinów sezonowości, musimy usunąć pozostałą korelację szeregową (zazwyczaj poprzez włączenie opóźnień zmiennej). Mogą występować impulsy, przerwy i wszystkie inne problemy szeregów czasowych, które należy poprawić, aby uzyskać odpowiednie wyniki z testu. Nie pytałeś o te pytania, więc nie będę wchodził w szczegóły (plus, na te tematy jest wiele pytań CV). (Aby zaspokoić swoją ciekawość, ta seria wymaga manekinów miesięcznych, pojedynczego opóźnienia i elementu zmiany, aby pozbyć się korelacji szeregowej.)

Charlie
źródło
4

Sezonowość może i często zmienia się w czasie, dlatego też środki podsumowujące mogą być dość nieodpowiednie do wykrycia struktury. Należy przetestować przemijalność we współczynnikach ARIMA i często zmiany w „sezonowych manekinach”. Na przykład w horyzoncie 10 lat może nie być efektu czerwcowego przez pierwsze k lat, ale w ciągu ostatnich 10 lat istnieją dowody efektu czerwcowego. Prosty złożony efekt czerwcowy może być nieistotny, ponieważ efekt nie był stały w czasie. W podobny sposób mógł również ulec zmianie sezonowy komponent ARIMA. Należy dołożyć starań, aby uwzględnić zmiany na poziomie lokalnym i / lub lokalne trendy czasowe, jednocześnie zapewniając, że wariancja błędów pozostała stała w czasie. Nie należy oceniać transformacji takich jak GLS / ważone najmniejszych kwadratów lub transformacji mocy, takich jak logi / pierwiastki kwadratowe itp. na oryginalnych danych, ale na błędach z modelu niepewnego. Założenia gaussowskie nie mają nic wspólnego z obserwowanymi danymi, ale wszystkie dotyczą błędów z modelu. Wynika to z podstaw testów statystycznych, które wykorzystują stosunek niecentralnej zmiennej chi-kwadrat do centralnej zmiennej chi-kwadrat.

Jeśli chciałbyś zamieścić przykładową serię ze swojego świata, chętnie przedstawię Tobie i tej liście dokładną analizę prowadzącą do wykrycia struktury sezonowej.

IrishStat
źródło
1

Odpowiedź Charliego jest dobra i od tego bym zaczął. Jeśli nie chcesz używać wykresów ACF, możesz utworzyć zmienne obojętne k-1 dla obecnych okresów k. Następnie możesz sprawdzić, czy zmienne fikcyjne są znaczące w regresji ze zmiennymi fikcyjnymi (i prawdopodobnie terminem trendu).

Jeśli dane są kwartalne: manekin Q2 wynosi 1, jeśli jest to drugi kwartał, w przeciwnym razie 0 manekin Q3 to 1, jeśli jest to trzeci kwartał, w przeciwnym razie 0 manekin Q4 wynosi 1, jeśli jest to czwarty kwartał, w przeciwnym razie 0 Uwaga, kwartał 1 to skrzynka podstawowa (wszystkie 3 manekiny zero)

Możesz także sprawdzić „rozkład szeregów czasowych” w programie Minitab - często nazywany „rozkładem klasycznym”. W końcu możesz chcieć użyć czegoś bardziej nowoczesnego, ale jest to proste miejsce na rozpoczęcie.

zbicyclist
źródło
0

Chciałbym skorzystać z oferty pomocy użytkownika IrishStat lub kogokolwiek innego z mojej przykładowej serii z prawdziwego świata. Staram się stworzyć indeks sezonowy na podstawie ostatnich 5 lat cen kontraktów terminowych na ropę naftową. Udało mi się stworzyć proste średnie sezonowe, które można obejrzeć tutaj .

Chciałbym jednak odtworzyć zmieniający się wykres roczny (przypuszczam, że zmiana oznacza, że ​​początek i koniec roku ma tę samą wartość) i jest w skali od zera do 100, jak pokazano na poniższym obrazku: wprowadź opis zdjęcia tutaj

W arkuszu kalkulacyjnym można pobrać 15- letnie dane dotyczące dziennego poziomu cen . Byłby bardzo mile widziany przykład lub jakakolwiek wskazówka, jak osiągnąć powyższe.

Andrej Kirda
źródło
-1

Sam jestem trochę nowy w R, ale rozumiem funkcję ACF, że jeśli linia pionowa znajdzie się powyżej górnej linii przerywanej lub poniżej dolnej linii przerywanej, nastąpi autoregresja (w tym sezonowość). Spróbuj utworzyć wektor sinusoidy

Bill Yarberry
źródło
Montaż sinusów / cosinusów itp. Może być przydatny w niektórych szeregach czasowych fizycznych / elektrycznych, ale musisz mieć świadomość MSB, odchylenie specyfikacji modelu.
IrishStat
1
Autoregresja nie oznacza sezonowości.
Jens