Series estacionarias

Comportamiento predecible
Estacionareidad
media
varianza
logaritmos
autocorrelación
Author

Javier Sánchez García

Published

January 1, 2005

Para realizar un análisis de regresión con series temporales y poder extraer inferencias, primero es necesario que las series temporales sean estacionarias. Para ello, se tienen que dar tres condiciones:

\[ E(y_t) = \mu \tag{1}\]

\[ \sigma^2(y_t)=\sigma^2 \tag{2}\]

\[ \lim_{p \to \infty} E(y_ty_{t-p})=0 \tag{3}\]

que conocemos como estacionareidad en media, varianza y autocorrelación.

Como hemos visto, la primera condición se consigue con la diferenciación, o bien la inclusión de una tendencia determinística. Veamos que pasa con la de la segunda y tercera condición.

Estacionareidad en varianza

Si una serie no es estacionaria en varianza, se puede conseguir que lo sea mediante la aplicación de logaritmos naturales.

data("BJsales")
library(forecast, quietly=TRUE)
library(ggplot2, quietly=TRUE)
autoplot(BJsales) + theme_classic() #Autoplot de una serie de un indicador adelantado de ventas

autoplot(log(BJsales)) + theme_classic() #Autoplot de su logaritmo

La clave de la interpretación está en la escala del eje Y. Cuando se representa la serie, esta varía desde 200 a 260. Al aplicar logaritmos naturales, la serie varía desde en el rango [5.3, 5.6], con lo que la varianza será mucho menor. El logaritmo suaviza la varianza de la serie. Sin embargo, la serie no tiene una media constante.

library(forecast, quietly = TRUE)
autoplot(diff(BJsales,1)) + theme_classic() #Autoplot de las primeras diferencias de la serie.

autoplot(diff(log(BJsales)),1) + theme_classic() #Autoplot del logaritmo de las primeras diferencias

Al aplicar primeras diferencias, se eliminan las tendencias y la media es constante. Si antes se aplican logaritmos, la serie será estacionaria en media y varianza, como se aprecia al analizar el eje y de las gráficas.

Autocorrelación

Para medir el grado de autocorrelación de orden \(r\) una serie, se emplea el coeficiente de autocorrelación (\(\rho\))

\[ \rho_r = \frac{\sum_{t=r+1}^{n}(y_t-\bar{y})(y_{t-r}-\bar{y})}{\sum_{t=1}^{n}(y_t - \bar{y})^2} \]

siendo \(n\) el tamaño de la serie temporal.

Normalmente, este coeficiente se representa para los \(r\) retardos en un gráfico de autocorrelación o correlograma:

ggAcf(BJsales) + theme_classic() #Correlograma del indicador adelantado de ventas

ggAcf(diff(log(BJsales),1)) + theme_classic() #Correlograma del indicador de ventas log-diferenciado

Es evidente que la serie log-diferenciada está mucho menos autocorrelacionada conforme avanza el tiempo.

Contraste de estacionareidad

Aunque un análisis visual siempre arroja información sobre si una serie es o no estacionaria, existen test estadísticos que permiten contrastarlo formalmente. Es el caso del contraste KPSS.

Contraste KPSS:

  • Hipótesis nula (H0): La serie es estacionaria.

  • Hipótesis alternativa. (H1): La serie no es estacionaria.

library(tseries, quietly=TRUE)
kpss.test(BJsales.lead) #Test para serie no estacionaria (se rechaza nula)

    KPSS Test for Level Stationarity

data:  BJsales.lead
KPSS Level = 2.556, Truncation lag parameter = 4, p-value = 0.01
kpss.test(diff(log(BJsales),1)) #Test para serie estacionaria (se acepta nula)

    KPSS Test for Level Stationarity

data:  diff(log(BJsales), 1)
KPSS Level = 0.12482, Truncation lag parameter = 4, p-value = 0.1

Ejercicio: Cargue, inspeccione y analize la estacionareidad en media, varianza y autocorrelación de la serie LakeHuron. Si no es estacionaria, tránsformela para que lo sea. Contraste formalmente la estacionareidad de la serie original, y de la serie transformada.