Modelos basados en procesos estocásticos

Modelización univariante
Procesos estocásticos
procesos autorregresivos
procesos de medias móviles
ARIMA
Author

Javier Sánchez García

Published

January 1, 2009

Como se ha visto anteriormente, las series temporales están sujetas a cierto grado de aleatoriedad o incertidumbre (tendencia estocástica), y a cierto componente cierto que determina su comportamiento a largo plazo (tendencia determinística). Formalmente, una variable aleatoria que evoluciona en el tiempo y soporta efectos o tendencias aleatorias es un proceso estocástico.

Existen multitud de fórmulas para describir el comportamiento de procesos estocásticos, siendo algunas de ellas tremendamente útiles para modelizar el comportamiento empírico de las series temporales. De hecho, el poder modelizar una serie temporal mediante un proceso estocástico permite predecir sin necesidad de conocer la estructura o los factores que influyen en la serie, sino simplemente describiendo el comportamiento de la misma hasta la fecha.

Proceso autorregresivo

Un proceso autorregresivo consiste, tal y como el nombre indica, en un proceso estocástico que se regresa sobre si mismo más un término error.

\[ Y_t = c + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \ldots + \phi_p Y_{t-p} + u_t = c + \sum_{i=1}^{p} \phi_i Y_{t-i} + u_t \] siendo \(Y_t\) el proceso estocástico, \(\phi_{0}, \phi_1, \dots, \phi_p\) los coeficientes del término independiente y el proceso retardado \(p\) veces respectivamente, y \(u_t\) el término error. Al modelo autorregresivo de orden (máximo retardo) \(p\) se le conoce como AR(\(p\)).

Para estimar un modelo autorregresivo, la serie debe de ser estacionaria previamente. Además, el comportamiento de muchísimas series temporales agregadas, especialmente las económicas, suele aproximarse bien con un modelo AR(1) o AR(2).

data("AirPassengers")
library(forecast, quietly=TRUE)
autoplot(AirPassengers) + ggplot2::theme_classic()

ndiffs(AirPassengers, alpha=0.05, test=c("adf"), type=c("level")) #Test KPSS secuencial para saber cuantas diferencias hacen falta para que la serie sea estacionaria
[1] 1
autoplot(diff(AirPassengers)) + ggplot2::theme_classic() #Hay que tomar logaritmos previamente pues la variabilidad no es constante

autoplot(diff(log(AirPassengers))) + ggplot2::theme_classic()#Efectivamente

AR.2 <- Arima(diff(log(AirPassengers)), order = c(2,0,0)) #Modelo autorregresivo orden 2
summary(AR.2)
Series: diff(log(AirPassengers)) 
ARIMA(2,0,0) with non-zero mean 

Coefficients:
         ar1      ar2    mean
      0.2359  -0.1725  0.0096
s.e.  0.0826   0.0833  0.0092

sigma^2 = 0.01073:  log likelihood = 122.8
AIC=-237.6   AICc=-237.31   BIC=-225.75

Training set error measures:
                       ME      RMSE        MAE MPE MAPE     MASE        ACF1
Training set 9.490067e-05 0.1024837 0.08866769 NaN  Inf 2.568306 -0.01487092

Proceso de medias móviles

Un proceso de medias móviles basa la regresión de un proceso estocástico en el término error y sus retardos:

\[ Y_t = c + u_t + \theta_1 u_{t-1} + \theta_2 u_{t-2} + \ldots + \theta_q u_{t-q} = c + u_t + \sum_{j=1}^{q} \theta_j u_{t-j} \]

donde los coeficientes \(\theta_1, \theta_2, \ldots, \theta_q\) miden el efecto de los retardos del término error \(u_t, u_{t-1}, u_{t-2}, \ldots, u_{t-q}\) sobre el proceso \(Y_t\) .

Al igual que el proceso autorregresivo, es necesario que la serie sea estacionaria para modelizarla como un proceso de medias móviles de orden \(q\) o MA(\(q\) ).

MA.2 <- Arima(diff(log(AirPassengers)), order = c(0,0,2))
summary(MA.2)
Series: diff(log(AirPassengers)) 
ARIMA(0,0,2) with non-zero mean 

Coefficients:
         ma1      ma2    mean
      0.2019  -0.3409  0.0096
s.e.  0.1196   0.1879  0.0073

sigma^2 = 0.0105:  log likelihood = 124.19
AIC=-240.38   AICc=-240.09   BIC=-228.53

Training set error measures:
                       ME      RMSE        MAE MPE MAPE     MASE      ACF1
Training set 0.0001935616 0.1014078 0.08817457 NaN  Inf 2.554023 0.0358125

Modelo ARIMA

A menudo el mejor modelo para una serie temporal consiste en una combinación de un modelo AR de orden \(p\) y un modelo MA de orden \(q\) , es decir, un modelo ARMA. Además, se le añade que la serie tiene que ser estacionaria, lo cual se consigue diferenciando (cuyo inverso es la integración). Entonces, si una serie se hace estacionaria diferenciando \(d\) veces, se le denomina integrada de orden \(d\) o I(\(d\) ).

La combinación de los tres componentes da lugar al modelo ARIMA(\(p,d,q\) ), que agrupa todos los componentes de los procesos estocásticos vistos hasta el momento.

\[ Y_t = c \sum_{i=1}^{p} \phi_i Y_{t-i} + u_t + \sum_{j=1}^{q} \theta_j u_{t-j} \]

ARIMA.1 <- Arima(log(AirPassengers), order=c(2,1,2))
summary(ARIMA.1)
Series: log(AirPassengers) 
ARIMA(2,1,2) 

Coefficients:
         ar1     ar2      ma1      ma2
      0.2432  0.2677  -0.0867  -0.6813
s.e.  0.1674  0.1596   0.1315   0.1211

sigma^2 = 0.009891:  log likelihood = 128.89
AIC=-247.78   AICc=-247.34   BIC=-232.97

Training set error measures:
                     ME       RMSE        MAE       MPE     MAPE      MASE
Training set 0.02028092 0.09771061 0.08380607 0.3511798 1.516783 0.6923716
                    ACF1
Training set 0.005928279