Cointegración y Causalidad

Samael Aarón García Meléndez

2026-11-08

A. Conceptos clave:

Series de tiempo: Observaciones de una variable anotada según su comportamiento en el tiempo

Series estacionarias: Serie de tiempo con cierto comportamiento o patron. Ej. Tasa de desempleo, Tasa de inflación.

Series no estacionarias: Series de tiempo que crecen y decrecen sin ningun patron. Ej. PIB

Cointegración: hace referencia a la existencia de una relación de equilibrio entre dos o más series no estacionarias. A pesar de que las series individuales puedan presentar tendencias estocásticas, una combinación lineal de ellas podría ser estacionaria, lo que indica una relación económica significativa a largo plazo.

Causalidad: busca determinar si los valores pasados de una serie temporal ayudan a predecir los valores actuales de otra.

Estocástico: todo aquello que es aleatorio, probabilístico o cuyo resultado depende, total o parcialmente, del azar

1. PRUEBA DE RAIZ UNITARIA DE DICKEY & FULLER

Existen tres versiones principales de la prueba de Dickey-Fuller:

Prueba de raíz unitaria simple: evalúa si una serie temporal tiene una raíz unitaria sin considerar términos adicionales.

Prueba con término constante (deriva): incluye un término constante en el modelo para considerar la posibilidad de una media distinta de cero.

Prueba con término constante y tendencia temporal: considera tanto un término constante como una tendencia determinista en el tiempo, permitiendo evaluar series que pueden tener una tendencia lineal.\[ (Y[t]==PY[t−1]+ع[t]) \]

\[Y_t = P Y_{t-1} + \varepsilon_t\]

Donde:

  • \(Y_t\) es el valor de la serie en el tiempo \(t\).
  • \(P\) es el parámetro autorregresivo que indica la relación entre \(Y_t\) y \(Y_{t-1}\).
  • \(\varepsilon_t\) es el término de error, que se asume ruido blanco (\(\varepsilon_t \sim N(0, \sigma^2)\)).

El interés principal está en evaluar si \(P = 1\), lo que implica la existencia de una raíz unitaria y, por ende, no estacionariedad.

Proposito de la prueba

La prueba de cointegración de Johansen se utiliza para identificar relaciones de equilibrio a largo plazo entre dos o más series temporales no estacionarias integradas del mismo orden (generalmente \(I(1)\)). Es particularmente útil cuando las variables tienen tendencias comunes y queremos confirmar si existe una combinación lineal que resulte estacionaria (\(I(0)\)) entre ellas.

Hipótesis de la Prueba

Hipótesis nula (\(H_0\)): \(P = 1\). La serie temporal tiene una raíz unitaria (es no estacionaria).

Hipótesis alternativa (\(H_1\)): \(P < 1\). La serie temporal no tiene una raíz unitaria (es estacionaria).

Cuando \(P = 1\), el modelo se convierte en un proceso de camino aleatorio (random walk):

\[Y_t = Y_{t-1} + \varepsilon_t\]

La hipótesis nula postula que la serie es no estacionaria, lo que implica que cualquier shock tendrá un efecto permanente en la serie. Rechazar H₀ sugiere que la serie es estacionaria, indicando que los shocks tendrán efectos transitorios y la serie revertirá a su media a largo plazo.

Sintaxis en R

La función ur.df() del paquete urca permite realizar la prueba Dickey-Fuller Aumentada (ADF). La sintaxis general y un ejemplo de aplicación se presentan a continuación:

# Cargar el paquete
library(urca)

# Generar datos: paseo aleatorio (Random Walk)
set.seed(123)
n <- 100
y <- cumsum(rnorm(n)) # Serie con raíz unitaria (I(1))

# Ejecutar la prueba Dickey-Fuller
df.result <- ur.df(y, type = "none", lags = 0, selectlags = "Fixed")

# Ver el resumen de resultados
summary(df.result)

Parámetros de la función:

  • y: Serie temporal que se desea analizar.
  • type: Especificación del modelo determinista que se ajustará. Puede tomar uno de los siguientes tres valores:
    1. "none": Modelo sin constante (intercepto) ni tendencia temporal (\(\Delta Y_t = \gamma Y_{t-1} + \varepsilon_t\)).
    2. "drift": Modelo con constante o deriva (\(\Delta Y_t = \alpha_0 + \gamma Y_{t-1} + \varepsilon_t\)).
    3. "trend": Modelo con constante y tendencia lineal temporal (\(\Delta Y_t = \alpha_0 + \alpha_1 t + \gamma Y_{t-1} + \varepsilon_t\)).
  • lags: Número máximo de retardos (rezagos) de la variable diferenciada \(\Delta Y_{t-i}\) a incluir en el modelo para corregir la autocorrelación serial. Si se fija en 0, se ejecuta la prueba Dickey-Fuller original.
  • selectlags: Criterio estadístico para seleccionar el número óptimo de retardos de forma automática. Por defecto es "Fixed" (usa el número exacto especificado en lags), pero también permite usar "AIC" o "BIC".

Estadistico de prueba.

El estadístico de la prueba se basa en estimar el parámetro de un modelo autorregresivo (AR) y verificar si este es significativamente diferente de 1. La hipótesis nula de la prueba es que existe una raíz unitaria (\(H_0: P = 1\)), frente a la alternativa de estacionariedad (\(H_1: P < 1\)).

Es decir, la prueba de Dickey y Fuller deriva el estadístico de prueba basado en el estimador de \(\hat{\phi}\) y su error estándar:

\[\tau = \frac{\hat{\phi}}{SE(\hat{\phi})}\]

Este estadístico (\(\tau\)) se compara con valores críticos específicos tabulados por Dickey y Fuller (1981), donde es importante aclarar que estos valores críticos no son los mismos que los de una distribución \(t\)-Student estándar debido a la dependencia serial en los datos.

Criterio de decisión.

  1. Rechazar \(H_0\) (es decir, la serie es estacionaria): Si el valor del estadístico de prueba \(\tau\) es menor (más negativo) que el valor crítico tabulado.
  2. No rechazar \(H_0\) (es decir, la serie tiene una raíz unitaria y es no estacionaria): Si el valor del estadístico de prueba \(\tau\) es mayor que el valor crítico tabulado.

Interpretación del rechazo o no rechazo de hipótesis nula

•Rechazo de Rechazo de H0: El p-valor es menor a 0.05, por lo que se rechaza H0. La serie es estacionaria.

•No rechazo de H0: El p-valor es mayor a 0.05, por lo que no se rechaza H0. La serie no es estacionaria.

Implementación práctica

Carga del PIB de El Salvador del periodo 1965 a 2026, como serie de tiempo, a partir de los registros del Banco Mundial.


############################################### 
# 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 
-496.29  -32.67   13.42   45.03  451.05 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) 43.34290   98.34142   0.441   0.6611  
z.lag.1     -0.02889    0.03849  -0.750   0.4562  
tt           2.35730    1.31217   1.796   0.0779 .
z.diff.lag   0.23127    0.13393   1.727   0.0898 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 124.9 on 55 degrees of freedom
Multiple R-squared:  0.1236,    Adjusted R-squared:  0.07582 
F-statistic: 2.586 on 3 and 55 DF,  p-value: 0.06229


Value of test-statistic is: -0.7504 1.9424 1.7899 

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

En este ejemplo la interpretación es:

El PIB per cápita real de El Salvador es no estacionario (tiene raíz unitaria).

  • Evidencia estadística (tau3): El estadístico de prueba para la hipótesis de raíz unitaria es -0.7504. Al compararlo con el valor crítico estándar del 5% (-3.45), observamos que no es más negativo que este. Por lo tanto, no se rechaza la hipótesis nula (H₀) de no estacionariedad.

  • Comportamiento de la serie: El coeficiente del primer rezago \((z.lag.1 = -0.028)\) es estadísticamente igual a cero \((p > 0.05\)\). Esto confirma que los cambios en la variable dependen fuertemente de su propio pasado y de shocks históricos aleatorios que no se diluyen en el tiempo.

  • Tendencia: Existe una tendencia temporal determinista \((tt)\) levemente significativa al 10% \((p = 0.0779)\), lo que se traduce visualmente en una trayectoria ascendente o descendente sostenida a largo plazo.

2. Prueba de cointegración de Johansen

Próposito de la prueba

La prueba de cointegración de Johansen se utiliza para identificar relaciones de equilibrio a largo plazo entre dos o más series temporales no estacionarias integradas del mismo orden (generalmente I(1)). Es particularmente útil cuando las variables tienen tendencias comunes y queremos confirmar si existe una combinación lineal estacionaria entre ellas.

La prueba de cointegración de Johansen se utiliza para identificar relaciones de equilibrio a largo plazo entre dos o más series temporales no estacionarias integradas del mismo orden (generalmente I(1)). Es particularmente útil cuando las variables tienen tendencias comunes y queremos confirmar si existe una combinación lineal estacionaria entre ellas.

Hipotesis de la prueba

La prueba de Johansen considera las siguientes hipótesis, dependiendo del enfoque (traza o valor propio máximo):

  • Hipótesis nula (\(H_0\)): No existe cointegración, o el número de relaciones de cointegración es igual a \(r\).
  • Hipótesis alternativa (\(H_1\)): Existe cointegración.
    • Para la prueba de traza: El número de relaciones de cointegración es mayor que \(r\).
    • Para el valor propio máximo: Existe \(r+1\) relaciones de cointegración.

La hipótesis nula se basa en la ausencia de cointegración, ya que queremos verificar si las series se mueven juntas en el largo plazo. El rechazo de \(H_0\) sugiere evidencia de relaciones cointegradas.

Sintaxis en R

Para ejecutar la prueba de cointegración de Johansen en R, se utiliza la función ca.jo() del paquete urca. El siguiente bloque de código ilustra la generación de un sistema de series temporales cointegradas de orden \(I(1)\) y la estimación de la prueba:

# Cargar el paquete requerido
library(urca)

# Generar datos de ejemplo (Series integradas de orden 1)
set.seed(123)
X <- cumsum(rnorm(100))  # Serie temporal 1
Y <- 0.5 * X + cumsum(rnorm(100, sd = 0.5))  # Serie temporal 2 (Cointegrada con X)

# Combinar las series en una matriz o data frame
data <- cbind(X, Y)

# Ejecutar la prueba de cointegración de Johansen
johansen_test <- ca.jo(data, type = "trace", ecdet = "const", K = 2)

# Mostrar el resumen estadístico de los resultados
summary(johansen_test)

Parámetros clave de la función:

  • data: Matriz o conjunto de datos (data frame) multivariado que contiene las series temporales no estacionarias que se van a evaluar.
  • type: Especifica el tipo de estadístico de razón de verosimilitud que se calculará. Puede tomar uno de los siguientes valores:
    • "trace": Ejecuta la prueba del Trazo (\(\lambda_{\text{trace}}\)), la cual evalúa si el número de vectores de cointegración es menor o igual a \(r\).
    • "eigen": Ejecuta la prueba del Máximo Valor Propio (\(\lambda_{\text{max}}\)), la cual evalúa de forma secuencial la existencia de exactamente \(r+1\) vectores.
  • ecdet: Especifica el término determinista que se incluirá en la ecuación de cointegración (VECM):
    • "none": Sin constante ni tendencia.
    • "const": Incorpora una constante intercepto en el espacio de cointegración de largo plazo.
    • "trend": Incorpora una tendencia lineal en la relación de equilibrio de largo plazo.
  • K: Número de rezagos (lag order) especificado para el modelo de Vectores Autorregresivos (VAR) en niveles subyacente. Corresponde al número de retrasos temporales necesarios para asegurar la ausencia de autocorrelación en los residuos.

Estadístico de prueba

El estadístico de prueba incluye:

•Estadístico de traza:

•Estadístico de valor propio máximo:

Donde es el tamaño de la muestra y son los valores propios estimados.En la salida de R, estos estadísticos se muestran junto con sus valores críticos para diferentes niveles de significancia ().

Criterio de decisión

1. Comparar el estadístico de prueba con los valores críticos:

•Si el estadístico es mayor que el valor crítico, se rechaza .

•De lo contrario, no se rechaza .

2. Según el número de relaciones cointegradas encontradas.

Interpretación del rechazo o no rechazo de hipótesis nula

•Rechazo de 𝐻0: Existe evidencia de al menos una relación de cointegración entre las variables, indicando que se mueven juntas en el largo plazo.

•No rechazo de 𝐻0: No hay evidencia suficiente para afirmar que las variables están cointegradas.

Ejemplo Práctico

Un caso macroeconómico clásico y altamente relevante para El Salvador es analizar la relación de largo plazo entre el PIB per cápita real y el Ingreso por Remesas Personales (% del PIB). Ambas variables suelen estar fuertemente vinculadas en la economía salvadoreña.


###################### 
# Johansen-Procedure # 
###################### 

Test type: trace statistic , with linear trend in cointegration 

Eigenvalues (lambda):
[1]  3.770463e-01  1.121575e-01 -3.330669e-16

Values of teststatistic and critical values of test:

          test 10pct  5pct  1pct
r <= 1 |  5.23 10.49 12.25 16.26
r = 0  | 26.06 22.76 25.32 30.45

Eigenvectors, normalised to first column:
(These are the cointegration relations)

            PIB_Real.l2 Remesas.l2  trend.l2
PIB_Real.l2    1.000000     1.0000   1.00000
Remesas.l2     2.238968   769.0371  20.62867
trend.l2     -69.806375  -454.8674 -52.40687

Weights W:
(This is the loading matrix)

             PIB_Real.l2    Remesas.l2      trend.l2
PIB_Real.d -0.2349877930  0.0063116616 -5.069623e-15
Remesas.d  -0.0006272437 -0.0002321764 -1.417838e-17

Interpretacion

La interpretación del test de la traza (trace statistic) se realiza de forma secuencial de abajo hacia arriba para determinar el rango de cointegración (r):

  • Prueba de r = 0 (Hipótesis Nula: No hay vectores de cointegración):
    El estadístico de prueba es 26.06. Al compararlo con los valores críticos, observamos que supera el umbral del 10% (22.76) y del 5% (25.32), aunque se encuentra por debajo del 1% (30.45). Por lo tanto, se rechaza la hipótesis nula al 5% de significancia. Esto demuestra que el PIB Real y las Remesas no se mueven de forma independiente a largo plazo; comparten una trayectoria común.

  • Prueba de r ≤ 1 (Hipótesis Nula: Existe como máximo un vector):
    El estadístico de prueba cae drásticamente a 5.23. Este valor es notablemente inferior al valor crítico del 5% (12.25). En consecuencia, no se puede rechazar la hipótesis nula.

Conclusión del rango: Existe exactamente una (r = 1) relación de cointegración (o de equilibrio de largo plazo) entre ambas variables.

3. Causalidad en el Enfoque de Granger

Proposito de la prueba

Es un test que se utiliza para examinar si una variable puede usarse para pronosticar otra y si tiene resultado unidireccional o bidireccional.

Para ello, se tiene que comparar y deducir si el comportamiento actual y pasado de una serie temporal \(X\) predice la conducta de otra serie temporal \(Y\). Si esto ocurre, se puede afirmar que \(X\) causa a \(Y\), y el comportamiento es unidireccional. Si de la misma manera \(Y\) ayuda en la predicción de \(X\), la causalidad es bidireccional, afirmando que \(X\) causa a \(Y\) e \(Y\) causa a \(X\).

En general tenemos los casos siguientes:

  • Causalidad unidireccional: \(X \rightarrow Y\)
  • Causalidad unidireccional: \(Y \rightarrow X\)
  • Causalidad bidireccional: \(X \leftrightarrow Y\)
  • Ausencia de causalidad: No hay causalidad entre las variables \(X\) e \(Y\).

Hipotesis de la prueba

  • Hipótesis nula (\(H_0\)): Establece que la serie temporal \(X\) no causa en el sentido de Granger a la serie temporal \(Y\). En otras palabras, \(X\) no contiene información adicional significativa para predecir a \(Y\) más allá de lo que se puede predecir utilizando los valores pasados de la propia \(Y\).
  • Hipótesis alternativa (\(H_1\)): La serie temporal \(X\) causa en el sentido de Granger a la serie temporal \(Y\), dado que los valores pasados de \(X\) contienen información estadísticamente significativa para predecir los valores futuros de \(Y\).

Explicación sobre la hipótesis nula y alternativa

Hipótesis nula (\(H_0\)): \(X\) no causa a \(Y\) en el sentido de Granger. Es decir, los valores pasados de \(X\) no proporcionan información adicional significativa para predecir \(Y\), más allá de la que ya proporcionan los valores pasados de \(Y\).

Hipótesis alternativa (\(H_1\)): \(X\) causa a \(Y\) en el sentido de Granger. Esto implica que los valores pasados de \(X\) contienen información que mejora estadísticamente la predicción de \(Y\).

Sintaxis en R

En R, usamos la función grangertest() del paquete lmtest para realizar una prueba de causalidad de Granger, que tiene la siguiente sintaxis:

grangertest(X, Y, order = p)

Donde:

  • \(X\): Esta es la primera serie de tiempo (variable predictora).
  • \(Y\): El segundo conjunto de la serie temporal (variable dependiente).
  • order = p: El número de rezagos (\(p\)) que se utilizarán en el modelo. El valor predeterminado es 1.

Estadistico de prueba

Para probar que \(X\) causa en el sentido de Granger a \(Y\), se debe examinar si la inclusión de los valores rezagados de \(X\) en la regresión de \(Y\) (sobre los valores rezagados de \(X\) e \(Y\)) reduce significativamente la varianza del error. Se dice que una serie temporal \(X\) causa a \(Y\) en el sentido de Granger si se puede demostrar que esos valores de \(X\) proporcionan información estadísticamente significativa sobre los valores futuros de \(Y\) a través de una serie de pruebas \(t\) y pruebas \(F\) (F-statistic) sobre los valores rezagados de \(X\). Dichas pruebas nos brindan un valor \(p\) (p-value) correspondiente.

  • Estadístico de prueba \(F\) (F-statistic): Se utiliza para comparar el modelo restringido frente al modelo no restringido.
  • Valor \(p\) (p-value): Indica la probabilidad de obtener un resultado al menos tan extremo como el observado, bajo el supuesto de que la hipótesis nula (\(H_0\)) es verdadera.

Criterio de decisión.

En R, tenemos que si el estadístico \(F\) (F-statistic) es alto, indica que los valores pasados de \(Y\) mejoran significativamente la predicción de \(X\). En el caso del valor \(p\) (p-value), si este es menor que \(0.05\) (\(\alpha = 0.05\)), se rechaza la hipótesis nula (\(H_0\)) y se concluye que \(Y\) causa a \(X\) en el sentido de Granger.

Interpretación del rechazo o no rechazo de la Hipotesis Nula

Comparamos el estadístico \(F\) obtenido con el valor crítico de la distribución \(F\) (F-critical). Si el estadístico \(F\) es mayor que el valor crítico, se puede rechazar la hipótesis nula, aunque habitualmente se verifica directamente el valor \(p\) (p-value).

  • Si el valor \(p < \text{Nivel de significancia}\) (donde el \(5\%\) o \(\alpha = 0.05\) se usa ampliamente), entonces la hipótesis nula (\(H_0\)) se rechaza, concluyendo que existe causalidad en el sentido de Granger.
  • Si el valor \(p > \text{Nivel de significancia}\), entonces no se puede rechazar la hipótesis nula (\(H_0\)), concluyendo que la variable no aporta poder predictivo.

Ejemplo Práctico

[1] "--- ¿Las Remesas causan al PIB Real? ---"

    Granger causality H0: D_Remesas do not Granger-cause D_PIB_Real

data:  VAR object modelo_var
F-Test = 2.1374, df1 = 1, df2 = 82, p-value = 0.1476
[1] "--- ¿El PIB Real causa a las Remesas? ---"

    Granger causality H0: D_PIB_Real do not Granger-cause D_Remesas

data:  VAR object modelo_var
F-Test = 4.6653, df1 = 1, df2 = 82, p-value = 0.0337

La hipótesis nula (H₀) es siempre que “la variable X NO causa a la variable Y en el sentido de Granger”.

  • Si el p-value es MENOR a 0.05: Se rechaza la hipótesis nula. Se concluye que sí existe causalidad de Granger (el pasado de esa variable ayuda a predecir el futuro de la otra).

  • Si el p-value es MAYOR a 0.05: No se puedes rechazar la hipótesis nula. Se concluyes que la variable no causa estadísticamente a la otra a corto plazo.

1. Dirección: Remesas \(\rightarrow\) PIB Real

  • Hipótesis Nula (\(H_{0}\)): Las variaciones en las remesas no causan (en el sentido de Granger) a las variaciones en el PIB Real.
  • Resultado: El \(p\)-valor es \(0.1476\). Al ser mayor que \(0.05\), no se rechaza la hipótesis nula.
  • Interpretación: Estadísticamente, los cambios de corto plazo en el flujo de remesas no ayudan a predecir el comportamiento inmediato del PIB Real. Esto implica que el impacto de las remesas sobre la producción no es instantáneo ni mecánico año con año.

2. Dirección: PIB Real \(\rightarrow\) Remesas

  • Hipótesis Nula (\(H_{0}\)): Las variaciones en el PIB Real no causan (en el sentido de Granger) a las variaciones en las remesas.
  • Resultado: El \(p\)-valor es \(0.0337\). Al ser menor que \(0.05\), se rechaza la hipótesis nula con un \(95\%\) de confianza.
  • Interpretación: El comportamiento pasado del PIB Real sí ayuda a predecir el comportamiento de las remesas a corto plazo. Esto sugiere una relación unidireccional donde la actividad económica interna influye o determina la dinámica de recepción de estos flujos.

Conclusión Económica Integrada (Johansen + Granger)

  1. A corto plazo (Granger): Las remesas responden a la situación económica interna de El Salvador (medida por el PIB). Por ejemplo, cuando la economía local experimenta caídas o shocks negativos, los migrantes tienden a enviar más recursos como un mecanismo de seguro o ayuda familiar (un comportamiento contracíclico habitual).

  2. A largo plazo (Johansen): Aunque a corto plazo las remesas no “muevan” el PIB, ambas variables están atadas por una relación de equilibrio de largo plazo. El impacto de las remesas en el crecimiento es estructural y acumulativo (a través del consumo persistente o la inversión en capital humano), estabilizando la senda económica del país a lo largo de las décadas.

Es de recordar, que segun la estimación del PIB, el gasto de los hogares, se sostiene en gran proporcion por las remesas.