Während ich mit ARIMA-Modellen in die Prognose einsteige, versuche ich zu verstehen, wie ich eine auf ARIMA basierende Prognose verbessern kann, die mit Saisonalität und Drift übereinstimmt.
Meine Daten sind die folgenden Zeitreihen (über 3 Jahre, mit klarem Aufwärtstrend und sichtbarer Saisonalität, die durch die Autokorrelation bei den Verzögerungen 12, 24, 36 ?? nicht unterstützt zu werden scheint).
> bal2sum3years.ts
Jan Feb Mar Apr May Jun Jul Aug
2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729
2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888
2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416
Sep Oct Nov Dec
2010 2232261 2394644 2468479 2816287
2011 2480940 2699780 2760268 3206372
2012 2951516 3119176 3032960 3738256
Das von auto.arima(bal2sum3years.ts)
mir vorgeschlagene Modell gab mir folgendes Modell:
Series: bal2sum3years.ts
ARIMA(0,0,0)(0,1,0)[12] with drift
Coefficients:
drift
31725.567
s.e. 2651.693
sigma^2 estimated as 2.43e+10: log likelihood=-321.02
AIC=646.04 AICc=646.61 BIC=648.39
Das zeigt acf(bal2sum3years.ts,max.lag=35)
jedoch keine ACF-Koeffizienten höher als 0,3. Die Saisonalität der Daten ist jedoch ziemlich offensichtlich - ein Anstieg zu Beginn eines jeden Jahres. So sieht die Serie in der Grafik aus:
Die Prognose fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE)
, die nach Funktion aufgerufen wird forecast(fit)
, führt dazu, dass die Mittelwerte der nächsten 12 Monate den letzten 12 Monaten der Daten plus Konstante entsprechen. Dies kann durch einen Anruf gesehen werden plot(forecast(fit))
,
Ich habe auch die Residuen überprüft, die nicht autokorreliert sind, aber einen positiven Mittelwert haben (nicht Null).
Die Anpassung modelliert meiner Meinung nach die ursprüngliche Zeitreihe nicht genau (blau die ursprüngliche Zeitreihe, rot ist die fitted(fit)
:
Der Gast ist, ist das Modell falsch? Vermisse ich etwas Wie kann ich das Modell verbessern? Es scheint, dass das Modell buchstäblich die letzten 12 Monate benötigt und eine Konstante hinzufügt, um die nächsten 12 Monate zu erreichen.
Ich bin ein relativer Anfänger in Zeitreihen-Prognosemodellen und Statistiken.
Antworten:
Ja, in der Tat lautet das vorgeschlagene Modell "This June = Last June + Konstante + Fehler", und dies gilt auch für die anderen Monate.
Was ist daran genau falsch? Es scheint eine hervorragende Beschreibung Ihrer Daten zu sein.
Vielleicht finden Sie eine Zeitreihenzerlegung intuitiver und einfacher zu erklären, vielleicht sogar etwas, das auf einem grundlegenden Strukturmodell basiert - eines mit Saisonalität -, aber das impliziert nicht unbedingt ein Modell, das besser funktioniert als das, das Sie haben. Dennoch könnte es sich lohnen, eine oder mehrere der Standardzerlegungstechniken auszuprobieren - für ein Modell, das Sie gut verstehen, gibt es viel zu sagen.
quelle
Ich glaube, unser Problem ist, dass wir direkt zum ARIMA-Modell springen, ohne die traditionellen Modelle auszuprobieren. Aus diesem Grund können Sie feststellen, dass das Modell nicht die erforderlichen Ergebnisse liefert. In Ihrem Fall habe ich Ihre Daten getestet und festgestellt, dass alle 12 Monate eine Saisonalität vorliegt, die für Sie klar ist, aber ich habe auch festgestellt, dass ein einfacher gleitender Durchschnitt von 3 Begriffen Saisonbereinigung: Multiplikativ ist das beste Modell. Meiner Meinung nach müssen wir die traditionellen Prognosealgorithmen ausprobieren, bevor wir zu einer fortgeschrittenen Technik springen.
quelle