Capítulo 4 Procesos No Estacionarios Univariados

4.1 Definición y formas de No Estacionariedad

Hasta ahora hemos planteado una serie de técnicas de regresión (AR, MA, ARMA, ARIMA, ARIMAX, etc.) que aplican sólo a procesos o series estacionarias. Sin embargo, no hemos proporcionado una prueba estadística para determinar si una serie es estacionaria. Ese es uno de los objetivos de esta sección.

Adicionalmente, en esta sección relajaremos la definición de estacionariedad y plantearemos pruebas para determinar cuándo una serie es estacionaria bajo tres diferentes especificaciones:

  1. Estacionariedad alrededor de una tendencia determinística;

  2. Estacionariedad alrededor de una media, y

  3. Estacionariedad alrededor del cero.

A continuación, discutiremos cómo es posible que una serie sea estacionaria alrededor de una tendencia determinística. Diremos que una tendencia es determinística si ésta puede ser aproximada o modelada por un polinomio en función de \(t\), el cual puede aplicarse a la serie original o a alguna transformación de ella, como su logaritmo.

Bajo este enfoque, el proceso está lejos de cumplir con la definición de estacionariedad que hemos establecido en capítulos previos, pero relajaremos el supuesto y reconoceremos que una serie puede ser estacionaria en varianza bajo una tendencia determinística. Así, diremos que la serie será descrita por una ecuación dada por: \[\begin{equation} Y_t = \sum^m_{j = 0} \delta_j t^j + X_t \tag{4.1} \end{equation}\]

Donde \(X_t\) es un proceso \(ARMA(p, q)\) con media cero, que se puede ver como: \[\begin{equation} \alpha(L) X_t = \beta(L) U_t \end{equation}\]

Entonces, los momentos y varianza de la ecuación (4.1) estarán dados por: \[\begin{equation} \mathbb{E}[Y_t] = \sum^m_{j = 0} \delta_j t^j = \mu_t \tag{4.2} \end{equation}\]

Dada la ecuación (4.2) podemos plantear la siguiente ecuación de covarianzas: \[\begin{eqnarray} \mathbb{E}[(Y_t - \mu_t) \cdot (Y_{t+\tau} - \mu_{t+\tau})] & = & \mathbb{E}[X_t \cdot X_{t+\tau}] \nonumber \\ & = & \gamma_X(\tau) \tag{4.3} \end{eqnarray}\]

Utilizando el resultado de la ecuación (4.3) podemos establecer que: \[\begin{equation} \mathbb{E}[(Y_t - \mu_t)^2] = \mathbb{E}[X_t^2] = \sigma_X^2 \tag{4.4} \end{equation}\]

Así, las ecuaciones (4.2) y (4.4) significan que el proceso descrito por la ecuación (4.1) es estacionario en varianza, aunque no en media. De esta forma, a partir de este momento diremos que una serie será estacionaria alrededor de una tendencia determinística si cumple con las condiciones establecidas en las ecuaciones (4.1), (4.2) y (4.4).

Dicho lo anterior, estudiaremos el concepto de raíz unitaria de un proceso estocástico o de una serie de tiempo. Partamos de plantear que un proceso AR(1) tiene raíz unitaria cuando el coeficiente \(a_1 = 1\), es decir: \[\begin{equation} Y_t = Y_{t-1} + U_t \tag{4.5} \end{equation}\]

Donde \(U_t\) es un proceso puramente aleatorio con media cero, varianza constante y autocovarianza cero (0), al cual nos referiremos simplemente como ruido blanco. Supongamos ahora que incluimos un término constante en la ecuación (4.5), de forma que tenemos: \[\begin{equation} Y_t = \delta + Y_{t-1} + U_t \tag{4.6} \end{equation}\]

Tomando a la ecuación (4.6) y suponiendo que existe un valor inicial \(Y_0\) de la serie, podemos plantear la siguiente secuencia de expresiones: \[\begin{eqnarray*} Y_1 & = & \delta + Y_0 + U_1 \\ Y_2 & = & \delta + Y_1 + U_2 \\ & = & \delta + (\delta + Y_0 + U_1) + U_2 \\ & = & 2 \times \delta + Y_0 + U_1 + U_2 \end{eqnarray*}\]

Si repitiéramos la sustitución sucesiva anterior hasta el momento \(t\) encontraríamos que la ecuación de la solución general que describe a un \(AR(1)\) con término constante que tiene raíz unitaria es de la forma: \[\begin{equation} Y_t = t \delta + Y_0 + \sum_{i=1}^t U_i \tag{4.7} \end{equation}\]

La ecuación (4.7) es equivalente a la ecuación (4.1). A la ecuación (4.7) se le conoce como proceso con drift o con término constante. El parámetro \(\delta\) es el drift: determina la pendiente de la tendencia lineal \(\mathbb{E}[Y_t] = Y_0 + \delta t\), de modo que un valor \(\delta > 0\) produce una deriva ascendente en la trayectoria esperada de la serie. La acumulación de errores \(\sum_{i=1}^t U_i\) no es consecuencia del drift sino de la raíz unitaria: cada innovación queda incorporada de forma permanente en el nivel de la serie.

Si revisamos el comportamiento de sus momentos y varianza de la ecuación (4.7) encontramos que: \[\begin{eqnarray*} \mathbb{E}[Y_t] & = & Y_0 + \delta t = \mu_t \\ Var[Y_t] & = & t \sigma^2 = \gamma(0, t) \\ Cov(Y_t, Y_{t+\tau}) & = & t \sigma^2 = \gamma(t, \tau) \end{eqnarray*}\]

De esta forma, la ecuación (4.7) no describe un proceso estacionario: tanto la media como la varianza dependen de \(t\), por lo que el proceso es no estacionario en media y en varianza. Ahora hagamos un resumen y acordemos notación que se utilizará en esta sección. Supongamos un proceso o serie de tiempo que es descrito por la siguiente ecuación: \[\begin{equation} Y_t = \delta + Y_{t-1} + X_t \tag{4.8} \end{equation}\]

Donde \(X_t\) es un \(ARMA(p, q)\) con media cero. Si definimos a \(\Delta Y_t = Y_t - Y_{t-1}\), entonces la ecuación (4.8) la podemos escribir como: \[\begin{equation} \Delta Y_t = \delta + X_t \tag{4.9} \end{equation}\]

A la ecuación (4.9) la denominaremos como un proceso estacionario en diferencias o simplemente como un proceso integrado. Así, utilizaremos la siguiente definición.

Sea un proceso estocástico \(Y\), decimos que es un proceso integrado de orden \(d\), \(I(d)\), si este puede transformarse a uno estacionario, que sea invertible, mediante la diferenciación del mismo \(d\)-veces, es decir: \[\begin{equation} (1 - L)^d Y_t = \delta + X_t \tag{4.10} \end{equation}\]

Donde \(X_t\) es un proceso \(ARMA(p, q)\). De lo cual se infiere que en la ecuación (4.10) \(Y_t\) será una \(ARIMA(p, d, q)\), el cual contiene \(d\) raíces unitarias. A estos procesos también se les conoce como procesos con tendencia estocástica.

Dada la discusión anterior, resumimos los dos tipos de procesos no estacionarios en media que estudiaremos: \[\begin{eqnarray*} Y_t & = & Y_0 + \delta t + U_t \\ Y_t & = & Y_0 + t \delta + \sum_{i = 1}^t U_i \end{eqnarray*}\]

El primer caso (tendencia determinística, TS) no es estacionario en media —la media crece como \(Y_0 + \delta t\)—, pero sí es estacionario en varianza: \(\text{Var}(Y_t) = \sigma^2\) es constante y los choques tienen un efecto transitorio. El segundo caso (tendencia estocástica, DS) tampoco es estacionario en media, pero además no lo es en varianza: \(\text{Var}(Y_t) = t\sigma^2 \to \infty\) cuando \(t \to \infty\), y los choques tienen un efecto permanente sobre el nivel de la serie.

4.2 Simulación: Caminata Aleatoria vs. Proceso Estacionario

Antes de presentar las pruebas formales, resulta útil visualizar la diferencia entre un proceso estacionario y uno con raíz unitaria. El siguiente ejemplo simula dos series de \(T = 300\) observaciones generadas con el mismo ruido blanco \(U_t \sim N(0,1)\): un \(AR(1)\) estacionario con \(\phi = 0.7\) y una caminata aleatoria (\(\phi = 1\)).

set.seed(2024)
T   <- 300
e   <- rnorm(T)

# AR(1) estacionario: phi = 0.7
x_ar <- numeric(T)
for (t in 2:T) x_ar[t] <- 0.7 * x_ar[t - 1] + e[t]

# Caminata aleatoria: phi = 1
x_rw <- numeric(T)
for (t in 2:T) x_rw[t] <- x_rw[t - 1] + e[t]

par(mfrow = c(1, 2))
plot(x_ar, type = "l", col = "darkblue",
     main = expression(paste("AR(1) estacionario (", phi, " = 0.7)")),
     ylab = expression(Y[t]), xlab = "t")
abline(h = mean(x_ar), col = "red", lty = 2)

plot(x_rw, type = "l", col = "darkred",
     main = "Caminata aleatoria (raíz unitaria)",
     ylab = expression(Y[t]), xlab = "t")
abline(h = 0, col = "red", lty = 2)
AR(1) estacionario vs. Caminata Aleatoria. Ambos procesos usan el mismo ruido blanco.

Figura 4.1: AR(1) estacionario vs. Caminata Aleatoria. Ambos procesos usan el mismo ruido blanco.

par(mfrow = c(1, 1))

La figura ilustra dos características clave. Primero, el \(AR(1)\) estacionario regresa continuamente a su media (línea roja punteada), mientras que la caminata aleatoria se aleja de ella de forma permanente. Segundo, los choques en el proceso estacionario tienen un efecto transitorio —que se disipa con el tiempo—, en tanto que los choques en la caminata aleatoria se acumulan y tienen un efecto permanente sobre el nivel de la serie.

En términos de sus momentos, la caminata aleatoria \(Y_t = Y_{t-1} + U_t\) con valor inicial \(Y_0 = 0\) satisface: \[\begin{eqnarray*} \mathbb{E}[Y_t] & = & Y_0 = 0 \\ \text{Var}(Y_t) & = & t \sigma^2 \rightarrow \infty \quad \text{cuando} \quad t \rightarrow \infty \end{eqnarray*}\]

La varianza crece con el tiempo, por lo que el proceso no es estacionario en varianza. Esta es la característica que las pruebas de raíces unitarias buscan detectar.

4.3 Pruebas de Raíces Unitarias

En esta sección plantearemos una serie de pruebas estadísticas para determinar cuándo una serie puede ser estacionaria bajo tres posibles casos:

  1. Estacionariedad alrededor de una tendencia determinística;

  2. Estacionariedad alrededor de una media, y

  3. Estacionariedad alrededor del cero.

A continuación, mostraremos como ejemplo la aplicación de las pruebas de raíces unitarias a la serie de Tipo de Cambio en forma logarítmica y de diferencias logarítmicas. Asumamos que determinamos el valor de los rezagos de la prueba con la regla propuesta por Schwert (1989), \(p = int\{ 4 (T/100)^{1/4} \}\), donde \(int\{ \cdot \}\) denota la parte entera. En la práctica, existen otras formas de determinar el valor de \(p\) –por ejemplo, elegirlo con un criterio de información como el de Akaike, o partir de un valor alto e ir eliminando rezagos no significativos–, pero es decisión del investigador cuál usar. Lo importante es que \(p\) sea suficiente para que los residuales de la regresión de prueba no presenten autocorrelación, pues de ello depende la validez de la prueba.

library(ggplot2)
library(dplyr)
library(stats)
library(MASS)
library(strucchange)
library(zoo)
library(sandwich)
library(urca)
library(lmtest)
library(vars)

#
load("BD/Datos_Ad.RData")

#
## Conversion a series de tiempo:
Datos <- ts(Datos_Ad[7: 11],
            start = c(2000, 1),
            freq = 12)

## Nombres cortos para las etiquetas de los paneles de las figuras
## (las series son las versiones desestacionalizadas *_Ad)
colnames(Datos) <- c("INPC", "TC", "CETE28", "IGAE", "IPI")

LDatos <- log(Datos)

DLDatos <- diff(log(Datos, base = exp(1)), 
                lag = 1, 
                differences = 1)

DaLDatos <- diff(log(Datos, base = exp(1)), 
                 lag = 12, 
                 differences = 1)

## Tamaño de muestra, fecha final y número de rezagos de las pruebas.
## Se calculan a partir de los datos --y no se fijan a mano-- para que el
## texto y los cuadros sigan siendo correctos si se actualiza la base.
T_obs <- nrow(Datos)

fin_num <- end(Datos)

meses_es <- c("enero", "febrero", "marzo", "abril", "mayo", "junio",
              "julio", "agosto", "septiembre", "octubre", "noviembre",
              "diciembre")

fin_txt <- paste(meses_es[fin_num[2]], "de", fin_num[1])

# Regla de Schwert (1989): p = parte entera de 4 (T/100)^(1/4)
p_lags <- floor(4*(T_obs/100)^(1/4))

Como primer paso, exploraremos las series en niveles (bajo una transformación logarítmica), como en la Figura 4.2, y en diferencias logarítmicas, como en la Figura 4.3. La Figura 4.4 muestra las diferencias anuales logarítmicas; finalmente, las Figuras 4.5 y 4.6 comparan las transformaciones entre sí. De dicha exploración, podemos concluir que las series parecen estacionarias en diferencias, pero no en niveles.

plot(LDatos, 
     plot.type = "m", nc = 2,
     col = c("darkgreen", "darkblue", "darkred", "orange", "purple"), 
     main = "Series en Logaritmos", 
     xlab = "Tiempo")
Series en Logaritmos

Figura 4.2: Series en Logaritmos

plot(DLDatos,
     plot.type = "m", nc = 2,
     col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
     main = "Series en Diferencias Logarítmicas",
     xlab = "Tiempo")
Series en Diferencias Logarítmicas

Figura 4.3: Series en Diferencias Logarítmicas

plot(DaLDatos,
     plot.type = "m", nc = 2,
     col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
     main = "Series en Diferencias Anuales Logarítmicas",
     xlab = "Tiempo")
Series en Diferencias Anuales Logarítmicas

Figura 4.4: Series en Diferencias Anuales Logarítmicas

Comp_D <- cbind(DLDatos, DaLDatos)
colnames(Comp_D) <- c(paste0("DL.", colnames(Datos)),
                      paste0("DaL.", colnames(Datos)))

plot(Comp_D,
     plot.type = "m", nc = 2,
     col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
     main = "Comparación de Series en Diferencias Mensuales y Anuales",
     xlab = "Tiempo")
Comparación de Series en Diferencias Mensuales y Anuales (Logarítmicas)

Figura 4.5: Comparación de Series en Diferencias Mensuales y Anuales (Logarítmicas)

Comp_N <- cbind(LDatos, DLDatos)
colnames(Comp_N) <- c(paste0("L.", colnames(Datos)),
                      paste0("DL.", colnames(Datos)))

plot(Comp_N,
     plot.type = "m", nc = 2,
     col = c("darkgreen", "darkblue", "darkred", "orange", "purple"),
     main = "Comparación de Series en Niveles y Diferencias",
     xlab = "Tiempo")
Comparación de Series en Niveles (Logaritmos) y en Diferencias Logarítmicas

Figura 4.6: Comparación de Series en Niveles (Logaritmos) y en Diferencias Logarítmicas

4.3.1 Dickey - Fuller (DF)

La presentación de las tres especificaciones de la prueba y de la estrategia secuencial para elegir entre ellas sigue a Enders (2015, cap. 4).

La prueba de Dickey y Fuller (Dickey and Fuller 1979, 1981) parte de una forma del proceso \(Y_t\) dada por: \[\begin{equation} Y_t = \sum_{j = 0}^m \delta_j t^j + X_t \tag{4.11} \end{equation}\]

Donde \(X_t\) es un \(ARMA(p, q)\) con media cero. Esta prueba asume que \(m = 1\), por lo que utilizaremos un modelo del tipo: \[\begin{equation} Y_t = \alpha + \delta t + \rho Y_{t-1} + U_t \tag{4.12} \end{equation}\]

Si el \(AR(1)\) planteado tiene raíz unitaria, es decir, \(\rho = 1\), entonces tendríamos: \[\begin{eqnarray*} Y_t & = & \alpha + \delta t + Y_{t-1} + U_t \\ \Delta Y_t & = & \alpha + \delta t + U_t \end{eqnarray*}\]

De esta forma, para determinar si una serie tiene raíz unitaria basta con probar la hipótesis nula de que \(H_0 : \rho = 1\), junto con las diferentes combinaciones que impliquen restricciones respecto a \(\delta\) y \(\alpha\).

En resumen, la prueba DF consiste en asumir un modelo general dado por la ecuación (4.12) y probar tres especificaciones distintas que serían válidas bajo \(H_0 : \rho = 1\):

  1. Modelo A: con intercepto y tendencia: \[\begin{equation*} \Delta Y_t = \alpha + \delta t + \beta Y_{t-1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una tendencia determinística.

  2. Modelo B: con intercepto: \[\begin{equation*} \Delta Y_t = \alpha + \beta Y_{t-1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una constante.

  3. Modelo C: sin intercepto y tendencia: \[\begin{equation*} \Delta Y_t = \beta Y_{t-1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario sin considerar una constante o una tendencia determinística, es decir, es un proceso puramente aleatorio.

Ejemplo. A continuación mostramos los resultados de aplicar las pruebas de raíces unitarias a la serie \(LTC_t\) (317 observaciones mensuales, de enero de 2000 a mayo de 2026), considerando \(p = int \{ 4 (317/100)^{(1/4)} \} = 5\) para aquellas pruebas que requieren de rezagos: ADF, PP y KPSS. La convención es implementar las pruebas de raíces unitarias iniciando con el modelo más general hasta llegar al más restringido. Es decir, iniciar con el Modelo A, pasar al Modelo B y cerrar con el Modelo C.

Iniciaremos implementando una prueba de DF simple (o una ADF sin rezagos). En este caso obtenemos los resultados mostrados en la siguiente Tabla. En esta se reportan los resultados de la prueba para cada uno de los 3 modelos (A, B y C) y los valores críticos (CV, por sus siglas en inglés) de la prueba para los niveles 1%, 5% y 10%–estos valores son los reportados por MacKinnon (1996) para una prueba con distribución de 1 cola (izquierda). La convención es utilizar el nivel del 5% de significancia.

Los resultados se presentan en el Cuadro 4.1, donde se reportan los estadísticos \(\tau\) y los valores críticos de MacKinnon (1996) para los tres modelos, tanto en niveles (\(LTC_t\)) como en primeras diferencias (\(\Delta LTC_t\)). Rechazaremos la hipótesis nula cuando el estadístico \(t\) sea menor que el valor crítico. La serie se vuelve estacionaria en su primera diferencia.

## Dickey-Fuller — Niveles
df_nA <- ur.df(LDatos[, 2], type = "trend", lags = 0)
df_nB <- ur.df(LDatos[, 2], type = "drift", lags = 0)
df_nC <- ur.df(LDatos[, 2], type = "none",  lags = 0)

## Dickey-Fuller — Diferencias
df_dA <- ur.df(DLDatos[, 2], type = "trend", lags = 0)
df_dB <- ur.df(DLDatos[, 2], type = "drift", lags = 0)
df_dC <- ur.df(DLDatos[, 2], type = "none",  lags = 0)

urdf_fila <- function(lbl, obj) {
  data.frame(Modelo      = lbl,
             Estadistico = round(obj@teststat[1], 4),
             CV_1pct     = round(obj@cval[1, 1], 4),
             CV_5pct     = round(obj@cval[1, 2], 4),
             CV_10pct    = round(obj@cval[1, 3], 4))
}

# Con escape = FALSE el LaTeX de las celdas (p. ej. $\Delta LTC_t$) se
# renderiza como fórmula; el % de los encabezados requiere \% en LaTeX.
pct     <- if (knitr::is_latex_output()) "\\%" else "%"
cv_cols <- paste0(c("CV 1", "CV 5", "CV 10"), pct)

knitr::kable(
  rbind(urdf_fila("$LTC_t$ — A (tendencia)",        df_nA),
        urdf_fila("$LTC_t$ — B (intercepto)",       df_nB),
        urdf_fila("$LTC_t$ — C (sin det.)",         df_nC),
        urdf_fila("$\\Delta LTC_t$ — A (tendencia)",  df_dA),
        urdf_fila("$\\Delta LTC_t$ — B (intercepto)", df_dB),
        urdf_fila("$\\Delta LTC_t$ — C (sin det.)",   df_dC)),
  col.names = c("Modelo", "Estadístico $t$", cv_cols),
  caption   = "Resumen: prueba Dickey-Fuller (DF) para $LTC_t$.",
  align     = c("l", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE
)
Cuadro 4.1: Resumen: prueba Dickey-Fuller (DF) para \(LTC_t\).
Modelo Estadístico \(t\) CV 1% CV 5% CV 10%
\(LTC_t\) — A (tendencia) -1.7597 -3.98 -3.42 -3.13
\(LTC_t\) — B (intercepto) -1.3356 -3.44 -2.87 -2.57
\(LTC_t\) — C (sin det.) 1.1109 -2.58 -1.95 -1.62
\(\Delta LTC_t\) — A (tendencia) -13.7394 -3.98 -3.42 -3.13
\(\Delta LTC_t\) — B (intercepto) -13.7398 -3.44 -2.87 -2.57
\(\Delta LTC_t\) — C (sin det.) -13.7055 -2.58 -1.95 -1.62

Los resultados son claros. En niveles, ninguno de los tres modelos rechaza la hipótesis nula al 5%: los estadísticos (-1.76, -1.336 y 1.111 para los modelos A, B y C, respectivamente) son mayores que sus valores críticos, por lo que no hay evidencia contra la presencia de una raíz unitaria en \(LTC_t\). Nótese además que en el Modelo C el estadístico es positivo, lo que refleja que la serie tiene una media distinta de cero y que esa especificación no es la adecuada. En cambio, al aplicar la prueba sobre la primera diferencia, los tres modelos rechazan la nula de manera contundente (por ejemplo, -13.74 contra un valor crítico de -2.87 al 5% en el Modelo B). Concluimos que \(LTC_t\) es \(I(1)\): la serie no es estacionaria en niveles, pero sí lo es en su primera diferencia.

4.3.2 Dickey - Fuller Aumentada (ADF)

La prueba ADF (Dickey and Fuller 1981) extiende la prueba DF al caso de un AR(p). A diferencia de un modelo AR(1) para el caso de una prueba DF como en la ecuación (4.12), en una prueba ADF se asume que el proceso es un AR(p) de la forma (por simplicidad, hemos omitido el término constante y el término de tendencia determinística): \[\begin{equation} Y_t = a_1 Y_{t-1} + a_2 Y_{t-2} + \ldots + a_p Y_{t-p} + U_t \tag{4.13} \end{equation}\]

Haciendo una sustitución de términos similar a las que hemos planteado en otras secciones, podemos reexpresar la ecuación (4.13) en su versión en diferencias siguiendo el proceso: \[\begin{equation} Y_t = \rho Y_{t-1} + \theta_1 \Delta Y_{t-1} + \theta_2 \Delta Y_{t-2} + \ldots + \theta_{p-1} \Delta Y_{t-p+1} + U_t \end{equation}\]

Donde \(\rho = \theta_0 = \sum_{j = 1}^p a_j\), \(\theta_i = - \sum_{j = i + 1}^p a_j\), \(i = 1, 2, \ldots, p-1\). Así, si el proceso AR(p) tiene raíz unitaria, entonces, veremos que: \[\begin{eqnarray*} 1 - a_1 - a_2 - \ldots - a_p & = & 0 \\ \rho & = & 1 \end{eqnarray*}\]

De donde podemos establecer que el modelo general de una prueba ADF será: \[\begin{equation} \Delta Y_t = \alpha + \beta t + (\rho - 1) Y_{t-1} + \theta_1 \Delta Y_{t-1} + \theta_2 \Delta Y_{t-2} + \ldots + \theta_k \Delta Y_{t-k} + U_t \end{equation}\]

Donde \(U_t\) es un proceso puramente aleatorio y \(k\) es elegido de tal manera que los residuales sean un proceso puramente aleatorio. En resumen, la prueba ADF consiste en asumir un modelo general dado por la ecuación (4.13), que incluya constante y tendencia, y probar tres especificaciones distintas que serían válidas bajo \(H_0 : \rho = 1\):

  1. Modelo A: con intercepto y tendencia: \[\begin{equation*} \Delta Y_t = \alpha + \delta t + \beta Y_{t-1} + \theta_1 \Delta Y_{t-1} + \theta_2 \Delta Y_{t-2} + \ldots + \theta_{p-1} \Delta Y_{t-p+1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una tendencia determinística.

  2. Modelo B: con intercepto: \[\begin{equation*} \Delta Y_t = \alpha + \beta Y_{t-1} + \theta_1 \Delta Y_{t-1} + \theta_2 \Delta Y_{t-2} + \ldots + \theta_{p-1} \Delta Y_{t-p+1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una constante.

  3. Modelo C: sin intercepto y tendencia: \[\begin{equation*} \Delta Y_t = \beta Y_{t-1} + \theta_1 \Delta Y_{t-1} + \theta_2 \Delta Y_{t-2} + \ldots + \theta_{p-1} \Delta Y_{t-p+1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \beta = \rho - 1 = 0\) contra \(H_a : \beta < 0\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario sin considerar una constante o una tendencia determinística, es decir, es un proceso puramente aleatorio.

Ejemplo. El Cuadro 4.2 muestra los resultados de la prueba ADF con 5 rezagos para \(LTC_t\) y \(\Delta LTC_t\). Al igual que en el caso anterior, rechazaremos la hipótesis nula cuando el estadístico \(t\) sea menor que el valor crítico. La serie se vuelve estacionaria en su primera diferencia.

## Augmented Dickey-Fuller — Niveles
adf_nA <- ur.df(LDatos[, 2], type = "trend", lags = p_lags)
adf_nB <- ur.df(LDatos[, 2], type = "drift", lags = p_lags)
adf_nC <- ur.df(LDatos[, 2], type = "none",  lags = p_lags)

## Augmented Dickey-Fuller — Diferencias
adf_dA <- ur.df(DLDatos[, 2], type = "trend", lags = p_lags)
adf_dB <- ur.df(DLDatos[, 2], type = "drift", lags = p_lags)
adf_dC <- ur.df(DLDatos[, 2], type = "none",  lags = p_lags)

knitr::kable(
  rbind(urdf_fila("$LTC_t$ — A (tendencia)",        adf_nA),
        urdf_fila("$LTC_t$ — B (intercepto)",       adf_nB),
        urdf_fila("$LTC_t$ — C (sin det.)",         adf_nC),
        urdf_fila("$\\Delta LTC_t$ — A (tendencia)",  adf_dA),
        urdf_fila("$\\Delta LTC_t$ — B (intercepto)", adf_dB),
        urdf_fila("$\\Delta LTC_t$ — C (sin det.)",   adf_dC)),
  col.names = c("Modelo", "Estadístico $t$", cv_cols),
  caption   = paste0("Resumen: prueba Augmented Dickey-Fuller (ADF, ", p_lags,
                     " rezagos) para $LTC_t$."),
  align     = c("l", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE
)
Cuadro 4.2: Resumen: prueba Augmented Dickey-Fuller (ADF, 5 rezagos) para \(LTC_t\).
Modelo Estadístico \(t\) CV 1% CV 5% CV 10%
\(LTC_t\) — A (tendencia) -2.2133 -3.98 -3.42 -3.13
\(LTC_t\) — B (intercepto) -1.3112 -3.44 -2.87 -2.57
\(LTC_t\) — C (sin det.) 0.9090 -2.58 -1.95 -1.62
\(\Delta LTC_t\) — A (tendencia) -7.8400 -3.98 -3.42 -3.13
\(\Delta LTC_t\) — B (intercepto) -7.8051 -3.44 -2.87 -2.57
\(\Delta LTC_t\) — C (sin det.) -7.6961 -2.58 -1.95 -1.62

La conclusión coincide con la de la prueba DF simple: en niveles el estadístico del Modelo A es -2.213 –frente a un valor crítico de -3.42 al 5%– y en primeras diferencias es -7.84, muy por debajo del valor crítico. La coincidencia entre DF y ADF no es automática: cuando los residuales de la regresión de prueba están autocorrelacionados, la prueba DF sin rezagos tiene un tamaño distorsionado y puede llevar a conclusiones equivocadas, por lo que en el trabajo aplicado se reporta la versión aumentada.

4.3.2.1 Pruebas conjuntas y estrategia secuencial

Las pruebas anteriores contrastan una sola restricción, \(H_0: \beta = 0\). Sin embargo, en los modelos A y B el resultado depende de si los términos determinísticos (\(\alpha\) y \(\delta\)) pertenecen realmente al proceso generador de datos: incluir una tendencia innecesaria reduce la potencia de la prueba, mientras que omitir una tendencia que sí está presente sesga la prueba hacia no rechazar la raíz unitaria. Por esta razón Dickey y Fuller (1981) propusieron también un conjunto de pruebas conjuntas de tipo \(F\), que la función ur.df() reporta de forma automática:

  • \(\phi_1\): en el Modelo B, contrasta \(H_0: (\alpha, \beta) = (0, 0)\), es decir, raíz unitaria sin deriva.

  • \(\phi_2\): en el Modelo A, contrasta \(H_0: (\alpha, \delta, \beta) = (0, 0, 0)\), es decir, raíz unitaria sin deriva ni tendencia.

  • \(\phi_3\): en el Modelo A, contrasta \(H_0: (\delta, \beta) = (0, 0)\), es decir, raíz unitaria sin tendencia (pero con deriva).

Como estas estadísticas se calculan bajo la hipótesis nula de raíz unitaria, su distribución tampoco es la \(F\) estándar y sus valores críticos también están tabulados en Dickey y Fuller (1981). El Cuadro 4.3 reporta estas pruebas para \(LTC_t\) con la misma especificación aumentada de 5 rezagos del ejemplo anterior.

adf_trend <- ur.df(LDatos[, 2], type = "trend", lags = p_lags)
adf_drift <- ur.df(LDatos[, 2], type = "drift", lags = p_lags)

joint_df <- data.frame(
  Prueba = c("$\\phi_1$ (Modelo B)",
             "$\\phi_2$ (Modelo A)",
             "$\\phi_3$ (Modelo A)"),
  Estadistico = round(c(adf_drift@teststat[2],
                        adf_trend@teststat[2],
                        adf_trend@teststat[3]), 4),
  CV_1  = c(adf_drift@cval[2, 1], adf_trend@cval[2, 1], adf_trend@cval[3, 1]),
  CV_5  = c(adf_drift@cval[2, 2], adf_trend@cval[2, 2], adf_trend@cval[3, 2]),
  CV_10 = c(adf_drift@cval[2, 3], adf_trend@cval[2, 3], adf_trend@cval[3, 3]))

knitr::kable(
  joint_df,
  col.names = c("Prueba", "Estadístico $F$", cv_cols),
  caption   = paste("Pruebas conjuntas de la prueba ADF (5 rezagos) para",
                    "$LTC_t$. Las hipótesis nulas son las enunciadas arriba:",
                    "$\\phi_1$: $(\\alpha, \\beta) = (0,0)$;",
                    "$\\phi_2$: $(\\alpha, \\delta, \\beta) = (0,0,0)$;",
                    "$\\phi_3$: $(\\delta, \\beta) = (0,0)$."),
  align     = c("l", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE,
  row.names = FALSE
)
Cuadro 4.3: Pruebas conjuntas de la prueba ADF (5 rezagos) para \(LTC_t\). Las hipótesis nulas son las enunciadas arriba: \(\phi_1\): \((\alpha, \beta) = (0,0)\); \(\phi_2\): \((\alpha, \delta, \beta) = (0,0,0)\); \(\phi_3\): \((\delta, \beta) = (0,0)\).
Prueba Estadístico \(F\) CV 1% CV 5% CV 10%
\(\phi_1\) (Modelo B) 1.4114 6.47 4.61 3.79
\(\phi_2\) (Modelo A) 2.1149 6.15 4.71 4.05
\(\phi_3\) (Modelo A) 2.6161 8.34 6.30 5.36

Ninguna de las tres pruebas conjuntas rechaza su hipótesis nula al 5%, lo que refuerza la conclusión anterior: los datos son compatibles con una raíz unitaria y no aportan evidencia de que \(LTC_t\) tenga una tendencia determinística. La estrategia secuencial recomendada consiste entonces en partir del modelo más general (A), verificar con \(\phi_3\) si la tendencia es necesaria, pasar al Modelo B si no lo es, verificar con \(\phi_1\) si la deriva es necesaria y, sólo en su ausencia, contrastar el Modelo C.

4.3.3 Phillips - Perron (PP)

La prueba de Phillips y Perron (Phillips and Perron 1988) también está basada en un AR(1) descrito por la ecuación: \[\begin{equation} Y_t = \mathbf{d}_t' \boldsymbol{\eta} + \rho Y_{t-1} + U_t \tag{4.14} \end{equation}\]

Donde \(\mathbf{d}_t\) es un vector que recoge los componentes determinísticos del modelo –una constante, o una constante y una tendencia– y \(\boldsymbol{\eta}\) es el vector de coeficientes asociados.

Al igual que los casos pasados, la hipótesis a probar es \(H_0 : \rho = 1\) contra la alternativa \(H_a : | \rho | < 1\), y asumimos una estructura de MA(\(l\)) que es un término de error de la forma: \[\begin{equation} U_t = \psi(L) \varepsilon_t = \psi_0 \varepsilon_t + \psi_1 \varepsilon_{t-1} + \ldots + \psi_l \varepsilon_{t-l} \end{equation}\]

Con \(\varepsilon_t\) que es un ruido blanco con media cero y varianza \(\sigma^2\). En este modelo se elige el valor \(l\) que hace que el componente sea un MA(\(l\)). En realidad, la prueba PP no requiere que el error tenga exactamente esa forma: basta con que sea un proceso débilmente dependiente, y la corrección se realiza estimando de manera no paramétrica su varianza de largo plazo con una ventana de \(l\) rezagos. La prueba admite dos versiones del estadístico, \(Z_\tau\) y \(Z_\rho\), que se construyen respectivamente como correcciones del estadístico \(t\) y del coeficiente \(\hat{\rho}\) estimados por mínimos cuadrados; ambas conducen asintóticamente a la misma conclusión, pero tienen valores críticos distintos, por lo que no deben intercambiarse sus tablas. En los ejemplos utilizaremos la versión \(Z_\tau\), cuyos valores críticos son los mismos de la prueba ADF.

En resumen, la prueba PP consiste en asumir un modelo general dado por la ecuación (4.14) y probar dos especificaciones distintas que serían válidas bajo \(H_0 : \rho = 1\), ambas considerando un componente Drift:

  1. Modelo A: con intercepto y tendencia: \[\begin{equation*} Y_t = \alpha + \delta t + \rho Y_{t-1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \rho = 1\) contra \(H_a : | \rho | < 1\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una tendencia determinística.

  2. Modelo B: con intercepto: \[\begin{equation*} Y_t = \alpha + \rho Y_{t-1} + U_t \end{equation*}\] Buscamos probar si \(H_0 : \rho = 1\) contra \(H_a : | \rho | < 1\), por lo que es una prueba de una cola. Otra forma de decirlo es: probamos si el proceso tiene raíz unitaria contra si el proceso es estacionario alrededor de una constante.

Ejemplo. El Cuadro 4.4 muestra los resultados de la prueba PP con 5 rezagos para \(LTC_t\) y \(\Delta LTC_t\). Rechazaremos la hipótesis nula cuando el estadístico \(Z_\tau\) sea menor que el valor crítico. La serie se vuelve estacionaria en su primera diferencia.

## Phillips-Perron — Niveles
pp_nA <- ur.pp(LDatos[, 2], type = "Z-tau", model = "trend",    use.lag = p_lags)
pp_nB <- ur.pp(LDatos[, 2], type = "Z-tau", model = "constant", use.lag = p_lags)

## Phillips-Perron — Diferencias
pp_dA <- ur.pp(DLDatos[, 2], type = "Z-tau", model = "trend",    use.lag = p_lags)
pp_dB <- ur.pp(DLDatos[, 2], type = "Z-tau", model = "constant", use.lag = p_lags)

urpp_fila <- function(lbl, obj) {
  cv <- as.numeric(obj@cval)
  data.frame(Modelo      = lbl,
             Estadistico = round(as.numeric(obj@teststat), 4),
             CV_1pct     = round(cv[1], 4),
             CV_5pct     = round(cv[2], 4),
             CV_10pct    = round(cv[3], 4))
}

knitr::kable(
  rbind(urpp_fila("$LTC_t$ — A (tendencia)",          pp_nA),
        urpp_fila("$LTC_t$ — B (intercepto)",         pp_nB),
        urpp_fila("$\\Delta LTC_t$ — A (tendencia)",  pp_dA),
        urpp_fila("$\\Delta LTC_t$ — B (intercepto)", pp_dB)),
  col.names = c("Modelo", "Estadístico $Z_\\tau$", cv_cols),
  caption   = paste0("Resumen: prueba Phillips-Perron (PP, ", p_lags,
                     " rezagos) para $LTC_t$."),
  align     = c("l", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE
)
Cuadro 4.4: Resumen: prueba Phillips-Perron (PP, 5 rezagos) para \(LTC_t\).
Modelo Estadístico \(Z_\tau\) CV 1% CV 5% CV 10%
\(LTC_t\) — A (tendencia) -2.1862 -3.9907 -3.4256 -3.1356
\(LTC_t\) — B (intercepto) -1.3951 -3.4528 -2.8708 -2.5717
\(\Delta LTC_t\) — A (tendencia) -13.5126 -3.9908 -3.4256 -3.1357
\(\Delta LTC_t\) — B (intercepto) -13.5185 -3.4528 -2.8709 -2.5717

Nuevamente, los estadísticos en niveles (-2.186 en el modelo con tendencia y -1.395 en el modelo con constante) no permiten rechazar la raíz unitaria, mientras que en primeras diferencias la rechazan con holgura (-13.519 en el modelo con constante). El valor agregado de la prueba PP es que llega a la misma conclusión sin imponer una estructura paramétrica al término de error: la corrección por autocorrelación y heterocedasticidad se hace de forma no paramétrica al estimar la varianza de largo plazo con una ventana de 5 rezagos.

4.3.4 Kwiatkowski - Phillips - Schmidt - Shin (KPSS)

La prueba KPSS (Kwiatkowski et al. 1992) considera que el proceso es estacionario bajo la hipótesis nula, lo cual hace una diferencia respecto de las anteriores pruebas. El modelo considerado es: \[\begin{equation} Y_t = \delta t + \xi_t + U_t \end{equation}\]

Donde \(U_t\) es un proceso estacionario y \(\xi_t\) es una caminata aleatoria descrita por la forma: \(\xi_t = \xi_{t-1} + \varepsilon_t\), donde \(\varepsilon_t\) es un ruido blanco normalmente distribuido con media cero y varianza \(\sigma^2_\varepsilon\).

Así, bajo la hipótesis nula \(H_0 : \sigma^2_\varepsilon = 0\), \(\xi_t\) se vuelve una constante y el proceso es estacionario alrededor de una tendencia determinística (o de una constante, según la especificación). Nótese que, a diferencia de las pruebas anteriores, aquí la región de rechazo está en la cola derecha: valores grandes del estadístico indican que la varianza del componente de caminata aleatoria es distinta de cero. Dado el planteamiento de la prueba, los valores críticos al 5% de significancia son:

  1. Modelo A: 0.146, para un modelo con tendencia (estadístico \(\tau\)).

  2. Modelo B: 0.463, para un modelo con constante (estadístico \(\mu\)).

Ejemplo. Finalmente, el Cuadro 4.5 muestra los resultados de la prueba KPSS para \(LTC_t\) y \(\Delta LTC_t\). En este caso no se rechaza \(H_0\) (estacionariedad) cuando el estadístico es menor que el valor crítico.

## KPSS — Niveles
kpss_nA <- ur.kpss(LDatos[, 2], type = "tau")
kpss_nB <- ur.kpss(LDatos[, 2], type = "mu")

## KPSS — Diferencias
kpss_dA <- ur.kpss(DLDatos[, 2], type = "tau")
kpss_dB <- ur.kpss(DLDatos[, 2], type = "mu")

# @cval en ur.kpss: orden 10%, 5%, 2.5%, 1% (posiciones 1,2,3,4)
urkpss_fila <- function(lbl, obj) {
  cv <- as.numeric(obj@cval)
  data.frame(Modelo      = lbl,
             Estadistico = round(as.numeric(obj@teststat), 4),
             CV_1pct     = round(cv[4], 4),
             CV_5pct     = round(cv[2], 4),
             CV_10pct    = round(cv[1], 4))
}

knitr::kable(
  rbind(urkpss_fila("$LTC_t$ — A ($\\tau$, tendencia)",         kpss_nA),
        urkpss_fila("$LTC_t$ — B ($\\mu$, intercepto)",         kpss_nB),
        urkpss_fila("$\\Delta LTC_t$ — A ($\\tau$, tendencia)", kpss_dA),
        urkpss_fila("$\\Delta LTC_t$ — B ($\\mu$, intercepto)", kpss_dB)),
  col.names = c("Modelo", "Estadístico", cv_cols),
  caption   = "Resumen: prueba KPSS para $LTC_t$ (rechazar $H_0$ si estadístico $>$ CV).",
  align     = c("l", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE
)
Cuadro 4.5: Resumen: prueba KPSS para \(LTC_t\) (rechazar \(H_0\) si estadístico \(>\) CV).
Modelo Estadístico CV 1% CV 5% CV 10%
\(LTC_t\) — A (\(\tau\), tendencia) 0.3655 0.216 0.146 0.119
\(LTC_t\) — B (\(\mu\), intercepto) 4.9038 0.739 0.463 0.347
\(\Delta LTC_t\) — A (\(\tau\), tendencia) 0.0595 0.216 0.146 0.119
\(\Delta LTC_t\) — B (\(\mu\), intercepto) 0.0940 0.739 0.463 0.347

La lectura de este cuadro es la imagen espejo de las anteriores. En niveles, el estadístico del modelo con constante es 4.904, muy por encima del valor crítico de 0.463 al 5%, por lo que se rechaza la estacionariedad; en el modelo con tendencia el estadístico es 0.365 y también supera su valor crítico de 0.146. En primeras diferencias, en cambio, los estadísticos (0.059 y 0.094) quedan muy por debajo de los valores críticos y no se rechaza la estacionariedad. Las cuatro pruebas –DF, ADF, PP y KPSS– apuntan entonces en la misma dirección: \(LTC_t \sim I(1)\).

4.3.5 Zivot - Andrews (ZA)

Una limitación de las pruebas DF, ADF, PP y KPSS es que asumen que los parámetros del proceso son constantes a lo largo de toda la muestra. Sin embargo, muchas series económicas presentan quiebres estructurales —cambios abruptos en la media o en la tendencia— asociados a eventos como crisis financieras, cambios de política económica o pandemias. En presencia de un quiebre estructural no considerado, las pruebas anteriores tienen un sesgo hacia no rechazar la hipótesis nula de raíz unitaria, incluso cuando la serie es estacionaria.

La prueba de Zivot y Andrews (1992) extiende la prueba ADF para el caso en que existe un quiebre estructural en una fecha desconocida \(\tau^*\). La prueba evalúa tres modelos:

  • Modelo A: quiebre en el nivel (intercepto).
  • Modelo B: quiebre en la tendencia.
  • Modelo C: quiebre en el nivel y en la tendencia (modelo más general).

En cada caso, la hipótesis nula es que la serie tiene una raíz unitaria sin quiebre estructural, contra la alternativa de que es estacionaria con un quiebre en la fecha \(\tau^*\). La fecha del quiebre se determina endógenamente como aquella que minimiza el estadístico \(t\) de la prueba.

El estadístico de la prueba sigue una distribución no estándar y, a diferencia de las pruebas anteriores, sus valores críticos difieren según el modelo que se estime, porque la búsqueda del quiebre se realiza sobre un parámetro distinto en cada caso. Los valores reportados por Zivot y Andrews (1992) al 1%, 5% y 10% son:

Modelo 1% 5% 10%
A (quiebre en el nivel) \(-5.34\) \(-4.80\) \(-4.58\)
B (quiebre en la tendencia) \(-4.93\) \(-4.42\) \(-4.11\)
C (quiebre en nivel y tendencia) \(-5.57\) \(-5.08\) \(-4.82\)

Nótese que los valores críticos son considerablemente más exigentes (más negativos) que los de la prueba ADF: al permitir que la fecha del quiebre se elija endógenamente –minimizando el estadístico \(t\)– se está tomando el caso más favorable al rechazo entre todas las fechas posibles, y la distribución nula debe corregir por esa búsqueda.

Ejemplo. El Cuadro 4.6 muestra la aplicación de la prueba ZA a la serie \(LTC_t\) con los tres modelos. Rechazamos la hipótesis nula si el estadístico es menor que (es decir, más negativo que) el valor crítico correspondiente.

## Zivot - Andrews: los tres modelos

za_A <- ur.za(LDatos[, 2], model = "intercept", lag = p_lags)
za_B <- ur.za(LDatos[, 2], model = "trend",     lag = p_lags)
za_C <- ur.za(LDatos[, 2], model = "both",      lag = p_lags)

# Convierte índice de quiebre a cadena "AAAA-MM"
bp_fecha <- function(x, bp) {
  t  <- time(x)
  yr <- floor(t[bp])
  mo <- round((t[bp] - yr) * 12) + 1
  paste0(yr, "-", sprintf("%02d", mo))
}

za_df <- data.frame(
  Modelo      = c("A (intercepto)", "B (tendencia)", "C (ambos)"),
  Estadistico = round(c(za_A@teststat, za_B@teststat, za_C@teststat), 4),
  CV_1pct     = c(za_A@cval[1], za_B@cval[1], za_C@cval[1]),
  CV_5pct     = c(za_A@cval[2], za_B@cval[2], za_C@cval[2]),
  CV_10pct    = c(za_A@cval[3], za_B@cval[3], za_C@cval[3]),
  Quiebre     = c(bp_fecha(LDatos[, 2], za_A@bpoint),
                  bp_fecha(LDatos[, 2], za_B@bpoint),
                  bp_fecha(LDatos[, 2], za_C@bpoint))
)

knitr::kable(
  za_df,
  col.names = c("Modelo", "Estadístico", cv_cols, "Quiebre est."),
  caption   = "Resumen de resultados de la prueba Zivot-Andrews (ZA) para $LTC_t$.",
  align     = c("l", "r", "r", "r", "r", "r"),
  booktabs  = TRUE,
  escape    = FALSE
)
Cuadro 4.6: Resumen de resultados de la prueba Zivot-Andrews (ZA) para \(LTC_t\).
Modelo Estadístico CV 1% CV 5% CV 10% Quiebre est.
A (intercepto) -3.6032 -5.34 -4.80 -4.58 2022-07
B (tendencia) -3.5780 -4.93 -4.42 -4.11 2020-03
C (ambos) -4.5648 -5.57 -5.08 -4.82 2015-05

En los tres modelos el estadístico queda por arriba (en valor algebraico) del valor crítico al 5%, por lo que no se rechaza la hipótesis nula de raíz unitaria ni siquiera permitiendo un quiebre estructural endógeno. El resultado es informativo en dos sentidos. Primero, descarta que la no estacionariedad detectada por las pruebas anteriores sea un artefacto de un cambio estructural no modelado. Segundo, las fechas de quiebre estimadas –que la prueba selecciona minimizando el estadístico \(t\)– corresponden a episodios reconocibles de la historia cambiaria reciente de México, aun cuando el quiebre no baste para revertir la conclusión sobre la raíz unitaria. Conviene recordar que la prueba ZA tiene como hipótesis nula una raíz unitaria sin quiebre, de modo que un rechazo debe interpretarse con cuidado: puede deberse a la estacionariedad de la serie o a la presencia de un quiebre bajo la propia hipótesis nula.

4.4 Resumen y Guía de Decisión

La siguiente tabla ofrece una comparación de las cuatro pruebas principales de raíces unitarias estudiadas en este capítulo:

Prueba \(H_0\) \(H_a\) Distribución Notas
DF Raíz unitaria Proceso estacionario No estándar Solo válida si errores son ruido blanco
ADF Raíz unitaria Proceso estacionario No estándar Corrige autocorrelación con rezagos
PP Raíz unitaria Proceso estacionario No estándar Corrige autocorrelación no paramétricamente
KPSS Estacionario Raíz unitaria KPSS \(H_0\) inversa; útil como complemento
ZA Raíz unitaria Estacionario con quiebre No estándar Endogeniza la fecha del quiebre estructural

La convención en la práctica econométrica es aplicar las pruebas siguiendo el proceso de decisión que se describe a continuación:

  1. Inspección visual: graficar la serie en niveles y en diferencias para tener una primera impresión sobre su comportamiento.

  2. Aplicar ADF, PP y KPSS en niveles: si ADF y PP rechazan \(H_0\) (raíz unitaria) y KPSS no rechaza su \(H_0\) (estacionariedad), la serie es estacionaria en niveles, \(I(0)\).

  3. Si no se rechaza la raíz unitaria en niveles: tomar primeras diferencias y repetir las pruebas. Si las pruebas sobre las diferencias indican estacionariedad, la serie es integrada de orden uno, \(I(1)\).

  4. Ante resultados contradictorios o series con posibles quiebres estructurales: aplicar la prueba de Zivot-Andrews para descartar que el resultado de no rechazar la raíz unitaria se deba a la presencia de un quiebre no modelado.

  5. En todos los casos: reportar los tres modelos (A, B y C) y los valores críticos al 1%, 5% y 10% para transparencia y replicabilidad.

Tres advertencias finales son indispensables para el trabajo aplicado:

  • Evitar la sobrediferenciación. Diferenciar una serie que ya es estacionaria –o que es estacionaria alrededor de una tendencia determinística– introduce un componente de medias móviles no invertible con raíz unitaria en el polinomio \(\beta(L)\) (véase el Ejercicio 2 de este capítulo), infla la varianza de la serie y deteriora los pronósticos. La decisión de diferenciar debe apoyarse en las pruebas y no aplicarse por rutina.

  • Determinar el orden de integración de manera secuencial. Si se sospecha que una serie puede ser \(I(2)\), el procedimiento correcto no es aplicar la prueba en niveles, sino comenzar por la diferencia de mayor orden: se prueba primero si \(\Delta Y_t\) tiene raíz unitaria y, sólo si se rechaza, se prueba \(Y_t\). Este orden –conocido como el procedimiento de Dickey y Pantula (1987)– evita concluir erróneamente que una serie es \(I(1)\) cuando en realidad tiene dos raíces unitarias.

  • Recordar la baja potencia de estas pruebas. Las pruebas de raíz unitaria tienen dificultades para distinguir un proceso con \(\rho = 1\) de uno con \(\rho = 0.95\) en muestras de tamaño habitual en macroeconomía; por eso conviene combinar pruebas con hipótesis nulas opuestas (ADF/PP frente a KPSS), acompañar los resultados con el análisis gráfico y con el conocimiento económico de la serie, y reportar la sensibilidad de las conclusiones a la especificación elegida. El Ejercicio 4 de este capítulo cuantifica esta pérdida de potencia mediante un experimento de Monte Carlo.

4.5 Ejercicios

Los siguientes ejercicios combinan preguntas teóricas con aplicaciones en R. Los marcados como (Teórico) se resuelven analíticamente; los marcados como (Computacional) utilizan las funciones del paquete urca empleadas en este capítulo y la base BD/Datos_Ad.RData.

  1. (Teórico) Considere una caminata aleatoria con deriva: \(X_t = \delta + X_{t-1} + U_t\), con condición inicial \(X_0\) conocida y \(U_t\) un proceso puramente aleatorio con media cero y varianza \(\sigma^2\).

    1. Mediante sustitución recursiva, demuestre que \(X_t = X_0 + \delta t + \sum_{i=1}^{t} U_i\).
    2. Calcule \(\mathbb{E}[X_t]\) y \(Var[X_t]\) y explique por qué el proceso viola la definición de estacionariedad débil.
    3. Muestre que un choque \(U_s\) ocurrido en el periodo \(s < t\) tiene un efecto permanente sobre \(X_t\), y contraste este resultado con el efecto de un choque en un proceso AR(1) estacionario con \(|a_1| < 1\).
    4. Explique por qué la primera diferencia \(\Delta X_t\) sí es estacionaria y qué significa, en consecuencia, que \(X_t\) sea un proceso \(I(1)\).
  2. (Teórico) Considere un proceso estacionario alrededor de una tendencia determinista (TS): \(X_t = \alpha + \beta t + U_t\), con \(U_t\) puramente aleatorio.

    1. Muestre que el proceso que resulta de remover la tendencia, \(X_t - \alpha - \beta t\), es estacionario.
    2. Suponga que, en lugar de remover la tendencia, se decide diferenciar la serie. Muestre que \(\Delta X_t = \beta + U_t - U_{t-1}\), es decir, un proceso MA(1) con coeficiente unitario, que no es invertible.
    3. Con base en los incisos anteriores, explique por qué es importante distinguir entre procesos TS y procesos DS (estacionarios en diferencias) antes de transformar una serie, y qué consecuencias tiene sobrediferenciar.
  3. (Teórico) Las pruebas ADF y KPSS plantean hipótesis nulas opuestas, por lo que suelen aplicarse de forma conjunta. Construya una tabla de \(2 \times 2\) con los cuatro resultados posibles de aplicar ambas pruebas a una misma serie (rechazar / no rechazar en cada prueba) y, para cada celda:

    1. Indique la conclusión que se obtendría sobre el orden de integración de la serie.
    2. Señale cuáles combinaciones son concluyentes y cuáles resultan contradictorias.
    3. Explique en qué caso la prueba de Zivot-Andrews ayudaría a resolver la aparente contradicción y por qué un quiebre estructural no modelado sesga a las pruebas ADF y PP hacia el no rechazo de la raíz unitaria.
  4. (Computacional) Diseñe un ejercicio de Monte Carlo para estudiar el comportamiento de la prueba Dickey-Fuller.

    1. Simule 500 caminatas aleatorias puras con \(T = 250\) y, a cada una, aplique ur.df() con especificación type = "drift" y lags = 0. Calcule la proporción de réplicas en las que el estadístico rechaza la hipótesis nula al 5%. ¿Se aproxima esa proporción al tamaño teórico de la prueba?
    2. Repita el ejercicio simulando procesos AR(1) estacionarios con \(a_1 = 0.95\). La proporción de rechazos estima ahora la potencia de la prueba. ¿Qué tan frecuentemente detecta la prueba que la serie es estacionaria?
    3. Repita el inciso anterior con \(T = 1000\) y comente cómo cambia la potencia. ¿Qué implica este resultado para el trabajo aplicado con muestras cortas?
  5. (Computacional) Utilice la serie desestacionalizada del IGAE (columna IGAE_Ad de BD/Datos_Ad.RData) y construya su logaritmo, \(LIGAE_t\). Determine el orden de integración de la serie siguiendo la guía de decisión de este capítulo:

    1. Grafique la serie en niveles y en primeras diferencias.
    2. Aplique las pruebas ADF (ur.df()), PP (ur.pp()) y KPSS (ur.kpss()) en niveles, considerando especificaciones con constante y con constante y tendencia. Reporte estadísticos y valores críticos al 1%, 5% y 10%.
    3. Repita las pruebas sobre la primera diferencia de la serie.
    4. Concluya el orden de integración de \(LIGAE_t\) y justifique su respuesta con base en el conjunto de resultados.
  6. (Computacional) Continúe con la serie \(LIGAE_t\) del ejercicio anterior. La economía mexicana registró contracciones severas en 2008-2009 y en 2020, por lo que es razonable sospechar la presencia de quiebres estructurales.

    1. Aplique la prueba de Zivot-Andrews (ur.za()) con los tres modelos: intercepto, tendencia y ambos.
    2. Reporte, para cada modelo, el estadístico de prueba, los valores críticos y la fecha de quiebre estimada. ¿Coincide la fecha detectada con alguno de los episodios mencionados?
    3. Compare la conclusión de la prueba ZA con la que obtuvo mediante ADF en el ejercicio anterior. ¿Cambia la evidencia sobre la raíz unitaria una vez que se permite un quiebre estructural?