He estado tratando de aprender y aplicar los modelos ARIMA. He estado leyendo un excelente texto sobre ARIMA de Pankratz - Pronósticos con caja univariante - Modelos Jenkins: conceptos y casos . En el texto, el autor enfatiza especialmente el principio de parsimonia en la elección de los modelos ARIMA.
Empecé a jugar con la auto.arima()
función en R paquete de pronóstico . Esto es lo que hice, simulé ARIMA y luego apliqué auto.arima()
. A continuación hay 2 ejemplos. Como puede ver en ambos ejemplos auto.arima()
, identificó claramente un modelo que muchos considerarían no parsimonioso. Especialmente en el ejemplo 2, donde se auto.arima()
identificó ARIMA (3,0,3) cuando en realidad ARIMA (1,0,1) sería suficiente y parsimonioso.
A continuación están mis preguntas. Agradecería cualquier sugerencia y recomendación.
- ¿Hay alguna guía sobre cuándo usar / modificar los modelos identificados usando algoritmos automáticos tales como
auto.arima()
? - ¿Hay algún problema con solo usar AIC (que es lo que creo que
auto.arima()
usa) para identificar modelos? - ¿Se puede construir un algoritmo automático que sea parsimonioso?
Por cierto lo usé auto.arima()
solo como ejemplo. Esto se aplicaría a cualquier algoritmo automático.
A continuación se muestra el Ejemplo # 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
A continuación se muestran los resultados de auto.arima()
. Tenga en cuenta que todos los coeficientes son insignificantes. es decir, valor <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
A continuación se muestran los resultados de la ejecución regular arima()
con el pedido 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
Ejemplo 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
A continuación se muestran los resultados de 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
A continuación se muestran los resultados que se ejecutan regularmente arima()
con el pedido 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