Ho cercato di imparare e applicare i modelli ARIMA. Ho letto un eccellente testo su ARIMA di Pankratz - Previsioni con scatola univariata - Modelli Jenkins: concetti e casi . Nel testo l'autore sottolinea in particolare il principio della parsimonia nella scelta dei modelli ARIMA.
Ho iniziato a giocare con auto.arima()
la funzione di R pacchetto di previsione . Ecco cosa ho fatto, ho simulato ARIMA e poi applicato auto.arima()
. Di seguito sono riportati 2 esempi. Come puoi vedere in entrambi gli esempi auto.arima()
identificato chiaramente un modello che molti considererebbero non parsimonioso. Soprattutto nell'esempio 2, dove auto.arima()
identificato ARIMA (3,0,3) quando in realtà ARIMA (1,0,1) sarebbe sufficiente e parsimonioso.
Di seguito sono le mie domande. Gradirei eventuali suggerimenti e raccomandazioni.
- Ci sono indicazioni su quando utilizzare / modificare i modelli identificati utilizzando algoritmi automatici come
auto.arima()
? - Ci sono delle cadute nell'uso dell'AIC (che è quello che penso
auto.arima()
usi) per identificare i modelli? - Può un algoritmo automatico creato parsimonioso?
A proposito, ho usato auto.arima()
solo come esempio. Ciò si applicherebbe a qualsiasi algoritmo automatico.
Di seguito è riportato l'esempio n. 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
Di seguito sono riportati i risultati di auto.arima()
. Si noti che tutti i coefficienti sono insignificanti. vale a dire, valore <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
Di seguito sono riportati i risultati della corsa regolare arima()
con ordine 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
Esempio 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
Di seguito sono riportati i risultati di 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
Di seguito sono riportati i risultati che funzionano regolarmente arima()
con ordine 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