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?
time-series
seasonality
Danial
źródło
źródło
Odpowiedzi:
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).
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.
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).
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.
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”.
R
ma kod do estymacji periodogramu . Te ilustracje zostały stworzone w Mathematica 8; periodogram obliczono za pomocą funkcji „Fouriera”.źródło
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).
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.)
źródło
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.
źródło
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.
źródło
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:
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.
źródło
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
źródło