Wie zerlege ich eine Zeitreihe mit mehreren saisonalen Komponenten?

22

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.

As
quelle
Hallo und willkommen auf der Seite. Haben Ihre beiden saisonalen Komponenten unterschiedliche Periodizitäten, z. B. eine wöchentliche und eine monatliche?
Michelle
1
Kapitel 14 von Rob Hyndman, Koehler, Ord & Snyder "Prognose mit exponentieller Glättung" behandelt dies. Hyndman hat auch ein Prognosepaket in R. Ich erinnere mich an Hyndman, der auf dieser Site zu diesem Thema gepostet hat, aber es könnte auf seinem Blog gewesen sein.
Radfahrer
@Michelle Hallo danke für die Antwort. Ja, die beiden saisonalen Komponenten weisen unterschiedliche Periodizitäten auf. Die erste hat eine Periodizität von 48 (tägliche Saisonalität), während die zweite eine Periodizität von 336 (wöchentliche Saisonalität) hat. Es ist eine halbstündliche Zeitreihe.
Ass
@zbicyclist Ich glaube, das Prognosepaket, über das Sie sprechen, ist das 'Prognosepaket', das ich im ursprünglichen Beitrag erwähnt habe. Ich habe mir die tbats-Funktion dieses Pakets angesehen, aber es sagt nichts darüber aus, wie es zum Zerlegen verwendet werden soll. Ich werde das Buch durchsehen, um zu sehen, ob ich weitere Illustrationen finde.
Ass
2
Hier ist, woran ich dachte. Es war auf Hyndmans Blog. robjhyndman.com/papers/complex-seasonality
zbicyclist

Antworten:

13

forecastbats()tbats()x(t)t

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:

fit <- bats(myTimeseries)
fit$x

In diesem Fall liegt jede Reihe von xauf einer fourierartigen Harmonischen.

Es gibt auch plot.tbats() und plot.bats()Funktionen zum automatischen Zerlegen und Anzeigen der Komponenten.

Leistung
quelle