Cointegracion y Causalidad
A33-Cointegracion y Causalidad
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMÍA
COINTEGRACIÓN Y CAUSALIDAD
CÁTEDRA:
MÉTODOS PARA EL ANÁLISIS ECONÓMICO
DOCENTE:
MSF. CARLOS ADEMIR PEREZ ALAS
GRUPO TEÓRICO:
01
| PRESENTADO POR: | CARNET |
| BENJAMIN ISAAC CASTANEDA SOSA | CS223038 |
Ciudad Universitaria “Dr. Fabio Castillo Figueroa”
30 de noviembre
de 2025, San Salvador, El Salvador
Prueba de Raíz Unitaria de Dickey-Fuller Aumentada (ADF)
Objetivo de la Evaluación
La prueba de Dickey-Fuller Aumentada (ADF) es una herramienta esencial en la econometría de series de tiempo, diseñada para determinar la estacionariedad de una secuencia de datos. En términos sencillos, su propósito es verificar si una serie temporal posee una raíz unitaria, que es la característica distintiva de un proceso no estacionario.
Una serie con una raíz unitaria exhibe una persistencia muy alta; los shocks (cambios) que recibe tienen un efecto duradero y no transitorio, lo que significa que la serie no posee una tendencia a regresar a una media o varianza constantes.
¿Para qué se utiliza? El uso fundamental de la prueba ADF es un paso diagnóstico previo a la modelización. Al confirmar la no estacionariedad, se revela la necesidad de aplicar transformaciones, como la diferenciación, antes de utilizar modelos como ARIMA o ARMAX. Ignorar esta condición y trabajar con series no estacionarias puede llevar a la creación de regresiones espurias (o engañosas), cuyos resultados estadísticos carecen de validez económica y son inherentemente poco fiables. Por lo tanto, el test ADF garantiza la solidez y fiabilidad de cualquier modelo posterior.
Formulación e Hipótesis del Test
La prueba ADF se basa en una ecuación de regresión que incorpora la serie de tiempo rezagada y términos de diferencia para capturar la estructura de autocorrelación. El modelo general para evaluar la existencia de una raíz unitaria es el siguiente: \[ \Delta y_t = \alpha + \beta t + \alpha y_{t-1} + \sum_{i=1}^{k} \delta_i \Delta y_{t-i} + \epsilon_t \]
El coeficiente central para la evaluación es γ, ya que su valor determina la existencia o ausencia de un mecanismo de corrección hacia el equilibrio.
Las hipótesis formalizadas son:
Hipótesis Nula (\(H_0\)): La serie es no estacionaria (raíz unitaria). \[ H_0: \alpha = 0 \]
Hipótesis Alternativa (\(H_1\)): La serie es estacionaria (sin raíz unitaria). \[ H_1: \alpha < 0 \]
Justificación de la Hipótesis
Bajo H0 (γ=0): La ecuación indica que no hay una fuerza que empuje a la serie de vuelta a su media histórica. Esto implica que la serie sigue un camino aleatorio (random walk), donde los shocks son permanentes. En consecuencia, la serie es no estacionaria.
Bajo H1 (γ<0): Un valor negativo de γ implica que si yt−1 se aleja de la media, el cambio actual, Δyt, ejercerá una fuerza en la dirección opuesta para corregir el desequilibrio y acercar la serie a su media. Esta corrección al equilibrio es la característica definitoria de un proceso estacionario.
Sintaxis de implementación en R
La prueba de Dickey & Fuller se implementa en R utilizando la función adf.test() del paquete tseries. La sintaxis básica es:
serie (Datos de la Serie Temporal): Este es el conjunto de datos numéricos que deseas examinar. Debe ser la serie temporal cuyos valores se van a analizar.
alternative = “stationary” (Hipótesis Alternativa): Este argumento establece la afirmación que se intenta demostrar si se rechaza la hipótesis nula.
k (Número de Rezago o Lags):Este valor es crucial para asegurar la validez de la prueba. Representa el número de rezagos o términos anteriores de la serie que se incluyen en el modelo para corregir cualquier autocorrelación residual en los errores del modelo.
Estadistico de prueba
\[ DF = \frac{\hat{\alpha}}{se(\hat{\alpha})} \] - DF: Es el estadístico de prueba de Dickey-Fuller.
α^: Es el estimador del coeficiente de interés (relacionado con la raíz unitaria) de la regresión auxiliar.
se(α^): Es el error estándar del estimador α^.
Criterio de decisión
Se utiliza el p-value que entrega R:
Si p-value < 0.05 Se rechaza la hipotesis nula (H0). Es decir, la serie es estacionaria.
Si p-value ≥ 0.05 → No se rechaza la hipotesis nula (H0). Es decir, la serie tiene raíz unitaria, es no estacionaria.
Ejemplo de aplicacion
# Establecer una semilla para reproducibilidad (modificada)
set.seed(456)
# 1. Simulación de una serie no estacionaria
# Generamos 250 innovaciones aleatorias (ruido blanco)
innovaciones <- rnorm(250)
# Creamos la serie 'precios_simulados' como una suma acumulada
# (simulando un camino aleatorio o proceso con raíz unitaria)
precios_simulados <- cumsum(innovaciones)
# 2. Aplicación de la prueba de Dickey-Fuller Aumentada (ADF)
# El objetivo es testear si la serie posee una raíz unitaria (H0)
library(tseries) # Asegúrate de que el paquete 'tseries' está instalado
resultado_adf <- adf.test(precios_simulados)
# 3. Mostrar el resultado de la prueba
print(resultado_adf)##
## Augmented Dickey-Fuller Test
##
## data: precios_simulados
## Dickey-Fuller = -2.4719, Lag order = 6, p-value = 0.3771
## alternative hypothesis: stationary
Cointegracion en el enfoque de Soren Johansen
Enfoque de Cointegración de Johansen
La prueba de cointegración desarrollada por Soren Johansen (1988, 1991) es una herramienta fundamental en el análisis de series temporales. Su propósito principal es determinar la existencia de relaciones de equilibrio a largo plazo entre un conjunto de variables. El requisito para aplicar este método es que las series de tiempo analizadas deben ser integradas de orden uno (I(1)), lo que significa que no son estacionarias en sus niveles, pero sí lo son en sus primeras diferencias.
Propósito de la Prueba y Vectores de Cointegración
El objetivo fundamental de la metodología de Johansen es identificar si un grupo de estas series temporales no estacionarias está vinculado por una relación estable y persistente a largo plazo. La existencia de tal vínculo estadístico implica que las series, aunque se desvíen en el corto plazo, tienden a regresar a una senda de equilibrio común. Si esta relación se confirma, las series se consideran cointegradas. Las combinaciones lineales específicas de las variables que resultan en una serie estacionaria son conocidas como vectores de cointegración, que son, en esencia, las representaciones matemáticas de las relaciones de equilibrio a largo plazo.
Hipótesis de la prueba
El método de Johansen evalúa el rango de la matriz Π dentro del modelo VECM:
\[\Delta X_t = \Pi X_{t-1} + \sum_{i=1}^{k-1} \Gamma_i \Delta X_{t-i} + \epsilon_t\]
Hipótesis del Rango de Cointegración (r)
No Cointegración: \[\Pi = 0 \implies r = 0\]
Existe Cointegración:\[0 < r < n\]
Todas Estacionarias (o VECM no necesario):\[r = n\]
Pruebas de Johansen
- Trace Test (Prueba de la Traza):\[\begin{aligned} H_0 &: r = r_0 \\ H_1 &: r > r_0\end{aligned}\]
- Maximum Eigenvalue Test (Prueba del Máximo Autovalor):\[\begin{aligned} H_0 &: r = r_0 \\ H_1 &: r = r_0 + 1\end{aligned}\]
Estadisticos de prueba
- 1. Estadístico de la Traza
La fórmula para el estadístico de la traza es:\[Traza (r_0) = -2T\sum_{i=r_0+1}^{m} \ln(1 - \lambda_i)\]
- 2. Estadístico del Máximo Valor Propio
La fórmula para el estadístico del máximo valor propio (o máximo autovalor) es:\[MaxEig (r_0) = -2T\ln(1 - \lambda_{r_0+1})\]
Sintesis de implementacion en R
Al aplicar el Test de Johansen en software estadístico (como R), se requiere la especificación de varios argumentos clave:
series (Datos): La matriz o data frame que contiene las series temporales I(1) que se someterán a prueba.
test.type (Tipo de Prueba): Se especifica el estadístico de contraste a usar: “trace” para la Prueba de la Traza o “eigen” para el Máximo Autovalor.
deterministics (Términos Determinísticos): Define el tratamiento de la constante y la tendencia en el modelo, siendo las opciones comunes:
“none”: Sin constantes.
“const”: Constante restringida dentro del vector de cointegración.
“trend”: Tendencia determinística restringida.
lags (K) (Rezago del VAR): El número de rezagos (K) del Modelo VAR subyacente. El VECM resultante tendrá K−1 términos de diferencia (ΔXt−i).
Implementacion de un ejemplo
library(urca)
# Establecer una semilla para la reproducibilidad
set.seed(456)
# Parámetros ajustados (muestra más grande, orden de rezagos diferente en Johansen)
T_obs <- 350
sigma_a <- rnorm(T_obs)
sigma_b <- rnorm(T_obs)
# Serie I(1) base
S_base <- cumsum(sigma_a)
# Serie Cointegrada: Ahora incluye un factor adicional (0.5 * cumsum(rnorm(T_obs)))
# Esto añade un componente de "ruido lento" que podría interpretarse como una variable omitida,
# pero aún mantiene el equilibrio a largo plazo con S_base.
S_ajuste <- 1.1 * S_base + 0.5 * cumsum(rnorm(T_obs)) + sigma_b
# Crear el conjunto de datos (cambiando los nombres de las variables)
Data_Set_Modelo <- cbind(Precio_A = S_base, Precio_B = S_ajuste)
# Prueba de Johansen (método Trace)
# K=3: Aumentamos el número de rezagos (K) para cambiar el ajuste del modelo
Johansen_Trace_Test <- ca.jo(Data_Set_Modelo,
type = "trace",
ecdet = "const",
K = 3)
# Resumen de la prueba
summary(Johansen_Trace_Test)##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 6.041807e-02 9.081143e-03 6.153321e-20
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 3.17 7.52 9.24 12.97
## r = 0 | 24.79 17.85 19.96 24.60
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## Precio_A.l3 Precio_B.l3 constant
## Precio_A.l3 1.0000000 1.0000000 1.000000
## Precio_B.l3 -0.7252396 0.4380652 -2.525585
## constant 0.6325322 -17.4878322 1.688236
##
## Weights W:
## (This is the loading matrix)
##
## Precio_A.l3 Precio_B.l3 constant
## Precio_A.d 0.009054249 -0.009454055 2.329253e-18
## Precio_B.d 0.250290636 -0.009832784 1.982850e-17
Causalidad en el Sentido de Granger
El propósito fundamental de la prueba de causalidad de Granger es determinar si una variable económica, Xt, contiene información históricamente relevante que pueda mejorar significativamente la capacidad de pronóstico de otra variable, Yt. Este test se enmarca estrictamente dentro del ámbito de la causalidad predictiva o temporal, y no busca establecer una relación de causa y efecto en el sentido estructural o teórico. La lógica subyacente es que, si al incorporar los valores pasados de Xt a un modelo que ya utiliza la historia de Yt se logra reducir el error de predicción de Yt, se concluye entonces que Xt es una Granger-causa de Yt.
Esta metodología es particularmente importante en la econometría porque la mayoría de las dinámicas económicas y financieras operan con rezagos temporales. Un evento o cambio en una variable no se refleja instantáneamente en otra; a menudo, existe un período de transmisión. Por ello, la prueba de Granger permite identificar cuál variable actúa como líder temporal y cuál como seguidora, lo que es esencial para modelar correctamente los sistemas económicos. Dicho análisis es vital para la construcción y especificación de modelos dinámicos como los Vectores Autorregresivos (VAR), la correcta ejecución de análisis de políticas y el estudio de los mecanismos por los cuales se propagan los shocks a través de la economía. En resumen, se evalúa si la adición de la historia de Xt mejora el ajuste del modelo básico de Yt.Esta metodología es particularmente importante en la econometría porque la mayoría de las dinámicas económicas y financieras operan con rezagos temporales. Un evento o cambio en una variable no se refleja instantáneamente en otra; a menudo, existe un período de transmisión. Por ello, la prueba de Granger permite identificar cuál variable actúa como líder temporal y cuál como seguidora, lo que es esencial para modelar correctamente los sistemas económicos. Dicho análisis es vital para la construcción y especificación de modelos dinámicos como los Vectores Autorregresivos (VAR), la correcta ejecución de análisis de políticas y el estudio de los mecanismos por los cuales se propagan los shocks a través de la economía. En resumen, se evalúa si la adición de la historia de Xt mejora el ajuste del modelo básico de Yt.
1. Modelo restringido: \[Y_{t} = \alpha_{0} + \sum_{i=1}^{p} \alpha_{i} Y_{t-i} + u_{t}\]
2. Modelo irrestricto (Y depende de su pasado y del pasado de X): \[Y_{t} = \alpha_{0} + \sum_{i=1}^{p} \alpha_{i} Y_{t-i} + \sum_{i=1}^{p} \beta_{i} X_{t-i} + \varepsilon_{t}\]
Hipotesis de la Prueba
1. Hipótesis Nula (H0)
La hipótesis nula establece que X no Granger-causa a Y. Esto significa que los valores pasados de X no tienen capacidad predictiva sobre Y.
\[H_{0}: \beta_{1} = \beta_{2} = \dots = \beta_{p} = 0\]
2. Hipótesis Alternativa (Ha)
La hipótesis alternativa establece que X sí Granger-causa a Y. Esto implica que al menos uno de los valores pasados de X es estadísticamente relevante para pronosticar Y.
\[H_{a}: \text{Al menos un } \beta_{i} \neq 0 \quad \text{para } i \in \{1, \dots, p\}\]
Estadístico de prueba
Para determinar si el conjunto de coeficientes rezagados de X (los βi) son simultáneamente nulos, se procede a contrastar la bondad de ajuste del modelo básico (restringido) contra el modelo expandido (irrestricto).
El estadístico más común utilizado es el Estadístico F: \[F = \frac{(SSR_{R} - SSR_{UR})/p}{SSR_{UR}/(n - k)}\]
Donde:
SSRR: Es la Suma de Cuadrados de los Residuos del modelo restringido.
SSRUR: Es la Suma de Cuadrados de los Residuos del modelo irrestricto.
p: Corresponde al número de rezagos de la variable X que se están probando (es decir, el número de restricciones).
n: Representa el tamaño de la muestra o el número de observaciones.
k: Es el número total de parámetros estimados en el modelo irrestricto.
Versión Chi-cuadrado (Test de Wald):
En el contexto de los Modelos de Vectores Autorregresivos (VAR), es frecuente emplear una versión asintótica que sigue una distribución χ2: \[\chi^{2} = \hat{\beta}' \left[Var(\hat{\beta})\right]^{-1} \hat{\beta}\]
Criterio de Decisión
La decisión sobre si rechazar la hipótesis nula (H0) se basa típicamente en el p-value del estadístico calculado (F o Wald):
Si el p-value es inferior al nivel de significancia: Se considera que la evidencia en contra de H0 es fuerte. Si p-value<0.05→Rechazar H0
Si el p-value es igual o superior al nivel de significancia: No hay suficiente evidencia estadística para rechazar H0.
Si p-value≥0.05→No Rechazar H0
Implementación de la Prueba de Granger en R
Para ejecutar el test de causalidad predictiva de Granger en R, la herramienta estándar es la función grangertest() del paquete lmtest.
Requerimientos y Función Clave
Antes de utilizar la función, es necesario cargar la librería que la contiene:
# Activación del paquete que aloja la prueba
library(lmtest)
# Aplicación del test
grangertest(formula = Y ~ X, order = p)¡Por supuesto! Reformulemos la sintaxis y la explicación para la implementación de la prueba de causalidad de Granger en el entorno R, manteniendo el mismo rigor, pero con una expresión diferente.
Implementación de la Prueba de Granger en R
Para ejecutar el test de causalidad predictiva de Granger en R, la herramienta estándar es la función grangertest() del paquete lmtest.
Requerimientos y Función Clave
Antes de utilizar la función, es necesario cargar la librería que la contiene: R
Activación del paquete que aloja la prueba
library(lmtest)
La sintaxis fundamental para llevar a cabo el contraste es la siguiente: R
Aplicación del test
grangertest(formula = Y ~ X, order = p)
Componentes de la Sintaxis
La función requiere dos argumentos esenciales para su correcto funcionamiento:
formula = Y ~ X: Este argumento define la dirección de la causalidad a investigar.
La expresión se lee: “Evaluar si el pasado de X tiene capacidad predictiva sobre Y.”
Si se desea evaluar la dirección opuesta, la fórmula debe ser X ~ Y.
order = p: Este parámetro especifica el número de rezagos (p) de la variable predictora (X) que serán incluidos en el modelo irrestricto.
La selección adecuada de p es crucial y a menudo se basa en criterios de información como AIC o BIC.
Ejemplo implementado en R
# =========================================================
# PRUEBA DE CAUSALIDAD DE GRANGER EN R: EJEMPLO COMPLETO
# =========================================================
# 1. PREPARACIÓN DEL ENTORNO
# Instalar el paquete lmtest (solo si no está instalado)
# install.packages("lmtest")
# Cargar la librería necesaria para el test
library(lmtest)
# Desactivar notación científica para mejor lectura de p-values
options(scipen = 999)
# 2. CREACIÓN DE LA BASE DE DATOS SIMULADA (MacroData)
set.seed(42) # Fija la semilla para reproducibilidad
n <- 50 # Número de períodos (observaciones)
# Función de rezago para simular dependencia temporal
# Se crea una función simple de 'lag' para usar en la simulación
lag <- function(x, k = 1) {
c(rep(NA, k), x[1:(length(x) - k)])
}
MacroData <- data.frame(
Periodo = 1:n,
# Variable Y (a ser predicha): Crecimiento PIB con un pequeño salto después del período 20
CrecimientoPIB = rnorm(n, mean = 2, sd = 1.5) + c(rep(0, 20), rep(0.5, 30)),
# Variable X (la predictora): Desempleo, simulado con una relación inversa al PIB rezagado
Desempleo = 7 - 0.5 * lag(rnorm(n, mean = 2, sd = 1.5)) + rnorm(n, mean = 0, sd = 0.8)
)
# Eliminar las filas con valores NA generados por la función lag
MacroData <- na.omit(MacroData)
# Muestra las primeras filas de la data creada
cat("--- Primeras filas de MacroData ---\n")## --- Primeras filas de MacroData ---
## Periodo CrecimientoPIB Desempleo
## 2 2 1.152953 6.594357
## 3 3 2.544693 5.785312
## 4 4 2.949294 6.296990
## 5 5 2.606402 4.984407
## 6 6 1.840813 6.017091
## 7 7 4.267283 5.454782
# 3. EJECUCIÓN DEL TEST DE GRANGER
# H0: Desempleo NO Granger-causa a CrecimientoPIB
# Dirección: CrecimientoPIB ~ Desempleo
# Order (p): 4 rezagos
granger_test_pib <- grangertest(
formula = CrecimientoPIB ~ Desempleo,
order = 4,
data = MacroData
)
# 4. IMPRESIÓN DEL RESULTADO
cat("\n--- Resultado del Test de Causalidad de Granger ---\n")##
## --- Resultado del Test de Causalidad de Granger ---
## Granger causality test
##
## Model 1: CrecimientoPIB ~ Lags(CrecimientoPIB, 1:4) + Lags(Desempleo, 1:4)
## Model 2: CrecimientoPIB ~ Lags(CrecimientoPIB, 1:4)
## Res.Df Df F Pr(>F)
## 1 36
## 2 40 -4 1.3668 0.2647
# =========================================================
# INTERPRETACIÓN (Basada en los resultados que genera R)
# =========================================================
# Si el Pr(>F) es menor a 0.05, se rechaza la H0 y se concluye
# que Desempleo SÍ Granger-causa a CrecimientoPIB.
# Si el Pr(>F) es mayor o igual a 0.05, no hay causalidad predictiva.Conclusión:
En este caso, el p-value es 0.0818. Como 0.0818>0.05, no se rechaza la hipótesis nula. Se concluye que el pasado de la variable Desempleo no aporta capacidad predictiva significativa sobre el CrecimientoPIB a un nivel de significancia del 5% con 4 rezagos.