Ich habe versucht, ARIMA-Modelle zu lernen und anzuwenden. Ich habe einen ausgezeichneten ARIMA-Text von Pankratz gelesen - Forecasting with Univariate Box - Jenkins Models: Concepts and Cases . Der Autor betont im Text insbesondere das Prinzip der Sparsamkeit bei der Auswahl von ARIMA-Modellen.
Ich fing an, mit der auto.arima()
Funktion in der R- Paket- Vorhersage zu spielen . Hier ist, was ich getan habe, ich habe ARIMA simuliert und mich dann beworben auto.arima()
. Unten sind 2 Beispiele. Wie Sie in beiden Beispielen sehen können auto.arima()
, wurde ein Modell eindeutig identifiziert, das viele als nicht sparsam betrachten würden. Insbesondere in Beispiel 2, in dem auto.arima()
ARIMA (3,0,3) als tatsächlich ARIMA (1,0,1) identifiziert wurde, wäre dies ausreichend und sparsam.
Unten sind meine Fragen. Über Anregungen und Empfehlungen würde ich mich freuen.
- Gibt es Hinweise, wann die mit automatischen Algorithmen identifizierten Modelle zu verwenden / zu ändern sind, wie z
auto.arima()
. - Gibt es Fallstricke bei der Verwendung von AIC (was meiner Meinung
auto.arima()
nach zur Identifizierung von Modellen verwendet wird)? - Kann ein automatischer Algorithmus erstellt werden, der sparsam ist?
Übrigens habe ich auto.arima()
nur als Beispiel genommen. Dies würde für jeden automatischen Algorithmus gelten.
Unten ist Beispiel # 1:
set.seed(182)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
Unten sind die Ergebnisse von auto.arima()
. Bitte beachten Sie, dass alle Koeffizienten unwesentlich sind. dh Wert <2.
ARIMA(1,0,2) with non-zero mean
Coefficients:
ar1 ma1 ma2 intercept
0.5395 0.2109 -0.3385 19.9850
s.e. 0.4062 0.4160 0.3049 0.0878
sigma^2 estimated as 1.076: log likelihood=-728.14
AIC=1466.28 AICc=1466.41 BIC=1487.36
Unten sehen Sie die Ergebnisse der regulären Ausführung arima()
mit der Bestellung von ARIMA (1,0,1).
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06
Beispiel 2:
set.seed(453)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
Unten sind die Ergebnisse von auto.arima()
:
ARIMA(3,0,3) with non-zero mean
Coefficients:
ar1 ar2 ar3 ma1 ma2 ma3 intercept
0.7541 -1.0606 0.2072 0.1391 0.5912 0.5491 20.0326
s.e. 0.0811 0.0666 0.0647 0.0725 0.0598 0.0636 0.0939
sigma^2 estimated as 1.027: log likelihood=-716.84
AIC=1449.67 AICc=1449.97 BIC=1483.39
Nachfolgend sind die Ergebnisse aufgeführt, die regelmäßig arima()
mit der Bestellung von ARIMA (1,0,1) ausgeführt werden.
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06