Predicción con el modelo ARIMA

Conociendo el futuro por el pasado
Predicción univariante
modelo ARIMA
Author

Javier Sánchez García

Published

January 1, 2011

Los modelos ARIMA son una potente herramienta para la predicción debido a que permiten predecir una serie temporal con solo su propia trayectoria. Es decir, no necesitan de muestreo u obtención de datos adicionales para conocer los factores estructurales que afectan a la serie.

Para obtener predicciones con un modelo ARIMA, basta con sustituir los valores obtenidos en cada periodo de forma recursiva para el horizonte \(h=1,2,\ldots,H\)

\[ Y_{t+h} = c+\phi_1Y_{t+h-1} + \phi_2Y_{t+h-2} + \dots + \phi_pY_{t+h-p}+ u_t + \theta_1u_{t+h-1} + \theta_2u_{t+h-2} + \dots \theta_qu_{t+h-q} \]

De forma que para el \(h=1\)

\[ Y_{t+1} = c + \phi_1Y_{t} + \phi_2Y_{t-1} + \dots + \phi_pY_{t+1-p} + u_t + \theta_1u_{t} + \theta_2u_{t-1} + \dots \theta_qu_{t+1-q} \]

y así sucesivamente.

data("AirPassengers")
library(forecast, quietly=TRUE)
modeloauto <- auto.arima(AirPassengers)#Algoritmo Hyndman y Khandakar (2008) para selección automática de modelo ARIMA
checkresiduals(modeloauto)


    Ljung-Box test

data:  Residuals from ARIMA(2,1,1)(0,1,0)[12]
Q* = 37.784, df = 21, p-value = 0.01366

Model df: 3.   Total lags used: 24
autoplot(forecast(modeloauto, h=12)) + ggplot2::theme_classic()

Evaluación de predicciones

Para evaluar la calidad de las predicciones de un modelo, hay algunos estadísticos de referencia.

  • Error Medio (EM). La media de la desviación entre las observaciones \(Y_t\) y las predicciones del modelo \(\hat{Y}_t\) \[ \frac{\sum_{t=1}^TY_t - \hat{Y}_t}{T}\]

  • Raíz del Error Cuadrático Medio (RECM). Igual que el EM pero estandarizado por unidad de medida. \[ \sqrt\frac{\sum_{t=1}^T (Y_t - \hat{Y}_t)^2}{T}\]

  • Error Medio Absoluto (EMA). Igual que el EM pero con estandarización por signos.

    \[ \frac{\sum_{t=1}^T \lvert Y_t - \hat{Y}_t\lvert }{T}\]

summary(modeloauto)
Series: AirPassengers 
ARIMA(2,1,1)(0,1,0)[12] 

Coefficients:
         ar1     ar2      ma1
      0.5960  0.2143  -0.9819
s.e.  0.0888  0.0880   0.0292

sigma^2 = 132.3:  log likelihood = -504.92
AIC=1017.85   AICc=1018.17   BIC=1029.35

Training set error measures:
                 ME     RMSE     MAE      MPE     MAPE     MASE        ACF1
Training set 1.3423 10.84619 7.86754 0.420698 2.800458 0.245628 -0.00124847
modelonoauto <- Arima(AirPassengers, order=c(0,1,1), seasonal=c(1,1,0))
summary(modelonoauto)
Series: AirPassengers 
ARIMA(0,1,1)(1,1,0)[12] 

Coefficients:
          ma1     sar1
      -0.3096  -0.1459
s.e.   0.0885   0.0974

sigma^2 = 136.8:  log likelihood = -507.21
AIC=1020.43   AICc=1020.61   BIC=1029.05

Training set error measures:
                    ME     RMSE      MAE        MPE     MAPE      MASE
Training set 0.3454169 11.07003 8.108353 0.04835617 2.871605 0.2531463
                     ACF1
Training set -0.003449102

Sin embargo, lo ideal es dejar algunas observaciones fuera de la estimación del modelo como conjunto de prueba, y medir los estadísticos para ver como se ajusta el modelo a una situación real. Medir los estadísticos dentro del mismo conjunto que se usa para la estimación del modelo puede resultar erróneo, ya que el modelo puede ajustar bien los datos, pero no predecir bien situaciones nuevas.

Ejercicio: Estime el mejor modelo ARIMA que considere para los datos “gas”, y prediga con un horizonte de 12 periodos.