Ich habe eine Zeitreihe, die doppelte saisonale Komponenten enthält, und ich möchte die Reihe in die folgenden Zeitreihenkomponenten aufteilen (Trend, saisonale Komponente 1, saisonale Komponente 2 und unregelmäßige Komponente). Soweit mir bekannt ist, erlaubt die STL-Prozedur zum Zerlegen einer Reihe in R nur eine saisonale Komponente, daher habe ich versucht, die Reihe zweimal zu zerlegen. Stellen Sie zunächst die Frequenz als erste saisonale Komponente mit dem folgenden Code ein:
ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")
Dann zerlegte ich die unregelmäßige Komponente der zerlegten Reihe ( dec_1
), indem ich die Frequenz als zweite saisonale Komponente festlegte, so dass:
ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")
Ich bin mit diesem Ansatz nicht sehr zuversichtlich. Und ich würde gerne wissen, ob es andere Möglichkeiten gibt, eine Serie mit mehreren Saisonalitäten zu zerlegen. Außerdem ist mir aufgefallen, dass die tbats()
Funktion im R- Prognosepaket die Anpassung eines Modells an eine Reihe mit mehreren Saisonalitäten ermöglicht. Es wird jedoch nicht angegeben, wie eine Reihe damit zerlegt werden soll.
Antworten:
forecast
bats()
tbats()
Eine bessere Beschreibung der ETS-Modelle finden Sie unter http://robjhyndman.com/papers/complex-seasonality/ für die Formeln von Hyndman et al. (2008). BATS und TBATS sind eine Erweiterung von ETS.
Beispielsweise:
In diesem Fall liegt jede Reihe von
x
auf einer fourierartigen Harmonischen.Es gibt auch
plot.tbats()
undplot.bats()
Funktionen zum automatischen Zerlegen und Anzeigen der Komponenten.quelle