Ich habe monatliche Daten von 1993 bis 2015 und möchte diese Daten prognostizieren. Ich habe das tsoutliers-Paket verwendet, um die Ausreißer zu erkennen, aber ich weiß nicht, wie ich mit meinen Daten weiter prognostizieren soll.
Das ist mein Code:
product.outlier<-tso(product,types=c("AO","LS","TC"))
plot(product.outlier)
Dies ist meine Ausgabe vom tsoutliers-Paket
ARIMA(0,1,0)(0,0,1)[12]
Coefficients:
sma1 LS46 LS51 LS61 TC133 LS181 AO183 AO184 LS185 TC186 TC193 TC200
0.1700 0.4316 0.6166 0.5793 -0.5127 0.5422 0.5138 0.9264 3.0762 0.5688 -0.4775 -0.4386
s.e. 0.0768 0.1109 0.1105 0.1106 0.1021 0.1120 0.1119 0.1567 0.1918 0.1037 0.1033 0.1040
LS207 AO237 TC248 AO260 AO266
0.4228 -0.3815 -0.4082 -0.4830 -0.5183
s.e. 0.1129 0.0782 0.1030 0.0801 0.0805
sigma^2 estimated as 0.01258: log likelihood=205.91
AIC=-375.83 AICc=-373.08 BIC=-311.19
Outliers:
type ind time coefhat tstat
1 LS 46 1996:10 0.4316 3.891
2 LS 51 1997:03 0.6166 5.579
3 LS 61 1998:01 0.5793 5.236
4 TC 133 2004:01 -0.5127 -5.019
5 LS 181 2008:01 0.5422 4.841
6 AO 183 2008:03 0.5138 4.592
7 AO 184 2008:04 0.9264 5.911
8 LS 185 2008:05 3.0762 16.038
9 TC 186 2008:06 0.5688 5.483
10 TC 193 2009:01 -0.4775 -4.624
11 TC 200 2009:08 -0.4386 -4.217
12 LS 207 2010:03 0.4228 3.746
13 AO 237 2012:09 -0.3815 -4.877
14 TC 248 2013:08 -0.4082 -3.965
15 AO 260 2014:08 -0.4830 -6.027
16 AO 266 2015:02 -0.5183 -6.442
Ich habe auch diese Warnmeldungen.
Warning messages:
1: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
2: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval, :
stopped when ‘maxit’ was reached
3: In locate.outliers.oloop(y = y, fit = fit, types = types, cval = cval, :
stopped when ‘maxit’ was reached
4: In arima(x, order = c(1, d, 0), xreg = xreg) :
possible convergence problem: optim gave code = 1
5: In auto.arima(x = c(5.77, 5.79, 5.79, 5.79, 5.79, 5.79, 5.78, 5.78, :
Unable to fit final model using maximum likelihood. AIC value approximated
Zweifel:
- Wenn ich mich nicht irre, entfernt das tsoutliers-Paket die erkannten Ausreißer und gibt uns durch die Verwendung des Datensatzes mit entfernten Ausreißern das beste für den Datensatz geeignete Arima-Modell. Ist es korrekt?
- Der Datensatz für die Anpassungsserie wird aufgrund der Entfernung der Pegelverschiebung usw. Um ein Vielfaches nach unten verschoben. Bedeutet dies nicht, dass die Ausgabe der Prognose sehr ungenau ist, wenn die Prognose für die angepasste Serie durchgeführt wird, da die neueren Daten bereits mehr als 12 sind, während die angepassten Daten sie auf etwa 7-8 verschieben.
- Was bedeutet Warnmeldung 4 und 5? Bedeutet dies, dass auto.arima mit der angepassten Serie nicht ausgeführt werden kann?
- Was bedeutet [12] in ARIMA (0,1,0) (0,0,1) [12]? Ist es nur meine Häufigkeit / Periodizität meines Datensatzes, die ich auf monatlich eingestellt habe? Und bedeutet das auch, dass meine Datenreihen auch saisonabhängig sind?
- Wie erkenne ich die Saisonalität in meinem Datensatz? Aus der Visualisierung des Zeitreihendiagramms kann ich keinen offensichtlichen Trend erkennen. Wenn ich die Zerlegungsfunktion verwende, wird davon ausgegangen, dass es einen saisonalen Trend gibt. Glaube ich also nur, was die Tsoutliers mir sagen, wo es saisonale Trends gibt, da es MA der Ordnung 1 gibt?
- Wie mache ich meine Prognosen mit diesen Daten weiter, nachdem ich diese Ausreißer identifiziert habe?
- Wie können diese Ausreißer in andere Prognosemodelle integriert werden - Exponential Smoothing, ARIMA, Strutural Model, Random Walk, Theta? Ich bin sicher, dass ich die Ausreißer nicht entfernen kann, da es zu einer Pegelverschiebung kommt. Wenn ich nur angepasste Seriendaten nehme, sind die Werte zu klein. Was kann ich also tun?
Muss ich diese Ausreißer als Regressor in der auto.arima für die Prognose hinzufügen? Wie funktioniert das dann?
Das Paket 'tsoutliers' implementiert das von Chen und Liu (1993) [1] beschriebene Verfahren . Eine Beschreibung des Pakets und der Vorgehensweise finden Sie ebenfalls in diesem Dokument .
Kurz gesagt besteht das Verfahren aus zwei Hauptphasen:
Die Reihe wird dann für die erkannten Ausreißer angepasst und die Stufen (1) und (2) werden wiederholt, bis keine Ausreißer mehr erkannt werden oder bis eine maximale Anzahl von Iterationen erreicht ist.
Die erste Stufe (Erkennung von Ausreißern) ist ebenfalls ein iterativer Prozess. Am Ende jeder Iteration werden die Residuen aus dem ARIMA-Modell für die in dieser Phase erkannten Ausreißer angepasst. Der Vorgang wird wiederholt, bis keine Ausreißer mehr gefunden werden oder bis eine maximale Anzahl von Iterationen erreicht ist (standardmäßig 4 Iterationen). Die ersten drei Warnungen, die Sie erhalten, beziehen sich auf diese innere Schleife, dh die Stufe wird nach vier Iterationen beendet.
Sie können diese maximale Anzahl von Iterationen durch das Argument
maxit.iloop
in function erhöhentso
. Es ist ratsam, in der ersten Stufe keine hohe Anzahl von Iterationen festzulegen und den Prozess in die zweite Stufe übergehen zu lassen, in der das ARIMA-Modell neu angepasst oder erneut ausgewählt wird.Die Warnungen 4 und 5 sind auf den Prozess im Zusammenhang das ARIMA - Modell von Fitting und das Modell gewählt, jeweils für Funktionen
stats::arima
undforecast:auto.arima
. Der Algorithmus, der die Wahrscheinlichkeitsfunktion maximiert, konvergiert nicht immer zu einer Lösung. Einige Details zu diesen Themen finden Sie beispielsweise in diesem Beitrag und in diesem Beitrag[1] Chung Chen und Lon-Mu Liu (1993), "Joint Estimation of Model Parameters and Outlier Effects in Time Series", Journal of American Statistical Association , 88 (421), S. 284-297. DOI: 10.1080 / 01621459.1993.10594321 .
quelle