Portada

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

MÉTODOS PARA EL ANÁLISIS ECONÓMICO


LABORATORIO 3: COINTEGRACIÓN Y CAUSALIDAD


DOCENTE:

MSF. CARLOS ADEMIR PÉREZ ALAS.

INTEGRANTES:

ARITA POLANCO, BRIAN GUADALUPE.      AP18007.

MEJÍA HERRERA, NORMAN JAVIER.         MH18013.

RAMÍREZ URQUIZA, ALEJANDRA EUNICE.      RU18002.

GRUPO:

3

CIUDAD UNIVERSITARIA, SÁBADO 4 DE DICIEMBRE DE 2021.

Aspectos Generales

Características de las Series Temporales

  • La mayoría de las Series tienen una tendencia. Su valor medio cambia con el tiempo. Son las llamadas Series no estacionarias.

  • Algunas Series describen “meandros,” es decir, suben y bajan sin ninguna tendencia obvia o tendencia a revertir hacia algún punto.

  • Algunas series presentan “Shocks” persistentes. Los cambios repentinos en estas series tardan mucho tiempo en desaparecer.

  • Algunas series se mueven conjuntamente, es decir tienen “co movimientos positivos,” ejemplo: diferentes tasa de interés.

  • La “Volatilidad” de algunas Series varía en el tiempo. Muchas series pueden ser más variables en una año que en otro. (Mata 2004)

Conceptos de Cointegración

Desde el punto de vista de la Economía

Se dice que dos o mas series están cointegradas si las mismas se mueven conjuntamente a lo largo del tiempo y las diferencias entre ellas son estables (es decir estacionarias), aún cuando cada serie en particular contenga una tendencia estocástica y sea por lo tanto no estacionaria. De aquí que la cointegración refleja la presencia de un equilibrio a largo plazo hacia el cual converge el sistema económico a lo largo del tiempo. Las diferencias (o término error) en la ecuación de cointegración se interpretan como el error de desequilibrio para cada punto particular de tiempo.

Desde el punto de vista de la Econometría

Dos o más series de tiempo que son no estacionarias de orden I están cointegradas si existe una combinación lineal de esas series que sea estacionaria o de orden I. El vector de coeficientes que crean esta serie estacionaria es el vector cointegrante.

Según S. Johansen

Según S. Johansen la mayor parte de las series temporales son no estacionarias y las técnicas convencionales de regresión basadas en datos no estacionarios tienden a producir resultados espurios. Sin embargo, las series no estacionarias pueden estar cointegradas si alguna combinación lineal de las series llega a ser estacionaria. Es decir, la serie puede deambular, pero en el largo plazo hay fuerzas económicas que tienden a empujarlas a un equilibrio. Por lo tanto, las series cointegradas no se separarán muy lejos unas de otras debido a que ellas están enlazadas en el largo plazo. (Mata 2004)

Cointegración

El análisis de cointegración es esencial cuando se tiene una combinación de variables que presenten una similitud en el orden de integración. Si se tiene una ecuación con las siguientes condiciones:

Sean las variables \(X_t~I(1)\) , \(Y_t~I(1)\)

\(Y_t=\beta_0+\beta_1X_t+u_t\)

Una combinación lineal de estas variables que sea estacionaria. Entonces, se dice que las variables Y, X están cointegradas.

\(Y_t-\beta_0-\beta_1X_t=u_t\)

El análisis de cointegración es en esencia un análisis multivariado.

Un conjunto de variables se dice que son cointegradas si existe una combinación lineal que genere un proceso estocástico estacionario.

\(y_t=\beta_1x_{1t}+\beta_2x_{2t}+...+\beta_kx_{kt}+u_t\)

\(y_t-\beta_1x_{1t}-\beta_2x_{2t}-...-\beta_kx_{kt}=u_t\)

Vector normalizado

\(\left[1-\beta_1-\beta_2...-\beta_1\right]\left[\begin{matrix}y_t\\x_{1t}\\x_{2t}\\\vdots\\x_{3t}\\\end{matrix}\right]=u_t\)

Así el análisis de cointegración se basa en estimar los valores del vector β que generan un proceso estocástico estacionario.

\(\beta´X_t=u_t\ \rightarrow\ I(0)\)

Se dice que las variables del modelo están cointegrados. Si las series cointegran la regresión entre las dos variables es significativa (no es espuria) y no se pierde información valiosa de largo plazo lo cual sucedería si se estima la regresión en primeras diferencias. (Catalán 2012)

Causalidad

Es una palabra que se utiliza para establecer una relación entre una causa y un efecto. Es decir, hace referencia a los motivos que originan “algo.” No debe confundirse con Correlación ya que existe una gran diferencia entre los mismos, dado que se trata de dos palabras del lenguaje estadístico que son muy utilizadas hoy en día. (Castellanos 2021)

La teoría desarrollada por Clive WJ. Granger ha sido un parteaguas en el análisis de series de tiempo y su uso posterior en el estudio de relaciones causales entre procesos estocásticos en diversos campos de la ciencia. Hoy en día, el articulo seminal del tema ha sido citado en más de 5600 fuentes, sin embargo, su popularidad no fue alcanzada hasta que se desarrollaron pruebas estadísticas que volvieron más sencilla la forma de estudiar dichas relaciones causales.

De otro modo, uno tendría que estudiar las relaciones Granger causales desde el enfoque de análisis espectral, lo cual (fuera del sector académico) podría resultar una completa peripecla.

Christopher A. Sims, [Sims 1972], fue el primero en tratar de probar una relación Granger causal simple. Dicha prueba estuvo basada en representaciones de promedios móviles. No obstante, se encontró con algunos problemas en su procedimiento lo que no permitió que fuese exitosa dicha investigación. En 1976, Thomas J. Sargent, [Sargent 1976], propuso un procedimiento el cual estaba directamente derivado de la definición de Granger causalidad. Es conocido usualmente como procedimiento directo de Granger. Larry D. Haugh y David A. Pierce, [Pierce 1977], propusieron una prueba estadística, popularizando a [Haugh 1976], la cual usaba los residuales de los modelos univariados para x y y. Cheng Hsiao, [Hsiao 1979], propuso un procedimiento para identificar y estimar modelos bivariados los cuales estaban basados en representaciones autorregresivas y pudieran ser también interpretadas como pruebas Granger causales. (Rodrı́guez 2018)

Prueba de Raíz Unitaria de Dickey & Fuller

Propósito de la Prueba

El test de Dickey Fuller es una forma de para determinar si existen raices unitarias en las series temporales y por lo tanto, comprobar si hay o no estacionaridad.

Si los regresores son no estacionarios aparecen dos problemas:

  • Las estadísticas t, F o \(x^2\) tienen distribuciones no estándar-> no podemos hacer inferencia.

  • Regresión espuria.

Si se demuestra que los datos son no estacionarios (prueba de raíz unitaria) podemos eliminar el carácter no estacionario diferenciando las series (trabajar con variables variables I(0)).

Esto significa una pérdida de información valiosa proveniente de la teoría económica referente a las propiedades de equilibrio de largo plazo.

Prueba de raices unitarias

Nos interesa el orden de integración de las series. Consideremos el siguiente modelo:

\(Y_t=μ+ϕ_₁ Y_t-_1+βt+ε_t\)

Integración de las series

  • Estacionario con tendencia determinística - > \(μ≠0, |φ₁|<1,β≠0\)

  • Random walk con constante y tendencia determinística - > \(μ≠0, |φ₁|=1,β≠0\)

  • Random walk con constante - > \(μ≠0, |φ₁|=1,β=0\)

  • Tendencia determinística - > \(μ≠0, |φ₁|=0,β≠0\)

  • Random walk puro - > \(μ=0, |φ₁|=1,β=0\)

Nos interesa saber si \(φ_1 = 1\) es decir, si el modelo presenta raíz unitaria. Restando \(Y_t-_1\) a ambos lados de la ecuación, obtenemos la siguiente especificación:

\(ΔY_t= μ+ γY_t-_1+βt+ε_t\)

Donde:

\(ΔY_t=Y_t-Y_t-_1\)

\(γ=φ-1\)

Hipótesis de la prueba

\(H_0: γ=0\) -> La serie tiene raíz unitaria (NO ESTACIONARIA)

\(H_0: γ<1\) -> La serie no tiene raíz unitaria (ESTACIONARIA)

(Alatorre Bremont and CEPAL 2011)

Sintaxis de implementación en R

En el paquete de tseries se puede encontrar el codigo adf.tedt que realiza la prueba de Dickey–Fuller. Calcula la prueba de Dickey-Fuller para el nulo de que x tiene una raíz unitaria.

Sintaxis

adf.test(x, alternative = c(“stationary,” “explosive”), k = trunc((length(x)-1)^(1/3)))

Argumentos de la sintaxis

  • x: un vector numérico o una serie de tiempo.

  • alternative: indica la hipótesis alternativa y debe ser una de “estacionaria” (por defecto) o “explosivo.” Puede especificar solo la letra inicial.

  • k: el orden de retraso para calcular la estadística de prueba.

Detalles

Se utiliza la ecuación de regresión general que incorpora una constante y una tendencia lineal y se calcula el estadístico t para un coeficiente autorregresivo de primer orden igual a uno. El número de retrasos utilizado en la regresión es k. El valor predeterminado de trunc ((length (x) -1) ^ (1/3)) corresponde al límite superior sugerido en la tasa a la que el número de rezagos, k, debe hacerse crecer con el tamaño de muestra para la configuración general ARMA (p, q), tenga en cuenta que para k es igual a cero, el estándar Dickey-Fuller se calcula la prueba. No se permiten valores faltantes

Valores

Una lista con la clase “htest” que contiene los siguientes componentes:

  • statistic: el valor de la estadística de prueba.

  • parameter: el orden de retraso.

  • p.value: el valor p de la prueba.

  • method: una cadena de caracteres que indica qué tipo de prueba se realizó.

  • data.name: una cadena de caracteres que da el nombre de los datos.

  • alternative: una cadena de caracteres que describe la hipótesis alternativa. (Trapletti et al. 2015)

Estadístico de Prueba

La prueba arroja un valor \(t\) con el cual se tiene que utilizar la tabla para verificar la zona en la que se encuentra.

Brinda el \(valor\ p\), con el cual teniendo el grado de significancia establecido, se puede determinar si hay o no estacionaridad.

## 
##  Augmented Dickey-Fuller Test
## 
## data:  dif_variaciones_ts
## Dickey-Fuller = -7.5314, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary

Criterio de Decisión

\(Rechazar\ H_0\ si\ p\le\alpha\)

\(No\ Rechazar\ H_0\ si\ p>\alpha\)

Es convencional rechazar la hipótesis nula con un nivel de significación \(\alpha=0.05\). Cuando se rechaza la hipótesis nula se dice que los resultados del estudio son estadísticamente significativos al nivel \(\alpha\).

## 
##  Augmented Dickey-Fuller Test
## 
## data:  dif_variaciones_ts
## Dickey-Fuller = -7.5314, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary

Interpretación del Rechazo o No Rechazo de las Hipótesis

No se rechaza \(H_0\) si \(valor\ p\) < 0.05

Se rechaza \(H_0\) si \(valor\ p\) > 0.05

Implementación del Ejemplo

Tomado de (Gonzalez Martinez 2019)

Primero guardamos los datos proporcionados en un vector para tener las 35 observaciones y se las asignamos a un variable a la cual denominamos variaciones.

variaciones<-c(67, 63,76,66,69,71,72,71,72,72,83,87,76,79,74,81,76,77,68,68,74,68,69,75,80,81,86,86,79,78,77,77,80,76,67)
plot.ts(variaciones)

A partir de la gráfica podemos darnos cuenta que no es estacionaria pues no se ve una tendencia, es decir, las observaciones están muy alejadas las unas de las otras.

A continuación realizare un pequeño análisis exploratorio para conocer cómo se comportan los datos.

## Promedio
mean(variaciones)
## [1] 74.88571
## Desviacion estandar
sd(variaciones)
## [1] 6.091322
## Autocorrelación
acf(variaciones)

## Autocorrelacion parcial
pacf(variaciones)

Para intentar solucionar la dispersión de los datos vamos a obtener la diferencia de la serie, para tratar de suavizar ese comportamiento.

dif_variaciones_ts<-diff(variaciones)
plot(dif_variaciones_ts)

Ahora vamos comprobar si es estacionaria o no, para ello se realizara la prueba de Dickey-Fuller para la hipótesis nula de una raíz unitaria de una serie temporal univariada x (de manera equivalente, x es una serie temporal no estacionaria).

library(tseries)
adf.test(dif_variaciones_ts, k=0)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dif_variaciones_ts
## Dickey-Fuller = -7.5314, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary

Por lo tanto, se tiene un \(valor\ p\), para un grado de significancia de 5%, se tienen que los datos no son estacionarios. Por lo tanto, no se rechaza la hipótesis nula y se establece que existe una raíz unitaria.

Cointegración en el enfoque de Soren Johansen

Metodología de S. Johansen

  • Determinar el orden de integración a cada una de las series incluidas en el modelo.

  • Especificar un Vector AutoRegresivo (VAR) con las series que resulten integradas de orden I.

    • Seleccionar las Variables del Modelo.

    • Seleccionar las transformaciones de las variables, si las hubieren.

    • Determinar el retardo óptimo del VAR para asegurar que los residuos sean ruido blanco (white noise).

    • Especificar las variables determinísticas (variables dummy, tendencias,etc).

    • Diagnóstico del VAR estimado.

  • Aplicar el procedimiento de Máxima Verosimilitud al vector autorregresivo con el fin de determinar el rango (r) de cointegración del sistema:

    • Prueba de la Traza.

    • Prueba del Eigenvalue Máximo (valor propio).

  • Estimar el modelo Vector de Corrección de Errores.

  • Determinar la relación causal entre las variables del modelo.

Propósito de la Prueba

  • Aplicable a sistemas de ecuaciones.

  • Este método está basado en modelos VAR (Vectores autorregresivos).

  • Es un test de máxima verosimilitud que requiere grandes volúmenes de datos (100 ó más).

  • Prueba la existencia de múltiples vectores de cointegración entre las variables, mediante la prueba de la Traza y del Eigenvalue máximo.

  • Descansa fuertemente en la relación entre el rango de la matriz y sus raíces características. (Mata 2004)

Pruebas y sus Estadísticos

Johansen propuso 2 tipos de pruebas para \(r\);

  • La Prueba Eigenvalor Máximo

Esta prueba está basado en la razón de máxima verosimilitud \(\ln \left[L_{M V}(r) / L_{M V}(r+1)\right]\), y se efectúa secuencialmente para

\(r=0,\ 1,\ \cdots,\ n-1\)

Esta prueba corrobora la hipótesis nula de que el rango de cointegración es \(r\) versus la alterna de que el rango de cointegración es \(r+1\).

Estadístico de la Prueba Eigenvalor Máximo

\(\ell_{r+1}^{*}-\ell_{r}^{*}=-\frac{T}{2} \ln \left(1-\widehat{\lambda}_{r+1}\right)\)

  • La Prueba de la Traza

Esta prueba se basa en la razón de máxima verosimilitud \(\ln \left[L_{M V}(r) / L_{M V}(n)\right]\) y es efectuada secuencialmente para \(r=n-1, \ldots, 1,0\). 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\).

Estadístico la Prueba de la Traza

\(\ell_{A}^{*}-\ell_{0}^{*}=-\frac{T}{2} \sum_{i=r+1}^{n} \log \left(1-\widehat{\lambda}_{i}\right)\)

(Sandoval 2021)

## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 4.331654e-01 1.775836e-01 1.127905e-01 4.341130e-02 6.927550e-16
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  2.35  7.52  9.24 12.97
## r <= 2 |  6.34 13.75 15.67 20.20
## r <= 1 | 10.36 19.77 22.00 26.81
## r = 0  | 30.09 25.56 28.14 33.24

Hipótesis de las Pruebas

Las Hipótesis de las pruebas son las siguientes:

\(H_0:R=0\): No existen vectores de cointegración.

\(H_{01}:R=1\): Existe un vector de cointegración.

Si hubiera un segundo vector de cointegración las hipótesis serían las siguientes:

\(H_0:r\le1\): Cuando más existe un vector de cointegración.

\(H_0:r=2\): Existe más de un vector de cointegración.

Interpretación del Rechazo o No Rechazo de las Hipótesis de ambas Pruebas

  • Rechazar la \(H_0\) cuando el valor del estadístico la Traza o el Máximo Valor Propio sea mayor que el valor crítico seleccionado, normalmente el de 5 %.

  • No Rechazar la \(H_0\) cuando el valor del estadístico la Traza o el Máximo Valor Propio sea menor que el valor crítico seleccionado.

Criterio de Decisión de las Hipótesis de ambas Pruebas

\(Rechazar\ H_0\ si\ p\le\alpha\)

\(No\ Rechazar\ H_0\ si\ p>\alpha\)

Es convencional rechazar la hipótesis nula con un nivel de significación \(\alpha=0.05\). Cuando se rechaza la hipótesis nula se dice que los resultados del estudio son estadísticamente significativos al nivel \(\alpha\).

Interpretación de p-values

  • No Significativo: \(p<10\)

  • Marginalmente Significativo: \(0.05<p<10\)

  • Significativo: \(0.01<p<0.01\)

  • Altamente Significativo: \(0.001<p<0.01\)

  • Fuertemente Significativo: \(p<0.01\)

(Mata 2004)

## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 4.331654e-01 1.775836e-01 1.127905e-01 4.341130e-02 6.927550e-16
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  2.35  7.52  9.24 12.97
## r <= 2 |  6.34 13.75 15.67 20.20
## r <= 1 | 10.36 19.77 22.00 26.81
## r = 0  | 30.09 25.56 28.14 33.24

Sintaxis de Implementación en R

ca.jo(x, type = c(“eigen,” “trace”), ecdet = c(“none,” “const,” “trend”), K = 2,spec=c(“longrun,” “transitory”), season = NULL, dumvar = NULL)

Argumentos de la sintaxis

  • x: matriz de datos a investigar para la cointegración.

  • type: la prueba que se va a realizar, ya sea “eigen” o “traza.”

  • ecdet: carácter, “none” para no interceptar en cointegración, “const” para término constante en cointegración y “trend” para la variable de tendencia en la cointegración.

  • K: el orden de retraso de la serie (levels) en el VAR.

  • spec: determina la especificación del VECM.

  • season: si se deben incluir variables ficticias estacionales, la frecuencia de los datos debe establecerse en consecuencia, es decir, “4” para los datos trimestrales.

  • dumvar: si se deben incluir variables ficticias, una matriz con una dimensión de fila igual a x se puede proporcionar.

Implementación del Ejemplo

Tomado de (“Paquete ’Urca’” 2016)

library(urca)

data(denmark)
sjd <- denmark[, c("LRM", "LRY", "IBO", "IDE")]
sjd.vecm <- ca.jo(sjd, ecdet = "const", type="eigen", K=2, spec="longrun",
season=4)
summary(sjd.vecm)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 4.331654e-01 1.775836e-01 1.127905e-01 4.341130e-02 6.927550e-16
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  2.35  7.52  9.24 12.97
## r <= 2 |  6.34 13.75 15.67 20.20
## r <= 1 | 10.36 19.77 22.00 26.81
## r = 0  | 30.09 25.56 28.14 33.24
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##             LRM.l2     LRY.l2     IBO.l2     IDE.l2   constant
## LRM.l2    1.000000  1.0000000  1.0000000   1.000000  1.0000000
## LRY.l2   -1.032949 -1.3681031 -3.2266580  -1.883625 -0.6336946
## IBO.l2    5.206919  0.2429825  0.5382847  24.399487  1.6965828
## IDE.l2   -4.215879  6.8411103 -5.6473903 -14.298037 -1.8951589
## constant -6.059932 -4.2708474  7.8963696  -2.263224 -8.0330127
## 
## Weights W:
## (This is the loading matrix)
## 
##            LRM.l2      LRY.l2       IBO.l2        IDE.l2      constant
## LRM.d -0.21295494 -0.00481498  0.035011128  2.028908e-03 -1.726523e-13
## LRY.d  0.11502204  0.01975028  0.049938460  1.108654e-03  9.428195e-14
## IBO.d  0.02317724 -0.01059605  0.003480357 -1.573742e-03  4.143714e-14
## IDE.d  0.02941109 -0.03022917 -0.002811506 -4.767627e-05  7.781415e-14
#
data(finland)
sjf <- finland
sjf.vecm <- ca.jo(sjf, ecdet = "none", type="eigen", K=2,
spec="longrun", season=4)
summary(sjf.vecm)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: maximal eigenvalue statistic (lambda max) , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.30932660 0.22599561 0.07308056 0.02946699
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 3 |  3.11  6.50  8.18 11.65
## r <= 2 |  7.89 12.91 14.90 19.19
## r <= 1 | 26.64 18.90 21.07 25.75
## r = 0  | 38.49 24.78 27.14 32.14
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##            lrm1.l2    lny.l2    lnmr.l2    difp.l2
## lrm1.l2  1.0000000  1.000000  1.0000000   1.000000
## lny.l2  -0.9763252 -1.323191 -0.9199865   1.608739
## lnmr.l2 -7.0910749 -2.016033  0.2691516  -1.375342
## difp.l2 -7.0191097 22.740851 -1.8223931 -15.686927
## 
## Weights W:
## (This is the loading matrix)
## 
##            lrm1.l2       lny.l2      lnmr.l2      difp.l2
## lrm1.d 0.033342108 -0.020280528 -0.129947614 -0.002561906
## lny.d  0.022544782 -0.005717446  0.012949130 -0.006265406
## lnmr.d 0.053505000  0.046876449 -0.007367715  0.002173242
## difp.d 0.005554849 -0.017353903  0.014561151  0.001531004

La primera sección muestra los valores propios generados por la prueba. En este caso tenemos tres con el más grande aproximadamente igual a 0.3389.

La siguiente sección muestra el estadístico de prueba de trazas para las tres hipótesis de \(r\leq2\), \(r\leq1\) y \(r=0\). Los respectivos valores críticos en ciertos niveles de confianza serían 10%, 5% y 1%.

La primera hipótesis, \(r=0\), pruebas de presencia de cointegración. Está claro que dado que la estadística de prueba excede significativamente el nivel del 1% (\(8161.48\gt37.22\)) que tenemos pruebas sólidas para rechazar la hipótesis nula de no cointegración. La segunda prueba para \(r\leq1\) contra la hipótesis alternativa de \(r\gt1\) también proporciona evidencia clara para rechazar \(r\leq1\) dado que la estadística de prueba supera significativamente el nivel del 1%. La prueba final para \(r\leq2\) contra \(r\gt2\) también proporciona evidencia suficiente para rechazar la hipótesis nula de que \(r\leq2\) y así se puede concluir que el rango de la matriz es mayor que 2.

Por tanto, la mejor estimación del rango de la matriz es \(r=3\), que nos dice que necesitamos una combinación lineal de tres series de tiempo para formar una serie estacionaria. Esto es de esperar, por definición de la serie, ya que la caminata aleatoria subyacente utilizada para las tres series no es estacionaria. (QuantStart 2017)

Causalidad en el sentido de Granger

Propósito de la Prueba

El test de causalidad de Wiener-Granger, o causalidad de Granger, es una prueba estadística empleada para determinar si una serie temporal puede predecir a otra. Para ello se basa en la idea de que si una serie temporal X causa otra Y, los modelos de Y en los que se emplean datos retrasados de X e Y deben funcionar mejor los basados únicamente en datos retrasados de Y. Permitiendo identificar en series temporales en las que se observa una correlación que variable antecede a la otra. (Rodrı́guez 2018)

Hipótesis de la prueba

Hipótesis Nula: es que no hay causalidad en el sentido de Granger:

\(H_0:\ \beta_{{\rm\ yx}_1}=\beta_{{\rm\ yx}_2}=\beta_{{\rm\ yx}_3}=\ ...\ =\beta_{{\rm\ yx}_p}=0\)

Si \(x\) no causa y en el sentido de Granger \((x\nrightarrow\ y)\) entonces todos o algunos de los rezagos de \(x\) no tienen efectos distintos de cero sobre \(y_t\), condicional en los rezagos de \(y\).

Hipótesis Alternativa: hay causalidad en el sentido de Granger:

\(H_1:\ \beta_{{\rm\ yx}_1}=\beta_{{\rm\ yx}_2}=\beta_{{\rm\ yx}_3}=\ ...\ =\beta_{{\rm\ yx}_p}\neq0\)

Si \(x\) causa y en el sentido de Granger (\(x\rightarrow\ y\)) entonces todos o algunos de los rezagos de \(x\) tienen efectos distintos de cero sobre \(y_t\), condicional en los rezagos de \(y\).

Sintaxis de implementación en R

En R, podemos usar la función grangertest () del paquete lmtest para realizar una prueba Granger-Causality.

  • Método S3 predeterminado:

grangertest(x, y, order = 1, na.action = na.omit, …)

  • Método S3 para la clase ‘formula’:

Grangertest(formula, data = list(), …)

Argumentos de la sintaxis

  • x: una serie bivariada (en cuyo caso \(y\) tiene que faltar) o una serie univariada de observaciones.

  • y: una serie univariada de observaciones (si \(x\) también es univariante).

  • order: entero que especifica el orden de retrasos a incluir en la regresión auxiliar.

  • na.action: una función para eliminar los ARN después de alinear las series \(x\) e \(y\).

  • : otros argumentos pasaron a waldtest.

  • formula: una especificación de fórmula de una serie bivariada como y ~ x.

  • data: un marco de datos opcional que contiene las variables del modelo. De forma predeterminada, las variables se toman del entorno desde el que se llama a grangertest. (Hothorn 2015)

Estadístico de Prueba

Para lo anterior, se puede usar una prueba F, la cual se puede calcular a través de la suma de residuales al cuadrado:

\(F=\frac{\frac{({\rm\ SSR}_R-{\rm\ SSR}_{UR})}{(p_2-p_1)}}{\frac{{\rm\ SSSR}_{UR}}{(n-p_2-1)}}\)

Donde:

  • SSR es la suma de residuales al cuadrado del modelo del modelo restricto,

  • \({\rm\ SSR}_{UR}\) es la suma de residuales al cuadrado del modelo irrestricto,

  • \(p_2\) es el número de parámetros del modelo irrestricto.

  • \(p_1\) es el número de los parámetros del modelo restricto.

  • \(n\) es el tamaño de la muestra.

La prueba sigue una distribución \(F\) con \((p_2-p_1,\mathcal{n}-p_2)\) grados de libertad. (Ramírez et al. 2016)

Salida que genera R

## Granger causality test
## 
## Model 1: DAX ~ Lags(DAX, 1:3) + Lags(SMI, 1:3)
## Model 2: DAX ~ Lags(DAX, 1:3)
##   Res.Df Df      F     Pr(>F)    
## 1   1850                         
## 2   1853 -3 8.4968 0.00001322 ***

Criterio de Decisión

Rechazar \(H_0\ si\ F\ \geq\ V.\ C.,\ o\ si\ P_{value}\le\alpha\)

No Rechazar \(H_0\ si\ F\ \le\ V.\ C.,\ o\ si\ P_{value}\geq\alpha\)

Salida que genera R

## Granger causality test
## 
## Model 1: DAX ~ Lags(DAX, 1:3) + Lags(SMI, 1:3)
## Model 2: DAX ~ Lags(DAX, 1:3)
##   Res.Df Df      F     Pr(>F)    
## 1   1850                         
## 2   1853 -3 8.4968 0.00001322 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación del Rechazo o No Rechazo de las Hipótesis

Si \(F\) es más grande que el α% del valor crítico para una distribución \(F(p_2-p_1,\mathcal{n}-p_2)\), entonces se debe de rechazar la hipótesis nula: \(y\) no causa-Granger a \(x\).

Si \(F\) es menor que el α% del valor crítico para una distribución \(F(p_2-p_1,\mathcal{n}-p_2)\), entonces no se debe de rechazar la hipótesis nula: \(y\) causa-Granger a \(x\). (Caballero, n.d.)

Implementación del Ejemplo

Tomado de (Finnstats 2021) Para este ejemplo, usaremos el conjunto de datos EuStockMarkets. Este conjunto de datos contiene valores para los valores DAX, SMI, CAC y FTSE, pero estamos utilizando solo valores DAX y SMI.

#Carga de datos
data("EuStockMarkets")
datos <- EuStockMarkets[, 1:2]
head(datos)
##          DAX    SMI
## [1,] 1628.75 1678.1
## [2,] 1613.63 1688.5
## [3,] 1606.51 1678.6
## [4,] 1621.04 1684.1
## [5,] 1618.16 1686.6
## [6,] 1610.61 1671.6
options(scipen = 99999)
library(lmtest)
grangertest(DAX ~ SMI, order = 3 , data = datos)
## Granger causality test
## 
## Model 1: DAX ~ Lags(DAX, 1:3) + Lags(SMI, 1:3)
## Model 2: DAX ~ Lags(DAX, 1:3)
##   Res.Df Df      F     Pr(>F)    
## 1   1850                         
## 2   1853 -3 8.4968 0.00001322 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación: El estadístico de prueba \(F\) es igual a 8.4968 y el \(valor\ p\) que corresponde al estadístico de prueba \(F\) es Pr (> F) 1.322e-05.

Por lo tanto, se rechaza la hipótesis nula de la prueba porque el valor p es menor que 0.05. En otras palabras,conocer los valores de SMI es valioso para pronosticar los valores futuros de DAX.

Prueba de causalidad de Granger a la inversa

A pesar de que se rechazó la hipótesis nula de la prueba, es posible que se esté produciendo una causalidad inversa. Ese ejemplo, es probable que los cambios en los valores de DAX estén afectando los cambios en los valores de SMI.

options(scipen = 99999)
library(lmtest)
grangertest(SMI ~ DAX, order = 3, data = datos)
## Granger causality test
## 
## Model 1: SMI ~ Lags(SMI, 1:3) + Lags(DAX, 1:3)
## Model 2: SMI ~ Lags(SMI, 1:3)
##   Res.Df Df      F  Pr(>F)  
## 1   1850                    
## 2   1853 -3 2.6576 0.04689 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación: El \(valor\ p\) de la prueba es 0.04689. Por tanto, se rechaza la hipótesis nula porque este valor es menor que 0.05. Es decir, los valores de DAX predicen los valores de SMI en el futuro.

Se puede concluir que conocer los valores de SMI es útil para proyectar los valores de DAX en el futuro.

Bibliografía

Alatorre Bremont, Reyes Martínez, José Eduardo, and NU CEPAL. 2011. “Métodos y técnicas Del análisis Del Cambio Climático.”
Caballero, Carlos Vladimir Rodríguez. n.d. “Ensayos Sobre La Granger Causalidad.”
Castellanos, Y. M. 2021. “Diferencia Entre Correlación y Causalidad.” Diferencia Entre Correlación y Causalidad. Https://Economipedia.com/Definiciones/Correlacion-y-Causalidad.html.
Catalán, H. 2012. “Curso Internacional: Construcción de Escenarios Económicos y Econometría Avanzada.” Bogotá: CEPAL-Universidad Nacional de Colombia.
Finnstats. 2021. “Granger Causality Test in r.” Granger Causality Test in R. Https://Www.r-Bloggers.com/2021/11/Granger-Causality-Test-in-r-with-Example/.
Gonzalez Martinez, Enrique Cristian. 2019. “Ejercicio 6 y 8.” Ejercicio 6 y 8. Https://Rpubs.com/Gome9706/496280.
Hothorn, Achim y Farebrother, Torsten y Zeileis. 2015. “Paquete ’Lmtest’.” Prueba de Modelos de Regresión Lineal. Https://Cran.r-Project.org/Web/Packages/Lmtest/Lmtest.pdf.
Mata, Humberto. 2004. “Nociones Elementales de Cointegración Enfoque de Soren Johansen.” Trabajo No Publicado. Http://Webdelprofesor.ula.ve/Economia/Hmata/Notas/Johansen.pdf.
“Paquete ’Urca’.” 2016. Pruebas de Raíz Unitaria y Cointegración Para Datos de Series de Tiempo. Versión Del Paquete R, 1–2.
QuantStart. 2017. “Johansen Test for Cointegrating Time Series Analysis in r.” Johansen Test for Cointegrating Time Series Analysis in R. Https://Www.quantstart.com/Articles/Johansen-Test-for-Cointegrating-Time-Series-Analysis-in-R/.
Ramírez, Juan Carlos Bonifacio et al. 2016. “Relaciones Entre Los Mercados Bursátiles de méxico y Estados Unidos: Evidencia de Cointegración y Causalidad de Granger.” CIDE, División de Economía.
Rodrı́guez, C. 2018. “Test de Causalidad de Wiener-Granger.” División de Las Ciencias Económico Administrativas Universidad de Guanajuato, 35–47.
Sandoval, Wilson. 2021. “Cointegración.” Cointegración. Https://Rpubs.com/Wilsonsr/828582.
Trapletti, Adrian, Kurt Hornik, Blake LeBaron, and Maintainer Kurt Hornik. 2015. “Package ’Tseries’.”