Teoría básica y un ejemplo paso a paso para ayudar a la comprensión del modelo ARIMA utilizando R.
Modelos ARIMA: son una clase popular y flexible de modelo de pronóstico que utiliza información histórica para hacer predicciones.
Este tipo de modelo es una técnica básica de pronóstico que puede usarse como base para modelos más complejos.
La metodología de Box-Jenkins, nombrada así en honor a los estadásticos George E. P . Box y Gwilym Jenkins, se aplica a los modelos autorregresivos de media móvil (ARMA) o a los modelos autorregresivos integrados de media móvil (ARIMA).
-Objetivo: Encontrar el mejor ajuste de una serie temporal de valores, a fin de que los pronósticos sean más acertados.
La estimación de los parámetros de un modelo ARMA requiere una SERIE MUESTRAL estacionaria en media y varianza.
Es decir, se precisa que la serie no tenga tendencia y que presente un grado de dispersión similar en cualquier momento de tiempo (homogénea en varianza)
A efectos prácticos:
Tomar logaritmos para homogeneizar en varianza (no elimina tendecia)
Diferenciar la serie original para que sea estacionaria en media (si elimina tendencia)
Una vez tratada la serie ya se puede estimar el modelo ARMA.
Modelo Autorregresivo- Integrado de Medias Móviles de orden p, d, q, o abreviadamente ARIMA (p,d,q): Modelo ARMA (p,q) aplicado a una serie integrada de orden d., I(d), es decir, a la que ha sido necesario diferenciar d veces para eliminar la tendencia.
Por lo tanto, la expresión general de un modelo ARIMA (p,d,q) viene dada por:
donde , expresa que sobre la serie original \(y_t\), se han aplicado d diferencias.
Sobre una serie integrada de orden 2, necesitaria una doble diferenciacion:
En la expresión del ARIMA (p,d,q) desaparece el término independiente, por la aplicación de las diferencias sucesivas.
Evolución mensual, durante algo más de ocho años, del consumo de gasolina en España (variable CONGA, en trazo grueso)
Serie no es estacionaria –> clara tendencia al alza
A simple vista bastaría con diferenciar una vez la serie original
Mayor dispersión en los útlimos años. Sería interesante trabajar la serie en logaritmos previo a la diferenciación (variable LCONGA)
Serie en logaritmos (LCONGA, ahora en trazo grueso y con la escala de la izquierda)
Serie diferenciada (DLCONGA=LCONGA-LCONGA(-1), en trazo fino y con la escala de la derecha del gráfico)
TENDENCIA ha sido eliminada en DLCONGA, cuyos valores oscilan alrededor del cero.
Última serie con transformación logarítmica y primeras diferencias (d=1 en modelo ARIMA) es la que habría que modelizar con un ARMA(p,q)
La función auto.arima de la librería forecast de R, evalúa entre todos los posibles modelos, al mejor modelo considerando diversos criterios: estacionariedad, estacionalidad, diferencias, entre otras.
Para llevar a cabo la utilización de esta función (auto.arima) en primer lugar, se cargan los paquetes de R necesarios:
library(forecast) # Realizar proyecciones
## Warning: package 'forecast' was built under R version 3.4.4
library(openxlsx) # Cargar bases excel
## Warning: package 'openxlsx' was built under R version 3.4.3
setwd("C:/Users/Master/Desktop/ARIMA") # Localizamos
data<- read.xlsx("estancia.xlsx", detectDates=T) # Leemos
tsdata<-ts(data,start=c(2000,1),frequency=12) # Serie temporal
Como se trata de una serie temporal, es necesario configurarla como tal, donde la serie tendrá inicio en el año 2000, mes 1 y la frecuencia es 12 puesto que es mensual.
Se utiliza la columna 2 de la matriz “tsdata” (matriz que puede tener varias variables)
Devuelve el posible mejor modelo
Realiza transformaciones de la variable en caso de que no sea estacionaria
Si existe estacionalidad construye un modelo ARIMA
modelo<-auto.arima(tsdata[,2])
summary(modelo)
## Series: tsdata[, 2]
## ARIMA(2,0,2)(2,1,0)[12] with drift
##
## Coefficients:
## ar1 ar2 ma1 ma2 sar1 sar2 drift
## 1.3170 -0.6047 -1.0347 0.5861 -0.3413 -0.3050 -0.0152
## s.e. 0.1784 0.1713 0.1899 0.1488 0.0746 0.0759 0.0020
##
## sigma^2 estimated as 0.08651: log likelihood=-38.06
## AIC=92.12 AICc=92.86 BIC=118.67
##
## Training set error measures:
## ME RMSE MAE MPE MAPE
## Training set 0.001255529 0.2808954 0.2144858 -0.06915079 2.766483
## MASE ACF1
## Training set 0.6843149 0.01510399
Por otra parte, también devuelve los conocidos como criterios de predictibilidad, los cuales son utilizados para evaluar la capacidad predictiva de los modelos incluyendo los criterios de información AIC, AICC, BIC.
pronostico<- forecast(modelo,12,level=95)
Pronósticos con intervalos de confianza solicitados:
matriz.pronosticos <-data.frame(pronostico$mean,pronostico$lower,pronostico$upper)
matriz.pronosticos
## pronostico.mean X95. X95..1
## 1 7.173308 6.596825 7.749791
## 2 6.550987 5.951976 7.149998
## 3 6.298425 5.665753 6.931097
## 4 5.006753 4.351700 5.661806
## 5 5.085862 4.423149 5.748574
## 6 5.450688 4.787313 6.114064
## 7 6.344240 5.680510 7.007970
## 8 6.806382 6.141026 7.471739
## 9 5.821779 5.154685 6.488874
## 10 5.742824 5.074798 6.410850
## 11 6.361942 5.693691 7.030193
## 12 5.875419 5.207166 6.543672
Finalmente, se llega a la conclusión de que la función auto.arima es útil y de fácil entendimiento.
Aunque es necesario que se evalúen las series en un estudio paso a paso, y en base a la experiencia y a lo que dicta la teoría econométrica (estacionariedad, evaluación del modelo, capacidad predictiva…), se elaboren los modelos.