Test sezonowości szeregów czasowych


9

Jakie są najprostsze testy sezonowości dla szeregów czasowych?

Mówiąc bardziej konkretnie, chcę sprawdzić, czy in specific time series the seasonal componentma znaczenie.

Jakie są zalecane pakiety w Pythonie / R?

Odpowiedzi:


5

Przed przetestowaniem sezonowości należy zastanowić się, jaki rodzaj sezonowości masz. Pamiętaj, że istnieje wiele różnych rodzajów sezonowości:

  • Sezonowość addytywna a multiplikatywna
  • Sezonowość pojedyncza a wielokrotna
  • Sezonowość przy parzystej i nierównomiernej liczbie okresów. Każdy rok ma dwanaście miesięcy, ale 52 1429 tygodni.
  • Trend vs. sezonowość: Schemat sezonowości pojawia się zawsze w tym samym okresie, ale trend może pojawić się nieco później lub wcześniej, a nie dokładnie co 5 lat. Przykładem trendu są cykle koniunkturalne.

Jedną z najczęstszych metod wykrywania sezonowości jest rozkład szeregów czasowych na kilka składników.

W R możesz to zrobić za pomocą decompose()polecenia z preinstalowanego pakietu statystyk lub stl()polecenia z pakietu prognozy.

Poniższy kod pochodzi z małej księgi R dla szeregów czasowych

births <- scan("http://robjhyndman.com/tsdldata/data/nybirths.dat")
birthstimeseries <- ts(births, frequency = 12, start = c(1946,1))
birthstimeseriescomponents <- decompose(birthstimeseries)
plot(birthstimeseriescomponents)

wprowadź opis zdjęcia tutaj

Możesz sprawdzić pojedyncze elementy za pomocą

  • birthstimeseriescomponents$seasonal

  • birthstimeseriescomponents$random

  • birthstimeseriescomponents$trend


Inną metodą jest uwzględnienie manekinów sezonowych i sprawdzenie, czy mają one znaczące wartości p podczas obliczania regresji. Jeśli pojedyncze miesiące mają istotne współczynniki, miesięczne szeregi czasowe są sezonowe.


Inną metodą wykrywania sezonowości jest albo wykreślanie samych danych, albo wykreślanie ACF (funkcja autokorelacji). W naszym przypadku łatwo zauważyć, że istnieje sezonowość.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


I na koniec, ale nie mniej ważne są pewne „formalne” testy hipotez w celu wykrycia sezonowości, takie jak Test T Studenta i Test Podpisanej Rangi Wilcoxona.


w moim przypadku sam nie wiem (sezonowość addytywna vs multiplikatywna, sezonowość pojedyncza vs. wielokrotna Sezonowość z parzystą vs. nierówną liczbą okresów), mam wiele szeregów czasowych i chciałbym mieć generalny approch możliwy. Na początek chciałbym zacząć od addytywnej, pojedynczej sezonowości, nawet + nawet nie. @Ferdi
Michael D

może powinieneś pomyśleć o swoich danych: czy są to dane dzienne, tygodniowe, miesięczne czy kwartalne? czy są jakieś wstrząsy lub nieprawidłowości? co obserwujesz, kiedy to wizualizujesz?
Ferdi

niektóre szeregi czasowe mają tygodniowy, dzienny, godzinowy. A niektóre inne wcale nie mają. W pierwszym kroku chcę sprawdzić, czy składnik sezonowy w ogóle oznacza pełny. W twoim drugim przykładzie ma on Lag 3 i 12. Ale jakoś na oko nie znajduję żadnej sezonowości w Lag 3. Czy zamiast tego lepiej jest patrzeć na Pacf ? Jeśli patrzę na ACF lub PACF, jak odróżniam model AR (p) (który nie jest sezonowy) od modelu sezonowego? @Ferdi
Michael D

Nie znam żadnego algorytmu, którego można by ślepo uruchamiać na dowolnym szeregu czasowym w celu przetestowania sezonowości
Ferdi

1
Jestem ... AUTOBOX automatycznie wyszukuje zarówno stochastyczną, tj. Strukturę ARIMA, jak i deterministyczną (ustalone efekty, takie jak dzień tygodnia, miesiąc roku, dzień miesiąca, kwartał -rok itp.) podczas radzenia sobie z powikłaniami, takimi jak przesunięcia o krok / poziom, lokalne trendy czasowe, impulsy, zmiany zarówno parametrów, jak i wariancji błędów w czasie. Istnieje wersja R. Wynikiem mojej pracy doktorskiej jest automatyzacja identyfikacji modeli szeregów czasowych w ustawieniach jedno- i wielowymiarowych.
IrishStat

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.