Mam szereg czasowy, który zawiera podwójne składniki sezonowe i chciałbym rozłożyć szereg na następujące składniki szeregu czasowego (trend, składnik sezonowy 1, składnik sezonowy 2 i składnik nieregularny). O ile mi wiadomo, procedura STL do dekompozycji serii w R dopuszcza tylko jeden komponent sezonowy, więc próbowałem dekomponować serię dwa razy. Po pierwsze, ustaw częstotliwość jako pierwszy składnik sezonowy za pomocą następującego kodu:
ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")
Następnie zdekomponowałem nieregularny składnik rozłożonej serii ( dec_1
), ustawiając częstotliwość na drugą składową sezonową, tak aby:
ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")
Nie jestem zbyt pewny tego podejścia. I chciałbym wiedzieć, czy istnieją inne sposoby dekompozycji serii, która ma wiele sezonowości. Zauważyłem również, że tbats()
funkcja w pakiecie prognozy R pozwala dopasować model do szeregu o wielu sezonowości, jednak nie mówi, jak rozłożyć z nim szereg.
Odpowiedzi:
forecast
bats()
tbats()
Zobacz http://robjhyndman.com/papers/complex-seasonality/ dla formuł, a Hyndman i in. (2008) dla lepszego opisu modeli ETS. BATS i TBATS są rozszerzeniem ETS.
Na przykład:
W takim przypadku każdy rząd
x
będzie na harmonicznej podobnej do Fouriera.Są też
plot.tbats()
iplot.bats()
funkcje automatycznego rozłożony i wyświetlić składniki.źródło