Cointegración y Causalidad
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMÍA
CICLO II - 2025
Cointegración y Causalidad
Asignatura:
Métodos para el Análisis Económico
Grupo teórico:
01
Docente:
MSF. Carlos Ademir Pérez Alas
Integrantes:
Gabriela Guadalupe Leiva Villalta LV22011
Andrea Paola Mejía García MG20044
Luz Virginia Perez Ramirez PR18044
Ciudad universitaria, 30 de noviembre de 2025
1. Prueba de Raíz Unitaria de Dickey & Fuller
1.1 Propósito de la prueba
El propósito principal de la Prueba de Raíz Unitaria de Dickey-Fuller (y su versión aumentada, ADF) es determinar si una serie de tiempo univariada es estacionaria o si contiene una raíz unitaria.
• Identificación de No Estacionariedad: Se utiliza para probar si una serie de tiempo es integrada de orden uno \((I(1))\), lo que significa que el proceso tiene una raíz unitaria y no es estacionario.
• Implicaciones de los Shocks: Determinar si existe una raíz unitaria es crucial, ya que, si existe, los shocks (innovaciones) al proceso tienen efectos permanentes en el nivel de la serie, y la función de autocorrelación no desaparece.
• Corrección de Modelos: El test ayuda a decidir si la serie debe ser diferenciada antes de ser modelada a través de un esquema estacionario. Esto es vital, ya que el uso de procesos \(I(1)\), no relacionados en regresiones puede llevar a regresiones espurias.
• Análisis de Cointegración: Cuando se analiza un sistema de variables \(I(1)\), el test ADF, aplicado a una combinación lineal de estas variables (un vector de cointegración conocido \(\alpha' X_t\) permite probar si esa combinación lineal es estacionaria \((I(0))\), es decir, si las variables están cointegradas (Blume & Durlauf, 2010).
1.2 Hipótesis de la prueba
La prueba ADF se implementa ajustando una regresión autoregresiva, posiblemente incluyendo términos determinísticos (constante y/o tendencia) y términos de diferencia rezagados para corregir la correlación serial. La regresión base es típicamente:
\[ \Delta y_t = \mu + \beta t + \alpha y_{t-1} + \sum_{i=1}^{k-1} \gamma_i \Delta y_{t-i} + e_t \]
Donde el test se centra en el coeficiente \(\alpha\) de la variable rezagada \(y_{t-1}\).
Hipótesis Nula \((H_0)\): La serie tiene una raíz unitaria.
\(H_0:\; \alpha = 0\)
Explicación: Bajo \(H_0:\; \alpha = 0\), la serie \(y_t\) es un proceso estocástico \(I(1)\) (integrado de orden uno) o un proceso de diferencia estacionaria. Esto implica que los shocks o innovaciones tendrán efectos permanentes en el nivel de \(y_t\). No se rechaza la hipótesis de la presencia de una raíz unitaria.
Hipótesis Alternativa \((H_a)\): La serie es estacionaria o tiene una raíz menor que la unidad.
\(H_a:\; \alpha < 0\)
Explicación: Rechazar \((H_0)\) a favor de \((H_a)\) significa que el coeficiente \(\alpha\) es significativamente menor que cero. Esto indica que el proceso es estacionario. Si la regresión incluye una tendencia determinística \((\beta t)\), la alternativa es que la serie es estacionaria en torno a una tendencia determinística (Trend Stationary) (Blume & Durlauf, 2010).
1.3 Sintaxis de implementación en R
La función principal para realizar la prueba ADF es ur.df(), disponible en el paquete urca.
Sintaxis General:
ur.df(
y, type = c(“none”, “drift”, “trend”),
lags = 1,
selectlags = c(“Fixed”, “AIC”, “BIC”))
Explicación de los Argumentos:
• y: Es el vector (la serie de tiempo) que se va a probar para una raíz unitaria.
• type: Define el tipo de término determinístico a incluir en la regresión de prueba. Las opciones son:
◦ "none": No se incluye ni un intercepto (constante) ni una tendencia en la regresión de prueba.
◦ "drift": Se añade un intercepto (constante) a la regresión.
◦ "trend": Se añade tanto un intercepto como una variable de tendencia a la regresión.
• lags: Especifica el número de rezagos de la variable endógena que se incluirán en la regresión. El valor predeterminado es 1.
• selectlags: Permite la selección automática del número de rezagos utilizando criterios de información. Las opciones son:
◦ "Fixed": (Opción por defecto) Utiliza una longitud de rezago fija definida por el argumento lags.
◦ "AIC": La selección del rezago se realiza de acuerdo con el Criterio de Información de Akaike.
◦ "BIC": La selección del rezago se realiza de acuerdo con el Criterio de Información Bayesiano.
Cuando se utiliza “AIC” o “BIC”, el argumento lags establece el número máximo de rezagos a considerar (Pfaff, 2008).
1.4 Estadístico de prueba
La función ur.df() calcula el estadístico de prueba de Dickey-Fuller Aumentada. El resultado de la función es un objeto de la clase ur.df.
Cuando se aplica el método summary() a este objeto (por ejemplo, summary (lc.df)), la salida generada devuelve el estadístico tau \((\tau)\) relevante.
El valor del estadístico de prueba se encuentra en el slot teststat del objeto generado por ur.df(). Al usar summary (objeto), se devuelve el estadístico tau relevante, junto con los valores críticos.
La función show (objeto) también permite visualizar el estadístico de prueba (Pfaff, 2008).
1.5 Criterio de decisión
La prueba de Dickey-Fuller Aumentada contrasta la hipótesis nula \((H_0)\) de que la serie tiene una raíz unitaria (es decir, no es estacionaria).
El criterio de decisión se basa en comparar el estadístico de prueba calculado (el estadístico \(\tau\) o t) con los valores críticos asintóticos correspondientes, los cuales son tomados de Dickey and Fuller (1981) y Hamilton (1994).
La salida de summary (objeto) proporciona los valores críticos (cval) en los niveles de significancia del 1%, 5% y 10%.
• Decisión: Se rechaza la hipótesis nula de raíz unitaria si el valor absoluto del estadístico de prueba (teststat) es mayor que el valor absoluto del valor crítico (cval) en el nivel de significancia elegido. Dado que el estadístico de prueba ADF es negativo, esto equivale a decir que el estadístico de prueba debe ser más negativo que el valor crítico.
Si el estadístico de prueba se encuentra fuera de la región crítica (es decir, no es lo suficientemente negativo), no se rechaza \((H_0)\), lo que implica que la serie es no estacionaria (tiene una raíz unitaria) (Pfaff, 2008).
1.6 Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
La interpretación depende de si el estadístico de prueba cae dentro de la región de rechazo definida por los valores críticos no estándar:
• Rechazo de \((H_0)\) (El estadístico t es más negativo que el valor crítico):
Conclusión: Se concluye que la serie es estacionaria. Implicación: El proceso no contiene una raíz unitaria y los shocks son transitorios.
Dependiendo de la versión del test utilizada, la serie será estacionaria alrededor de su media o alrededor de una tendencia determinística.
• No Rechazo de \((H_0)\) (El estadístico t no es suficientemente negativo):
Conclusión: No hay evidencia suficiente para rechazar la hipótesis de que la serie contiene una raíz unitaria. Se considera que la serie es integrada de orden uno \((I(1))\) Implicación: Los shocks tienen efectos permanentes. Esto sugiere que la serie no debe usarse en regresiones estándar sin ser diferenciada para evitar el problema de las regresiones espurias (Blume & Durlauf, 2010).
1.7 Ejemplo
A continuación, se muestra un ejemplo utilizando el conjunto de datos Raotbl3, que contiene series de tiempo del Reino Unido, incluyendo el logaritmo del gasto real en consumo (lc) (Pfaff, 2008).
library(urca) # Carga del paquete urca
# Carga de datos
data(Raotbl3)
attach(Raotbl3)
# Prueba ADF a la serie 'lc'
lc.df <- ur.df(y = lc, lags = 3, type = "trend")
summary(lc.df)##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.044714 -0.006525 0.000129 0.006225 0.045353
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.7976591 0.3547775 2.248 0.0270 *
## z.lag.1 -0.0758706 0.0338880 -2.239 0.0277 *
## tt 0.0004915 0.0002159 2.277 0.0252 *
## z.diff.lag1 -0.1063957 0.1006744 -1.057 0.2934
## z.diff.lag2 0.2011373 0.1012373 1.987 0.0500 .
## z.diff.lag3 0.2998586 0.1020548 2.938 0.0042 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01307 on 89 degrees of freedom
## Multiple R-squared: 0.1472, Adjusted R-squared: 0.09924
## F-statistic: 3.071 on 5 and 89 DF, p-value: 0.01325
##
##
## Value of test-statistic is: -2.2389 3.7382 2.5972
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -4.04 -3.45 -3.15
## phi2 6.50 4.88 4.16
## phi3 8.73 6.49 5.47
La Prueba de Raíz Unitaria de Dickey & Fuller funciona como un “detector de inercia” para series de tiempo. Si el estadístico de prueba (el valor generado por R) es muy negativo, es como si el detector gritara: “¡La inercia es baja!” (Rechazamos la raíz unitaria, la serie tiende a volver a su media o tendencia, y es estacionaria). Si el estadístico no es lo suficientemente negativo, es como si el detector dijera: “La inercia es alta” (No rechazamos la raíz unitaria, la serie no tiene memoria de su media, y no es estacionaria). Los valores críticos proporcionados en la salida de R actúan como el umbral de sensibilidad del detector.
2. Cointegración en el enfoque de Soren Johansen
2.1 Propósito de la prueba
La prueba de cointegración de Johansen (1988, 1991) constituye una metodología estadística fundamental en el análisis de series de tiempo multivariadas no estacionarias. Su propósito principal se articula en los siguientes aspectos:
Detección de Relaciones de Equilibrio de Largo Plazo La prueba permite identificar si un conjunto de variables económicas no estacionarias comparten una relación de equilibrio estable en el largo plazo, a pesar de que individualmente exhiban comportamientos no estacionarios (Johansen, 1988). Como señalan Engle y Granger (1987), “dos series no estacionarias pueden estar cointegradas si existe una combinación lineal estacionaria entre ellas” (p. 251).
Determinación del Número de Vectores de Cointegración A diferencia del enfoque de Engle-Granger, limitado a dos variables, el procedimiento de Johansen permite determinar el número de relaciones de cointegración (r) en sistemas multivariados con n variables (Johansen, 1991). Esto es particularmente relevante en modelos económicos donde múltiples variables pueden estar interrelacionadas.
Prevención de Regresiones Espurias La prueba proporciona un fundamento estadístico sólido para evitar regresiones espurias, fenómeno que ocurre cuando se estiman relaciones entre variables no estacionarias sin verificar la existencia de cointegración.
2.2 Hipótesis de la prueba
Hipótesis nula \((H_0)\): El rango de cointegración es \((r = 0)\)
Hipótesis Alternativa \((H_1)\): El rango de cointegración es \((r > 0)\)
Dando por resultado que:\((H_0)\)
= No existe cointegración \((H_1)\)
= Existe cointegración de 1 o más series.
2.3 Sintaxis de implementación en R
library(urca)
Sintaxis básica:
resultado <- ca.jo(x, type = “trace”, ecdet = “const”, K = 2)
Argumentos:
x: Matriz o data frame con las series de tiempo
type: “trace” o “eigen” (estadístico de traza o máximo autovalor)
ecdet: Especificación del término determinístico (“none”, “const”, “trend”)
K: Número de rezagos en el VAR
spec: “transitory” o “longrun” (especificación del modelo)
2.4 Estadístico de prueba
\(l^*_{r+1} - l^*_r = - \frac{T}{2} \text{ln}(1-\bar{\lambda}_{r+1})\)
2.5 Criterio de decisión
\((H_0)\) : \(r = 0\) Se rechaza
Se puede afirmar que en la serie de tiempo no existe cointegración.
\((H_1)\) : \(r = m\) No se rechaza
Se puede afirmar que en la serie de tiempo existe cointegración
2.6 Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
Esta prueba se basa en la razón de máxima verosimilitud \(l\) \(n[LMV(r)LMV(n)]\) y es efectuada secuencialmente para
Hipotesis
\((H_0)\) : \(r = 0\) No existe Cointegración
\((H_1)\) : \(r = m\) Existe Cointegración
Esta prueba comprueba la hipótesis nula de que el rango de cointegración es r frente a la alternativa que el rango de cointegración es n.
2.7 Ejemplo
# Cargar librerías
library(urca)
library(vars)
# Crear datos de ejemplo (series no estacionarias cointegradas)
set.seed(123)
n <- 100
x <- cumsum(rnorm(n))
y <- 2*x + rnorm(n, 0, 0.5) # y cointegrada con x
# Datos como matriz
datos <- cbind(y, x)
# Aplicar prueba de sore Johansen
johansen_test <- ca.jo(datos, type = "trace", ecdet = "const", K = 2)
# Ver resultados
summary(johansen_test)##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 4.045959e-01 2.751562e-02 2.396856e-18
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 2.73 7.52 9.24 12.97
## r = 0 | 53.55 17.85 19.96 24.60
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## y.l2 x.l2 constant
## y.l2 1.00000000 1.00000 1.0000000
## x.l2 -1.99133355 -15.77522 -3.8122073
## constant 0.03452977 59.05195 -0.1278136
##
## Weights W:
## (This is the loading matrix)
##
## y.l2 x.l2 constant
## y.d -0.7046001 0.007708581 2.512695e-16
## x.d 0.2673842 0.003786734 -1.014889e-16
3. Causalidad en el sentido de Granger
3.1 Propósito de la prueba
La prueba de Causalidad en el Sentido de Granger (Granger, 1969) es una técnica estadística que se emplea para determinar si los valores rezagados de una variable \(X\) proporcionan información adicional que ayuda a predecir los valores futuros de otra serie \(Y\), una vez que se han considerado los valores pasados de \(Y\). Este concepto se relaciona con la precedencia temporal y la capacidad predictiva, y no con la causalidad en un sentido filosófico o teórico estricto (Hamilton, 1994).
El propósito fundamental de la prueba es examinar si la inclusión de los valores pasados de la variable \(X_t\) reduce significativamente la varianza del error de predicción de la variable \(Y_t\), más allá de lo que ya se logra con los rezagos de \(Y_t\) sola. Es esencial para la especificación de modelos de Vectores Autorregresivos (VAR) y para determinar la direccionalidad de la información entre series económicas (Lütkepohl, 2007).
3.2 Hipótesis de la prueba
Para la hipótesis de la prueba tenemos los siguientes planteamientos
- Hipótesis nula \((H_0)\))
-
El rango de cointegración es \((r=0)\)
- Hipótesis Alternativa \((H_1)\)
-
El rango de cointegración es \((r>0)\)
Dando por resultado que: \((H_0)\) =No existe cointegración \((H_1)\) = Existe cointegración de 1 o más series.
3.3 Sintaxis de implementación en R
Argumentos:
library(urca)
ca.jo (x,
type = c ("eigen", "trace"),
ecdet = c ("none", "const", "trend"),
K = 2,
spec = c ("largo plazo", "transitorio"),
temporada = NULL,
dumvar = NULL)Donde:
X: Matriz de datos a investigar para la cointegración.
type: La prueba a realizar, ya sea eigen o trace.
ecdet: Carácter, none para no interceptar en la cointegración, const por término constante en cointegración y trend para la variable de tendencia en cointegración
k: El orden de retraso de la serie (niveles) en el VAR.
spec: Determina la especificación del VECM de la serie,largo plazo o trasnsitorio, se refiere a la especificación del VECM.
temporada: Si se deben incluir variables ficticias estacionales, la frecuencia de los datos debe establecerse en consecuencia, es decir 4 para datos trimestrales.
dumvar: Matriz de variables estacionales, si se incluyen
3.4 Estadístico de prueba
El estadístico de prueba en la salida R se muestra como “Values of teststatistic and critical values of test:” los estadisticos de estas se ubicaran en la columna test del resumen de estadisticas de pruebas y valores criticos.
3.5 Criterio de decisión
El criterio de decisión utilizado en la prueba de Causalidad de Granger no es exclusivo de este método, sino que constituye el principio universal de la prueba de hipótesis estadística basada en el valor p (probabilidad de significancia) y el nivel de significancia (\(\alpha\)).
Fundamento del CriterioLa decisión de rechazar o no la Hipótesis Nula (\(H_0\): \(X\) no causa \(Y\)) se basa en comparar el riesgo de error que el investigador está dispuesto a aceptar (\(\alpha\)) con la probabilidad real de error obtenida en el experimento (el valor p).
- Valor \(p (Pr(>F) en R)\):
- Representa la probabilidad de obtener un Estadístico F tan extremo (o más extremo) como el observado, asumiendo que la Hipótesis Nula es verdadera.
- Un valor p pequeño indica que la evidencia observada (la mejora predictiva por los rezagos de \(X\)) es muy improbable si \(X\) realmente no tuviera poder predictivo.
- Nivel de Significancia (\(\alpha\)): -Es el umbral de probabilidad preestablecido por el investigador (comúnmente \(\alpha = 0.05\) o 5%) que define la máxima probabilidad aceptable de cometer un Error Tipo I (rechazar \(H_0\) cuando es cierta)
Regla de Decisión.
La regla se establece de la siguiente manera:
Si \(\text{Valor p} < \alpha\) (ej. \(0.005 < 0.05\)): Decisión: Se rechaza la Hipótesis Nula (\(H_0\)).
Si \(\text{Valor p} \geq \alpha\) Decisión: No se rechaza la Hipótesis Nula (\(H_0\)).
3.6 Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
Si \(Pvalue≤α\) se rechaza la hipótesis nula por lo tanto decimos que la serie temporal X hace que la serie temporal Y se cause asi misma con Causa-Granger.
Si \(Pvalue≥α\) no se rechaza la hipótesis nula por lo tanto decimos que la serie temporal X no causa que la serie temporal Y se cause asi misma.
3.7 Ejemplo
\(H_0\): Conocer el numero de pollos no es util para predecir el numero futuro de huevos.
\(H_1\): Conocer el numero de huevos es util para predecir el numero futuro de pollos.
Para este ejemplo, usaremos el conjunto de datos ChickEgg que viene precargado en el paquete lmtest. Este conjunto de datos contiene valores para el número de huevos fabricados junto con el número de pollos en los Estados Unidos de 1930 a 1983.
## chicken egg
## [1,] 468491 3581
## [2,] 449743 3532
## [3,] 436815 3327
## [4,] 444523 3255
## [5,] 433937 3156
## [6,] 389958 3081
3.7.1 Prueba de casualidad de Granger
A continuación, usaremos la función grangertest() para realizar una prueba de causalidad de Granger para ver si el número de huevos fabricados es predictivo del número futuro de pollos.
## Granger causality test
##
## Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3)
## Model 2: chicken ~ Lags(chicken, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 5.405 0.002966 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Como 0.002966< 0.05 Se rechaza la \(H_0\), por lo tanto se concluye que conocer el numero de huevos es util para predecir el numero futuro de pollos.
3.7.2 Prueba de causalidad de Granger a la inversa
Aunque rechazamos la hipótesis nula de la prueba, en realidad es posible que haya un caso de causalidad inversa. Es decir, es posible que el número de pollos esté haciendo que el número de huevos cambie.
Para descartar esta posibilidad, necesitamos realizar la prueba de Causalidad de Granger a la inversa, utilizando pollos como variable predictora y huevos como variable de respuesta:
## Granger causality test
##
## Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3)
## Model 2: egg ~ Lags(egg, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 0.5916 0.6238
Como 0,6238 > 0.05, No se rechaza la \(H_0\), por lo que podemos decir que el número de pollos no es predictivo del número futuro de huevos.
Bibliografía
- Blume, L., & Durlauf, S. N. (2010). Monetary Economics.
- Pfaff, B., Zivot, E., & Stigler, M. (2024). urca: Unit root and cointegration tests for time series data (Versión 1.3-4) [Paquete de software R]. Disponible en https://CRAN.R-project.org/package=urca
- Engle, R. F., & Granger, C. W. J. (1987). Co-integration and error correction: Representation, estimation, and testing. Econometrica.
- Johansen, S. (1991). Estimation and hypothesis testing of cointegration vectors in Gaussian vector autoregressive models. Econometrica
- R-bloggers. (2021, noviembre). Granger Causality Test in R with Example. https://www.r-bloggers.com/2021/11/granger-causality-test-in-r-with-example/
- Granger, C. W. J., & Newbold, P. (1977). Identification of two-way causal models. En M. D. Intriligator (Ed.), Frontiers of Quantitative Economics, Vol III. (pp. 337-360). North-Holland.
- Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press.
- Lütkepohl, H. (2007). New Introduction to Multiple Time Series Analysis. Springer.