Modelos Estacionarios

Las series de tiempo frecuentemente tendrán componentes bien definidos, como la tendencia o el patrón estacional. Una regresión lineal bien elegida puede servir para estos componentes no estacionarios. Sin embargo, los residuos están usualmente correlacionados en el tiempo, y esto no se toma en cuenta a la hora de hacer la regresión. En esta sesión se verán modelos estacionarios que pueden ser adecuados para series residuales que no contienen tendencias o ciclos estacionales. Estos modelos estacionarios pueden ser combinados con modelos de regresión para obtener pronósticos. Los modelos autorregresivos introducidos en sesiones pasadas ofrecen muchas veces modelos satisfactorios para las series de tiempo residuales.

Series Estrictamente Estacionarias

Una serie de tiempo \(x_t\) es estrictamente estacionaria si la distribución estadística conjunta de \(x_{t_1}, ..., x_{t_m}\) es la misma que la distribución conjunta de \(x_{t1+m},...,x_{tn+m}\) para todo \(t_1,...,t_n\) y \(m\), por lo tanto, la distribución no varía después de un cambio arbitrario de tiempo. Se debe notar que la estacionariedad estricta implica que la media y la varianza son constantes en el tiempo y la autocovarianza \(Cov(x_t,x_s)\) solo depende del rezago \(k = |t-s|\) y puede ser escrita como \(y(K)\). Si una serie no estrictamente estacionaria pero la media y la varianza son constantes en el tiempo y la autocovarianza solo depende del rezago, la serie tenrdrá estacionariedad de segundo orden. La estacionariedad es una idealización que propiedad en los modelos. Si se ajusta un modelo estacionario a los datos, se asume que nuestra data es una realización de un proceso estacionario. Es por eso que el primer paso para realizar este tipo de ajuste es observar si existe alguna evidencia de tendencia o afecto estacional, y si es el caso, removerla.

Modelos de Mevias Móviles

Proceso MA(q)

Un proceso de medias móviles (MA) de orden \(q\) es una combinación lineal del término de ruido blanco y de los más recientes \(q\) términos de ruido blanco pasados, y está definida así:

\[ x_t = w_t+\beta_1w_{t-1}+...+\beta_q w_{t-q} \] Donde \(w_t\) es un proceso de ruido blanco con media 0 y varianza \(\sigma_w^2\). La ecuación anterior puede ser reescrita en términos del operador de rezago.

\[ x_t = (1+\beta_1B+...+\beta_qb^q)w_t = \phi_q(B)w_t \] Donde \(\phi_q\) es un polinomio de orden \(q\). Ya que los procesos MA consisten en sumas finitas de términos de ruido blanco estacionarios, estos son estacionarios y por lo tanto tienen una media y una autocovarianza que no varía en el tiempo.

Simulación en R

La simulación de un proceso MA(q) puede ser implementada en R, el siguiente código muestra la simulación de un proceso de Medias Móviles en R con parámetros \(\beta_1=0.8, \beta_2=0.6 \text{ y } \beta_3=0.4\).

Las dos últimas líneas del código muestran os gráficos del proceso MA(3) y su correlograma. Se puede observar que este proceso tiene en sus primeras 3 autocorrelaciones significancia diferente de 0.

Ajuste de un proceso de Medias Móviles

Un modelo MA(q) puede ser ajustado en R usando la función arima con la función order fijada a c(0,0,q). De esta forma diferente a la función ar , la función arima minimiza la suma condicional de cuadrados de los valores estimados de los parámetros y devolverá estos si method=c(“CSS”) es especificado o usados como valores iniciales para la estimación por máxima verosimilitud. En el siguiente código se ajusta un modelo de medias móviles para la serie simulada anteriormente.

## 
## Call:
## arima(x = x, order = c(0, 0, 3))
## 
## Coefficients:
##          ma1     ma2     ma3  intercept
##       0.7898  0.5665  0.3959    -0.0322
## s.e.  0.0307  0.0351  0.0320     0.0898
## 
## sigma^2 estimated as 1.068:  log likelihood = -1452.41,  aic = 2914.83

Tal y como se esperaba, la serie estimada tiene valores estimados en parámetros casi idénticos a los valores simulados, todos significativos. Además, como se esperaba el intercepto no es singificativamente diferentes de su valor de parámetros subyacente de cero.

El Proceso Arma

Recapitulando los conceptos anteriores, un proceso autoregresivo de orden \(p\), es un AR(p) si: \[ x_t = \alpha_1x_{t-1}+\alpha_2x_{t-2}+...+\alpha_px_{t-p}+w_t \] Donde \(w_t\) es un ruido blanco y los \(\alpha_i\) son parámetros del modelo. Una clase muy útil de modelo son obtenidos cuando los términos AR y MA son puestos juntos en la misma expresión. Una serie de tiempo \(x_t\) sigue un proceso autoregresivo de medias móviles (ARMA) de orden (p,q), denotado como ARMA(p,q), cuando:

\[ x_t = \alpha_1 x_{t-1} + \alpha_2 x_{t-p} + w_t + \beta_1 w_{t-1} + \beta_2 w_{t-2} + ... + \beta_q w_{t-q} \] Donde \(w_t\) es el ruido blanco. Esta ecuación puede ser representada en términos del operador de rezago y reordenada en la forma polinomial más concisa.

\[ \phi(B)x_t = \phi_q(B)w_t \] Los siguientes puntos acerca del proceso ARMA(p,q) deben ser considerados:

a.- El proceso estacionario si las raíces de \(\theta\) exceden a la unidad en un valor absoluto.

b.- El proceso es invertible cuando las raíces de \(\phi\) exceden todas a la unidad en un valor absoluto.

c.- El modelo AR(p) es un caso especial de un proceso ARMA(p,0).

d.- El modelo MA(q) es un caso especial de un modelo ARMA(0,q).

e.- Parsimonia paramétrica. Cuando se ajustan los datos, un modelo ARMA será a menudo más eficiente de los parámetros que un modelo AR o MA.

Simulación y ajuste en R

El proceso ARMA, puede ser simulado usando a función arima.sin, que toma una lista de coeficientes representando a los parámetros AR y MA. Un modelo AMRA(p,q) puede ser ajustado haciendo uso de la función arima con la función order fijada en c(p,0,q). El algoritmo de ajuste procede de manera similar al proceso MA. El código debajo simula un proceso ARMA(1,1) con parámetros \(\alpha = 0.6\) y \(\beta = 0.5\) y estima los parámetros del modelo para la serie simulada.

La estimación vendrá dada por:

##          ar1          ma1    intercept 
## -0.596966371  0.502703368 -0.006571345

Como era de esperarse, las estimaciones de los parámetros \(\alpha\) y \(\beta\) tienen valores muy cercanos a los parámetros subyacentes del modelo.

Pronósticos

La función predict puede ser usada para predecir valores de una regresión, esta función estima también los errores estándar asociados con el modelo de regresión. Para los modelos ARMA usando la función arma. La función predict solamente requiere el número de períodos adelante para el pronóstico deseado.

Una vez que se importan los datos, se crea la serie de tiempo y se estima el modelo usando a función arima. Luego de esto se hace uso de la función predict para hacer las predicciones a partir del modelo estimado.

Luego se crea una serie de tiempo que contiene a la predicción, especificando el valor e inicio y a frecuencia de la misma, que este caso es trimestral.

Los valores de la serie pueden ser visualizados de la siguiente manera:

##           Qtr1      Qtr2      Qtr3      Qtr4
## 2002                      9737.662  9811.786
## 2003  9886.538  9961.924 10037.948 10114.615
## 2004 10191.933 10269.905 10348.538 10427.836
## 2005 10507.807 10588.454

Los errores estándar pueden también ser observados, y se notará en estos que a medida que avanza el tiempo pronósticado el error es mayor.

##           Qtr1      Qtr2      Qtr3      Qtr4
## 2002                      44.37924  70.82840
## 2003  90.08688 106.14778 120.30243 133.16353
## 2004 145.07873 156.26756 166.87906 177.01986
## 2005 186.76929 196.18829

Finalmente, para observar gráficamente el pronóstico y los valores observados hacemos uso de la siguiente sintáxis:

Modelos No Estacionarios

Ya se ha visto que existen diversas series de tiempo que no son estacionarias a causa de las tendencias o los efectos estacionales que presentan. En particular, los caminos aleatorios, que caracterizan a muchos tipos de series, son no estacionarios, pero pueden ser transformadas a series estacionarias haciendo diferenciación de primer orden para las mismas. En esta sesión se extenderán los modelos ARMA. Como las series diferenciadas necesitan agregarse (o integrarse) para recuperar a la serie original, el proceso estocástico subyacente es llamado autorregresivo integrado de medias móviles, que abreviadamente es ARIMA.

Modelos Arima No Estacionales

Diferenciación de Series

Diferenciando una serie, se pueden remover tendencias, ya sean estas tendencias estocásticas, como un camino aleatorio, o determinísticas como en el caso de una tendencia lineal. El caso de un proceso random walk, \(x_t = x_{t-1}+w_t\), la serie diferenciada de primer orden es ruido blanco {wt}, es decir, \(\triangle x_t = x_t - x_{t-1} = w_t\), por lo tanto, es estacionario. La función arima en R no permite que los modelos diferenciados que se ajustan incluyan una constante. Si se quiere ajustar un modelo diferenciado a una tendencia determinística en R, se necesita hacer una diferenciación, la media ajusta la serie diferenciada para que la media sea cero, y entonces se estima un modelo ARMA a la serie diferenciada y ajustada usando la función arima con la opción include.mean fijada en FALSE y con d=0. El código siguiente muestra una serie con tendencia en donde se obtendrá la diferenciación y se realizará un gráfico de comparación entre la serie diferenciada y la observada.

Y en la serie diferenciada, se puede observar que para el gráfico diferenciado, que ya no puede ubicar una tendencia ni ningún patrón estacional en dicha serie.

El Modelo Integrado

Una serie {\(x_t\)} es integrada de orden \(d\), denorada como \(I(d)\), si la diferencia de orden \(d\) de la serie es un ruido blanco, es decir \(\triangle^d x_t = w_t\). Donde \(\triangle^d = (1-B)^d\), donde B es el operador de rezago, una serie será integrada de orden \(d\) si:

\[ (1-B)^d x_t = w_t \] El proceso de camino aleatorio es un caso especial de \(I(1)\). El comando diff puede ser usado para obtener diferenciaciones de mayor orden, ya sea por la aplicación repetida de este o el ajuste de \(d\) en los valores requeridos. Por ejemplo, diff(diff(x)) y diff(x, d=2) producirán ambos series diferenciadas de segundo orden para x. La diferenciación de segundo orden puede ser útil a veces para suavizar una serie con una curva de tendencia subyacente en el ruido blanco.

El parámetro lag puede ser usado para fijar el rezago de la diferenciación. Por defecto, lag está fijado en la unidad, pero otros valores pueden ser útiles para remover los efectos aditivos estacionales. Por ejemplo, dif(x, lag=2) removerá la línea de tendencia y los efectos aditivos estacionales en una serie con frecuencia mensual.

Definición y Ejemplos

Una serie de tiempo {\(x_t\)} sigue un proceso ARIMA(p,d,q) si las diferencias de orden d para la serie \(d\) siguen un proceso ARMA(p,q). Si se introduce \(y_t = (1-B)^d x_t\), entonces \(\phi_p (B)y_t = \phi_q(B)w_t\). Podemos sustituir para \(y_t\) y se obtiene la forma más breve del proceso ARIMA(p,d,q):

\[ \phi_p(B)(1-B)^d x_t = \phi_q(B) w_t \] Donde \(\phi_p\) y \(\phi_q\) son polinomios de orden \(p\) y \(q\), respectivamente. Algunos ejemplos de modelos ARIMA son:

    1. \(x_t = x_{t-1} + w_t + \beta w_{t-1}\), donde \(\beta\) es un parámetro del modelo. Este modelo es un ARIMA(0,1,1), que es llamado a veces modelo integrado de medias móviles, denotado como IMA(1,1). En general, ARIMA(0,d,q) = IMA(d,q).
    1. \(x_t = \alpha x_{t-1} + x_{t-1} + \alpha x_{t-2} + w_t\), donde \(\alpha\) es un parámetro del modelo. Este modelo es un ARIMA(1,1,0), que es llamado a veces modelo autoregresivo integrado, denotado como ARI(1,1). En general, ARIMA(p,d,0) = ARI(p,d).

Simulación y ajuste

Un proceso ARIMA(p,d,q) puede ser ajustado haciendo uso de la función arima con el parámetro order fijado en c(p,d,q). Estos procesos también pueden ser simulados en R escribiendo el código apropiado. Por ejemplo, en el código debajo, data para el modelo \(ARIMA(1,1,1) x_t = 0.5x_{t-1} + x_{t-1} - 0.5x_{t-2} + w_t + 0.3w_{t-1}\) es simulada y posteriormente ajustada.

## 
## Call:
## arima(x = x, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1     ma1
##       0.4235  0.3308
## s.e.  0.0433  0.0450
## 
## sigma^2 estimated as 1.067:  log likelihood = -1450.13,  aic = 2906.26

La serie se puede graficar de la siguiente forma:

El escribir un código propio tiene la ventaja de que se puede comprender mejor el modelo estimado. Sin embargo, R ofrece una función que permite simular procesos ARIMA, esta función es arima.sim, donde los parámetros modelo y n especifican el modelo y la longitud de la simulación, respectivamente:

## 
## Call:
## arima(x = x, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1     ma1
##       0.5567  0.2502
## s.e.  0.0372  0.0437
## 
## sigma^2 estimated as 1.079:  log likelihood = -1457.45,  aic = 2920.91

Modelos Arima Estacionales

Un modelo ARIMA estacional usa la diferenciación en el rezago igual al número de períodos \(s\) para remover efectos aditivos estacionales. El modelo ARIMA estacional incluye términos autoregresivos y de medias móviles en el rezago \(s\). El modelo \(ARIMA(p,d,q)(P,D,Q)_S\) puede resumirse en la siguiente expresión usando el operador rezago:

\[ \phi_p(B)^s\phi_p(1-B^s)^D(1-B)^d x_t = \phi_Q(B^s)\phi_q(B)w_t \] Donde \(\phi_P, \phi_p, \phi_Q\) y \(\phi_q\) son polinomios de orden \(P, p, Q\) y \(q\), respectivamente. En general, el modelo es no estacionario, aunque si D = d = 0 y las raíces de los polinomios de la ecuación exceden todas a la unidad en términos absolutos, el modelo resultante será estacionario. Como ejemplo, consideremos una serie de tiempo trimestral que es la suma de una tendencia lineal, 4 términos aditivos y un término de ruido blanco:

\[ x_t = a + b_t + s_{[t]} + w_t \] Donde [t] es el resto después de dividir \(t\) entre 4, entonces \(s_{[t]} = S_{[t-4]}\). Primero, consideremos la diferenciación de primer orden en el rezago 4 solamente:

\[ (1-B^4) x_t = x_t - x_{t-4} \\ = a + bt - (a+b(t-4)) + s_{[t]} - s_{[t-4]} + w_t - w_{t-4} \\ = 4b + w_t - w_{t-4} \] Formalmente, el modelo puede ser expresado como un \(ARIMA(0,0,0)(0,1,1)_4\) con un término constante de \(4b\). Ahora suponiendo que se aplica una diferenciación de primer orden en el rezago 1 antes de diferenciar el rezago 4, entonces:

\[ (1-B^4)(1-B)x_t = (1-B^4)(b + s_{[t]}- s_{[t-1]} + w_t + w_{t-1}) \\ = w_t - w_{t-1} + w_{t-4} + w_{t-5} \] Que es un \(ARIMA(0,1,1)(0,1,1,)_4\) sin término constante.

Estimación en R

Los modelos 𝐴𝑅𝐼𝑀𝐴 estacionales pueden tener un número largo de parámetros y combinaciones de términos. Por lo tanto, es apropiado que se prueben cierto número de modelos cuando se ajustan los datos y se deberá elegir el modelo de mejor ajuste haciendo uso del criterio AIC. En R, para ajusta modelos 𝐴𝑅𝐼𝑀𝐴 se hace uso de la función arima, especificando la opción seasonal para indicar el componente estacional. Para hacer la comparación de los modelos podemos estimar el AIC y hacer la comparación de los modelos.

## [1] -946.6604
## [1] -930.0554

Esta Sintaxis permite comparar dos modelos en base a su AIC, el primer modelo que tiene la forma \(ARIMA(1,1,0)(1,0,0)_4\) es el que tiene una mejor capacidad explicativa.

Modelos ARCH

Estos modelos sirven para hacer modelamiento de la volatilidad, ya que se requiere un modelo que permita cambios condicionales en la varianza. Una aproximación a esto es hacer uso de un modelo autoregresivo para la varianza. Esto lleva a la siguiente definición: una serie {\(e_t\), es autoregresiva de heterocedasticidad de primer orden, denotada como \(ARCH(1)\), si:

\[ e_t = w_t\sqrt{\alpha_0 + \alpha_1e_{t-1}^2} \]

Para ver como se introduce la volatilidad, se usa la ecuación anterior para calcular la varianza:

\[ Var(e_t) = E(e_t^2) \\ = E(w_t^2)E(\alpha_0+\alpha_1 e_{t-1}^2) \\ = E(\alpha_0 + \alpha_1 e_{t-1}^2) \\ = \alpha_0 + \alpha_1Var(e_{t-1}) \] Si se compara esta ecuación con el proceso \(AR(1)x_t=\alpha_0+\alpha_1x_{t-1}+w_t\) se podrá observar que la varianza de un proceso ARCH(1) se comporta de la misma manera que un proceso AR(1).

Extensiones y modelos GARCH

Un modelo ARCH de primer orden puede ser extendido hasta el p-ésimo orden incluyendo rezagos más altos. Un proceso ARCH(p) está dado por:

\[ e_t = w_t\sqrt{\alpha_0 + \sum_{t=i}^p \alpha_p e_{t-i}^2} \] Donde \(w_t\) es de nuevo un ruido blanco con media 0 y varianza unitaria. Una extensión adicional, muy usado en aplicaciones financieras es el modelo ARCH generalizado denorado como GARCH(q,p), que tiene al modelo ARCH(p) como un caso especial GARCH(0,p). Una serie sigue un proceso GARCH(q,p)si:

\[ e_t = w_t \sqrt{h_t} \] Donde:

\[ h_t = \alpha_0 + \sum_{i=1}^p \alpha_i e_{t-i}^2 + \sum_{j=1}^q \beta_j h_{t-j} \] Y \(\alpha_i\) y \(\beta_j(i=0,1,...,p; j=1,...,q)\) son parámetros del modelo. En R un modelo GARCH puede ser ajustado haciendo uso de la función GARCH del paquete tseries.

Simulación y ajuste del modelo

El siguiente código simula n GARCH(1,1) de forma \(a_t=w_t\sqrt{h_t}\), donde \(h_t=\alpha_0 +\alpha_1 a_{t-1} + \beta_1 h_{t-1}\) con \(\alpha_1 + \beta_1 < 1\) para asegurar estabilidad. La serie simulada tomará lugar en el vector ay se dibujarán los correlogramas asociados a este proceso.

El proceso tendrá el siguiente gráfico:

Los correlogramas serán los siguientes

La serie a exhibe características de una serie 𝐺𝐴𝑅𝐶𝐻 no correlacionada,pero el cuadrado de los valores de la misma presenta correlación. La siguiente sintaxis presenta el ajuste de la serie simulada haciendo uso de la función garch. La función por defecto es 𝐺𝐴𝑅𝐶𝐻(1,1), que suele proveer un modelo adecuado, pero modelos de orden superior pueden ser especificados con el parámetro order=c(p, q) para elegir a 𝑝 y a 𝑞.

## Warning: package 'tseries' was built under R version 4.0.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## 
## Call:
## garch(x = a, grad = "numerical", trace = FALSE)
## 
## Coefficient(s):
##      a0       a1       b1  
## 0.09876  0.36659  0.24415

En el ejemplo, se ha usado el parámetro Trace=FALSEpara suprimir la salida y el valor numérico de la gradiente grad=numerical, que es ligeramente más robusto que lo que está por defecto.

Bibliografía

  • Cowpertwait, P. S., & Metcalfe, A. V. (2009). Introductory time series with R. Springer Science & Business Media.

  • Shumway, R. H., & Stoffer, D. S. (2010). Time series analysis and its applications: with R examples. Springer Science & Business Media.