ARIMA-Prognose mit Saisonalität und Trend, seltsames Ergebnis

9

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: Ursprüngliche Zeitreihe

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)),

Aktuelle und prognostizierte Daten

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):

Original vs 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.

Zima
quelle
" Die Passform modelliert meiner Meinung nach die ursprüngliche Zeitreihe nicht genau " - warum sollten Sie das erwarten?
Glen_b -Rate State Monica
@Glen_b, diese Meinung basierte auf den Unterschieden, die ich sehe, wenn ich mir die Handlung anschaue. Wenn ich zum Beispiel versuche, monatliche Verkäufe für Buchhaltungszwecke
vorherzusagen
" Die Unterschiede, die ich sehe, wenn ich mir die Handlung anschaue " ist eine andere Art zu sagen, " modelliert die Zeitreihen nicht genau ". Dies ist unstreitig. Ihr Ausdruck des Wunsches nach einer besseren Prognose ist der gleiche Wunsch, den jeder Prognostiker hat. In vielen Fällen kann es sehr wichtig sein. Dieser Wunsch bringt jedoch nicht mehr Informationen in die Daten. Jedes ARIMA-Modell - in der Tat jedes Zeitreihenmodell, das für diese Aufgabe relevant ist - hat einen Fehlerterm ungleich Null. Es wird immer eine Nichtübereinstimmung zwischen Daten und Anpassung geben. Gibt es etwas, das Sie glauben lässt, dass Ihr Modell etwas übersehen hat, das modelliert werden kann?
Glen_b -Rate State Monica
Ich habe gerade über etwas nachgedacht. Vielleicht kann das ARIMA-Modell die Daten tatsächlich nicht widerspiegeln, da die Art der Daten - Benutzeraktivität auf der Website - nicht berücksichtigt wird. Ich denke, es könnte andere Ereignisse geben, die sich auf die Zahlen auswirken, nicht nur die Saisonalität - wie besondere Ereignisse, Werbeaktionen. Vielleicht können andere Vorhersagemethoden (nicht ARIMA), aber komplexere Methoden, die Techniken des maschinellen Lernens beinhalten, die Werte besser vorhersagen. Ich werde das untersuchen.
Zima
Ganz plausibel. In diesem Fall sollten Sie in der Lage sein, einen solchen Fehler in den Residuen zu identifizieren. Beachten Sie, dass sowohl ARIMA-Modelle als auch strukturelle Zeitreihenmodelle Dinge wie besondere Ereignisse und Werbeaktionen über Regressionsbedingungen enthalten können. Zeitreihen-Regressionsmodelle sind ziemlich häufig.
Glen_b -Rate State Monica

Antworten:

9

ich[12]]

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.

Glen_b - Monica neu starten
quelle
1

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. 12-Monats-Prognose für Fragendaten

Awbath
quelle
1
Das Modell, das Sie vorschlagen, ist ein ARIMA-Modell der Form (3,0,0) (0,0,0), bei dem Sie die drei Koeffizienten mit 0,333, 0,333 und 0,333 und einer Konstanten von 0,0 fest codieren. Sie nehmen also nicht nur die Form des Arima-Modells an, sondern auch die Werte der Koeffizienten UND es gibt keine Ausreißer in der Reihe. Lassen Sie die Daten in Bezug auf die Form des Modells und die optimalen Werte für die Parameter für sich selbst sprechen ... Sie haben nichts zu verlieren und viel zu gewinnen. Wenn Ihr Modell tatsächlich korrekt ist, wird es gefunden. Alle Arima-Modelle sind gewichtete Funktionen der Vergangenheit.
IrishStat
1
stats.stackexchange.com/questions/40905/… beschreibt , wie gewichtete Modellierung und Arima zusammenhängen. Auf diese Weise kann ein ARIMA-Modell als Antwort auf die Frage erklärt werden, wie viele historische Werte ich verwenden soll, um eine gewichtete Summe der zu berechnen Vergangenheit? Was genau sind diese Werte?
IrishStat