Pregunta

Estoy tratando de explicar a mí mismo el resultado de previsión de la aplicación de un modelo ARIMA a un conjunto de datos de series de tiempo. Los datos provienen de la M1-Competencia, la serie es MNB65. Estoy tratando de ajustar los datos a un modelo ARIMA (1,0,0) y obtener los pronósticos. Estoy usando R. Éstos son algunos fragmentos de salida:

> arima(x, order = c(1,0,0))
Series: x 
ARIMA(1,0,0) with non-zero mean 
Call: arima(x = x, order = c(1, 0, 0)) 
Coefficients:
         ar1  intercept
      0.9421  12260.298
s.e.  0.0474    202.717

> predict(arima(x, order = c(1,0,0)), n.ahead=12)
$pred
Time Series:
Start = 53 
End = 64 
Frequency = 1 
[1] 11757.39 11786.50 11813.92 11839.75 11864.09 11887.02 11908.62 11928.97 11948.15 11966.21 11983.23 11999.27

Tengo algunas preguntas:

(1) ¿Cómo explico que aunque los espectáculos de conjunto de datos una clara tendencia descendente, la previsión de este modelo tendencias al alza? Esto también sucede para ARIMA (2,0,0), que es el mejor ajuste ARIMA para los datos utilizando auto.arima (paquete de previsión) y para un modelo ARIMA (1,0,1).

(2) El valor de intersección para la ARIMA (1,0,0) modelo es 12260.298. No debería la intercepción de satisfacer la ecuación: C = mean * (1 - sum(AR coeffs)), en cuyo caso, el valor debe ser 715.52. Debo estar perdiendo algo básico aquí.

(3) Se trata claramente de una serie con media no estacionario. ¿Por qué es un AR (2) modelo aún seleccionado como el mejor modelo por auto.arima? Podría haber una explicación intuitiva?

Gracias.

¿Fue útil?

Solución

  1. No ARIMA (p, 0, q) modelo permitirá para una tendencia porque el modelo es estacionario. Si realmente desea incluir una tendencia, utilizar ARIMA (p, 1, q) con un término deriva, o ARIMA (p, 2, q). El hecho de que auto.arima () está sugiriendo 0 diferencias por lo general indican que no hay una tendencia clara.

  2. El archivo de ayuda para Arima () muestra que la intersección es en realidad la media. Es decir, la AR (1) modelo es (Y_t-c) = ϕ(Y_{t-1} - c) + e_t en lugar de Y_t = c + ϕY_{t-1} + e_t como se podría esperar.

  3. auto.arima() utiliza una prueba de raíz unitaria para determinar el número de diferencias requeridas. A fin de comprobar los resultados de la prueba de raíz unitaria para ver lo que está pasando. Siempre se puede especificar el número requerido de las diferencias en auto.arima() si cree que las pruebas de raíz unitaria no conducen a un modelo sensible.

Estos son los resultados de dos pruebas para sus datos:

R> adf.test(x)

        Augmented Dickey-Fuller Test

data:  x 
Dickey-Fuller = -1.031, Lag order = 3, p-value = 0.9249
alternative hypothesis: stationary 

R> kpss.test(x)

        KPSS Test for Level Stationarity

data:  x 
KPSS Level = 0.3491, Truncation lag parameter = 1, p-value = 0.09909

Así dice el ADF firmemente no estacionario (la hipótesis nula en este caso), mientras que el KPSS no acaba de rechazar la estacionalidad (la hipótesis nula de que la prueba). auto.arima() utiliza este último por defecto. Se podría utilizar auto.arima(x,test="adf") si quería la primera prueba. En ese caso, se sugiere que el modelo ARIMA (0,2,1), que tiene una tendencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top