Grupo 1 Tarea de Investigación Periodo 3: Cointegración y Causalidad.


UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONOMICAS

ESCUELA DE ECONOMIA


“Tarea de investigación periodo 3: Cointegración y Causalidad.”


Asignatura:

Métodos para el Análisis Económico.

Ciclo académico:

II/2023.

Docente:

Carlos Ademir Peréz Alas.

Grupo teórico:

GT 02.

Integrantes:

Alemán Turcios, Walter Orlando AT21006.

García Henríquez, Roberto Carlos GH20033.

Guevara Castro, Bryan Daniel GC21023.

Hernández, Daniel HH19029.


CIUDAD UNIVERSITARIA, DOMINGO 07 DE ENERO DE 2024.

Tema de investigación del laboratorio: Cointegración y Causalidad.

Indicaciones generales.

Presente en un reporte de Rmardown todas las operaciones que se indican en la tarea, debe incluir el archivo rmd, la correspondiente versión html y el informe publicado en una cuenta de Rpubs (incluir el enlace en los comentarios de entrega de las tareas, y en un archivo txt dentro de la entrega), incluyendo los nombres y apellidos de cada uno de los integrantes del grupo.

Explique cómo realizar las siguientes pruebas en R:

1. Prueba de Raíz Unitaria de Dickey & Fuller.

1.1. Propósito de la prueba, ¿Para qué se usa?

La prueba de Raíz Unitaria de Dickey & Fuller nos permite detectar la presencia o no de raíz unitaria en las series de tiempo, y con esto conocer si son estacionarias o no son estacionarias. Una serie de tiempo estacionaria es aquella en que la media y la varianza, no varían con el tiempo, por lo que la serie no muestra tendencia. Por el contrario, una serie de tiempo no estacionaria es aquella en la que estas propiedades varían con el tiempo. La prueba de Raíz Unitaria de Dickey & Fuller nos permite conocer si existe presencia de tendencia en la serie temporal. (Rico, 2021)

1.2. Hipótesis de la prueba.

\(Y_{t}=\rho Y_{t}-1+u_{t}\) \(-1\leq \rho \leq 1\)

donde \(_{t}\) es la variable de tiempo o de tendencia.

\(Y_{t}-Y_{t-1}=\rho Y_{t-1}-Y_{t-1}+u_{t}\)

\(Y_{t}-Y_{t-1}= \left ( p-1 \right )Y_{t-1}+u_{t}\)

Donde \(\delta =\left ( \rho -1 \right )\) y \(\Delta\), como siempre, es el operador de primeras diferencias.

Probamos la hipótesis (nula) de que \(\delta =0\), y la hipótesis alternativa es que \(\delta < 0\). Si \(\delta =0\), entonces ρ = 1; la hipótesis alternativa es que \(\delta < 0\) o \(\rho < 1\).

Hipótesis nula: \(H0: \delta =0\) (\(\rho = 1\)) (es decir, existe una raíz unitaria, la serie de tiempo es no estacionaria). Una series de tiempo no estacionaria es porque tiene una tendencia estocástica, es decir, que la tendencia de la serie de tiempo no es constante sino que cambia aleatoriamente con el tiempo. Una raíz unitaria es una raíz del polinomio característico de un modelo autorregresivo (AR) que es igual a uno. Esto significa que el valor inicial de la serie de tiempo tiene un impacto infinito en el futuro de la serie de tiempo. En otras palabras, una raíz unitaria indica que la serie de tiempo tiene una tendencia estocástica.

Hipótesis alternativa: \(H1: \delta < 0\) (\(\rho < 1\)) (es decir, no existe una raíz unitaria, la serie de tiempo es estacionaria). Esto se debe a que la ausencia de una raíz unitaria es una característica de las series de tiempo estacionarias. Una serie de tiempo estacionaria es aquella que tiene una tendencia no estocástica. Esto significa que la tendencia de la serie de tiempo es constante. En otras palabras, una serie de tiempo sin raíz unitaria indica que la serie de tiempo tiene una tendencia no estocástica. (Damodar N. Gujarati, 2009)

Versiones:

Caminata Aleatoria: tipo 0

\(Y_{t}=\delta Y_{t-1}+u_{t}Y_{t}=\delta Y_{t-1}+u_{t}\)

En una caminata aleatoria, el valor actual \(Y_{t}\) depende solo del valor anterior \(Y_{t-1}\) y de un término de error estocástico \(u_{t}\). La constante \(\delta\) determina la velocidad a la cual el proceso se aleja de su valor anterior.

Caminata Aleatoria con Deriva: tipo 1

\(Y_{t}=\beta _{1}+\delta Y_{t-1}+u_{t}Y_{t}=\beta _{1}+\delta Y_{t-1}+u_{t}\)

En este caso, además de depender del valor anterior y del término de error, hay una constante \(\beta _{1}\) que actúa como una tendencia constante. Esto significa que el proceso tiene una tendencia a moverse hacia arriba o hacia abajo a lo largo del tiempo. Aunque sigue siendo una caminata aleatoria, la deriva introduce una tendencia lineal.

Caminata Aleatoria con Deriva alrededor de una Tendencia Determinista: tipo 2

\(Y_{t}=\beta _{1}+\beta _{2t}+\delta Y_{t-1}+u_{t}Y_{t}=\beta _{1}+\beta _{2t}+\delta Y_{t-1}+u_{t}\)

Aquí, además de la deriva constante \(\beta _{1}\), se incluye una tendencia determinista \(\beta _{2t}\), donde t es el tiempo. Esto implica que la serie temporal tiene una tendencia lineal determinista a lo largo del tiempo. Es decir, la serie no solo tiene una deriva constante sino que también sigue una tendencia lineal con el tiempo.

1.3. Sintaxis de implementación en R.

Utilizando la libreria urca.

{r_1.3.1., eval=FALSE} library(urca) ur.df(y, type = "none", lags = 1, selectlags = "Fixed")

La librería urca: es un paquete de R que proporciona varias pruebas de raíz unitaria. incluyendo:

  • La prueba de raíz unitaria de Dickey-Fuller.
  • La prueba de raíz unitaria de Phillips-Perron.
  • La prueba de raíz unitaria de KPSS.
  • La prueba de raíz unitaria de Elliott-Rothenberg-Stock.
  • La prueba de raíz unitaria de Maddala-Wu.

ur.df = es el argumento utilizado para realizar la prueba Dickey-Fuller.

y = es el vector que se probara para la raíz unitaria.

type: especifica el tipo de tendencia que se realizará.

  • “none”: sin constante ni tendencia.
  • “drift”: se incluye un término de arrastre es decir con constante.
  • “trend”: se incluye un término de arrastre (con constante) y tendencia.

Lags: especifica el número de rezagos a incluir en la prueba.

Selectlags: especifica el método para seleccionar el número de rezagos:

  • “Fixed”: Utilice un número fijo de rezagos especificado por lags.
  • “AIC”: Utilice el criterio de información de Akaike (AIC) para seleccionar el número de rezagos.
  • “BIC”: Utilice el criterio de información bayesiano (BIC) para seleccionar el número de rezagos.

Utilizando la libreria tseries.

{r_1.3.2., eval=FALSE} library(tseries) adf.test(x, lag = 0)

La librería (tseries): proporciona funciones y herramientas para el análisis de series temporales, incluyendo la Prueba de Dickey-Fuller Aumentada (ADF).

adf.test: devuelve un resumen de los resultados de la prueba, incluyendo el estadístico de prueba, el valor p y alguna información adicional sobre el modelo.

x: Es la serie temporal que estás evaluando para determinar si tiene una raíz unitaria, es decir, si es estacionaria o no.

lag: Es el número de rezagos a incluir en la prueba.

Utilizando la libreria urca para la Prueba de Dickey-Fuller aumentada.

{r_1.3.3., eval=FALSE} library(urca) adf.test(x, nlag = NULL, output = TRUE)

x: Es la serie temporal que se va a probar para la presencia de raíz unitaria.

nlag: Especifica el número de rezagos a incluir en la prueba. Si no se proporciona, se seleccionará automáticamente.

output: Es un parámetro lógico que determina si se debe mostrar la salida completa de la prueba en la consola (TRUE) o no (FALSE).

1.4. Estadístico de prueba.

El estadístico de prueba que se obtiene es el valor estimado t que sigue el estadístico tau, por lo tanto si el valor t es menor al valor critico de la tabla, entonces tenemos un resultado que no es raíz unitaria y la serie de tiempo es estacionaria.

Si el valor t es mayor que el valor de la tabla, no se rechaza la hipótesis nula de que existe raíz unitaria y la serie de tiempo es no estacionaria.

1.5. Criterio de decisión.

No rechazar H0 si \(p-value>0.05\)

Rechazar H0 si \(p-value<0.05\)

1.6. Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.

Hipótesis nula: \(H0: \delta =0\) (\(\rho = 1\)) (es decir, existe una raíz unitaria, la serie de tiempo es no estacionaria).

Hipótesis alternativa: \(H1: \delta < 0\) (\(\rho < 1\)) (es decir, no existe una raíz unitaria, la serie de tiempo es estacionaria).

1.7. Implementación de un ejemplo.

1.7.1. Ejemplo 1)

library(quantmod)
getSymbols("BTC-USD", quote="Close", from="2020-01-01", periodicity="daily")
## [1] "BTC-USD"

library(quantmod): es un paquete de r que nos permite trabajar con datos financieros, proporciona funciones para descargar, manipular y analizar datos de mercados financieros.

getSymbols(): es la función del paquete quantmod que descarga los datos financieros.

BTC-USD: es el símbolo de Bitcoin, que indica el activo financiero que se desea descargar

quote=“Close”: estamos indicando que se desean descargar los precios de cierre.

from=“2020-01-01”: se utiliza para establecer la fecha de inicio de periodo de datos que se desea descargar.

data<-na.omit(`BTC-USD`[,4])

na.omit(BTC-USD[,4]): con esta función se busca obtener un objeto sin valores perdidos, en este caso la columna 4 del objeto BTC-USD que contiene los precios de cierre de Bitcoin, con la función se están eliminados los registros que tengan valor NA.

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

Interpretación: Se obtiene un estadístico de prueba de -1.61 y un p-value de 0.7417, tomando en cuenta el criterio de decisión de No rechazar H0 si \(p-value>0.05\) o Rechazar H0 si \(p-value<0.05\), por lo que hay evidencia de No Rechazar la hipótesis nula, llegando a la conclusión que la serie no es estacionaria.

1.7.2. Ejemplo 2)

library(AER)
library(urca)
data("USMacroG")
datos_macro <- USMacroG[2:204,9]
plot(datos_macro)

librería AER: es un paquete de r que contiene las funciones para realizar un análisis estadístico, incluyendo pruebas de hipótesis, estimación de modelos y predicción.

data(“USMacroG”): es un conjunto de datos macroeconómicos de Estados Unidos, incluye el PIB, la tasa de desempleo, la inflación y los tipos de interés.

datos_macro <- USMacroG[2:204,9]: es una línea de código con el objetivo de crear un nuevo objeto que contenga los datos de la columna 9, que incluye los datos de la tasa de desempleo.

plot(): nos permite generar un gráfico de la serie de datos_macro.

adf.test(x=datos_macro)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datos_macro
## Dickey-Fuller = -2.4984, Lag order = 5, p-value = 0.3673
## alternative hypothesis: stationary

Interpretación: Se obtiene un estadístico de prueba de -2.49 y un p-value de 0.3673, tomando en cuenta el criterio de decisión de No rechazar H0 si \(p-value>0.05\) o Rechazar H0 si \(p-value<0.05\), por lo que hay evidencia de No Rechazar la hipótesis nula, llegando a la conclusión que la serie no es estacionaria.


2. Cointegración en el enfoque de Soren Johansen.

2.1. Propósito de la prueba, ¿Para qué se usa?

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

Según Soren 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. (Mata, n.d.)

Por lo que la prueba de cointegración en el enfoque de Soren Johansen se utiliza para verificar si existe o no cointegración entre dos o más series temporales. Analizando las series de tiempo para conocer si existe o no raíces unitarias, las que presenten raíces se les agrega un vector autorregresivo para verificar la existencia de vectores de cointegración.

2.2. Hipótesis de la prueba.

El procedimiento se sustenta en los modelos VAR, que con una especificación de un solo rezago, se escribe:

\(Y_{t}=\mu +A_{1}Y_{t}-1+V_{t}\)

Ahora transformamos el moldeos restando \(Y_{t-1}\) de los dos lados:

\(Y_{t}-Y_{t-1}=\mu +A_{1}Y_{t}-1-Y_{t}-1+V_{t}\)

Agrupando las variables tenemos:

\(\Delta Y_{t}=\mu +AY_{t1}+\nu _{t}\)

Donde:

\(A=I+A_{1}\)

La representación del moldeo es la que llamamos Mecanismo de Corrección de Error en la sección anterior por ello A es un Vector de Corrección de Error, por lo tanto el modelo es un Mecanismo de Corrección de Error Vectorial.

Si ahora generalizamos la especificación para considerar un modelo VAR(\(\rho\)), el resultado es:

\(Y_{t}=\mu +A_{1}Y_{t1}-A_{2}Y_{t2}+...+A_{p}Y_{tp}+\nu _{t}\)

Si se resta \(Y_{t1}\) hasta \(Y_{p}\) de los dos lados, y se reescribe en función de la \(\Delta Y_{t}\) entonces:

\(\Delta Y_{t}=\mu \Gamma _{1}\Delta Y_{t1}+\Gamma _{2}\Delta Y_{t2}+...+\Gamma _{p1}\Delta Y_{tp}+AY_{tp}+e_{t}\)

Donde:

\(\Gamma _{i}=I\Gamma _{1}+...+\Gamma _{i}\)

\(i=1,...,p_{1}\)

\(A=I+A_{1}+...+A_{p}\)

En la matriz A se encuentre la relación de largo plazo, si su rango es; rango \(\left ( A \right )=r\), entonces se pueden encontrar las siguientes situaciones:

  • Si \(r=0\), A es una matriz nula No existirá ninguna relación de cointegración.
  • Si \(r=m\), el proceso multivariante Yt es estacionario Por tanto, habría m1 vectores de cointegración linealmente independientes que cancelan la tendencia común Así \(Y_{t}\) será estacionario si \(Am*m\) tiene rango completo.
  • Si \(0< r< m\) se encontrará entre las dos situaciones anteriores, por lo que habrá r relaciones de cointegración.

Por lo tanto, el rango de A mostrará el número de columnas linealmente independientes de esta matriz y ese será también el número de vectores de cointegración existentes entre las variables del VAR.

De acuerdo con esto Johansen demuestra que la estimación máximo verosímil de la matriz de vectores de cointegración, α se obtiene a partir del cálculo de las raíces características \(\gamma_{i},i=1,...m\).

Para contrastar la hipótesis nula de que hay como máximo r vectores de cointegración frente a la alternativa de que hay \(m\), \(r\) mayor o igual a \(m\), el contraste de razón de verosimilitud viene dado por los estadísticos de la traza y de la raíz máxima:

\(TRAZA=-2LnQ=-T\sum_{i=r+1}^{m}\left ( 1-\lambda _{i} \right )\)

\(RAÍZ MAXÍMA=\lambda _{r}^{m}ax=-T.Ln\left ( 1-\lambda _{i} \right )\)

El contraste de hipótesis consiste en la secuencia:

La hipótesis nula \(H0: r=0\) (no existe cointegración).

La hipótesis alternativa \(H1: r=1\) (existe cointegración).

En caso de rechazar esta hipótesis (utilizando cualquiera de los dos estadísticos propuestos), se contrasta ahora \(H0: r=1\) frente a la alternativa \(H1: r=2\), y así sucesivamente hasta el momento en que no se rechaza Ho, o bien hasta que se tuviera que aceptar la hipótesis alternativa de r =m.

2.3. Sintaxis de implementación en R.

Utilizando la libreria urca.

{r_2.3.1., eval=FALSE} library(urca) summary(ca.jo(x, type = c("eigen", "trace"), ecdet = c("none", "const", "trend"), K = 2, spec = c("longrun", "transitory"), season = NULL, dumvar = NULL))

summary(): Esta función muestra un resumen de los resultados del análisis de cointegración almacenados en el objeto johansen.

ca.jo: se usa para realizar un análisis de cointegración de series temporales con la prueba de Johansen.

x: Es la serie temporal sobre la cual se realiza la prueba de cointegración.

type = c(“eigen”, “trace”): Especifica los tipos de estadísticas de prueba a utilizar, en este caso.

ecdet = c(“none”, “const”, “trend”): Indica las opciones none, para no interceptar en la cointegración, const para el termino de constante en la cointegración y tren para la variable de tendencia en la cointegración.

K = 2: Especifica el número de retraso de la serie de tiempo.

spec = c(“longrun”, “transitory”): Define el tipo de cointegración que se está buscando.

season = Indica que si se está teniendo en cuenta las variables de estacionalidad, la frecuencia de los datos debe de establecerse, por ejemplo 4 para datos trimestrales.

dumvar = indica que si se están utilizando variables ficticias.

2.4. Estadístico de prueba.

Si el estadístico de prueba es mayor que el valor critico tendrá evidencia para rechazar la hipótesis nula es decir \(H0=r=0\), por lo que en la serie de tiempo existe cointegración.

Mientras que si el estadístico de prueba es menor al valor critico tendrá evidencia para no rechazar H0, concluyendo que no existe cointegración en la serie de tiempo.

2.5. Criterio de decisión.

No rechazar H0 si \(p-value> \alpha\)

Rechazar H0 si \(p-value\leq \alpha\)

Nivel de significancia igual a \(\alpha=0.05\).

Se rechaza la hipótesis nula cuando el p-value sea menor al nivel de significancia y no se rechaza la hipótesis nula cuando el p-value es mayor al nivel de significancia.

2.6. Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.

Si se rechaza Ho, existe evidencia suficiente para decir que la serie esta cointegrada.

Si no se rechaza Ho, existe evidencia de que La serie de tiempo no está cointegrada.

2.7. Implementación de un ejemplo.

2.7.1. Ejemplo 1)

Se tomaran los datos del video (Cuellar, 2020) de con la base de datos coint, que contiene las series de tiempo de DPI (Ingreso Personal Disponible) y el PCE (Gasto de Consumo Personal).

Prueba de cointegración sin tendencia ni constante.

library(urca)
library(readxl)
library(kableExtra)
coint <- read_excel("coint.xls")
summary(ca.jo(coint, type = "trace", ecdet = "none", K = 2, spec =  "transitory"))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.183987546 0.007163676
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  1.74  6.50  8.18 11.65
## r = 0  | 50.94 15.66 17.95 23.52
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##           DPI.l1    PCE.l1
## DPI.l1 1.0000000  1.000000
## PCE.l1 0.7990846 -1.056443
## 
## Weights W:
## (This is the loading matrix)
## 
##            DPI.l1        PCE.l1
## DPI.d 0.002339272 -0.0243695001
## PCE.d 0.003349821  0.0008561397

Interpretación: Se obtiene un estadístico de prueba de 50.94 para \(r=0\) y de 1.74 para \(r=1\) y si tomamos en cuenta el criterio de decisión que si el estadístico de prueba es mayor que el valor critico tendrá evidencia para rechazar la hipótesis nula es decir \(H0=r=0\), tenemos que el estadístico de prueba de \(r=0\) de 50.94 es mayor que los valores crítico del 10%, 5% y 1%, es decir que hay evidencia para rechazar la hipótesis nula y por lo tanto existe cointegración entre las variables.

Pero, para el estadístico de prueba de \(r=1\) que se tiene de 1.74 no se rechaza la hipótesis nula debido a que el valor crítico del 10% es mayor al obtener un valor del 6.50.

Esta prueba también se puede realizar con constante y con tendencia solo se necesita de cambiar la palabra en ecdet=“const” para obtener que sea constante y ecdet=“trend” para obtener que sea con tendencia.

Prueba de cointegración con constante

summary(ca.jo(coint, type = "trace", ecdet = "const", K = 4, spec =  "longrun"))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 1.181004e-01 1.868381e-02 1.335927e-18
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  4.53  7.52  9.24 12.97
## r = 0  | 34.69 17.85 19.96 24.60
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##              DPI.l4       PCE.l4   constant
## DPI.l4     1.000000    1.0000000   1.000000
## PCE.l4    -0.214827   -0.9722601  -1.101688
## constant 716.842709 -499.9065251 -10.942805
## 
## Weights W:
## (This is the loading matrix)
## 
##            DPI.l4       PCE.l4      constant
## DPI.d 0.005018441 -0.019139461  7.891529e-15
## PCE.d 0.004268926  0.004884931 -1.010106e-14

Interpretación: Se obtiene un estadístico de prueba de 34.69 para \(r=0\) y de 4.53 para \(r=1\) y si tomamos en cuenta el criterio de decisión que si el estadístico de prueba es mayor que el valor critico tendrá evidencia para rechazar la hipótesis nula es decir \(H0=r=0\), tenemos que el estadístico de prueba de \(r=0\) de 34.69 es mayor que los valores crítico del 10%, 5% y 1%, es decir que hay evidencia para rechazar la hipótesis nula y por lo tanto existe cointegración entre las variables.

Prueba de cointegración con tendencia.

summary(ca.jo(coint, type = "trace", ecdet = "trend", K = 4, spec =  "longrun"))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend in cointegration 
## 
## Eigenvalues (lambda):
## [1]  7.018249e-02  4.994818e-02 -2.775558e-17
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 | 12.30 10.49 12.25 16.26
## r = 0  | 29.76 22.76 25.32 30.45
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##              DPI.l4     PCE.l4 trend.l4
## DPI.l4    1.0000000  1.0000000  1.00000
## PCE.l4   -0.8691622 -0.8234953 -1.61412
## trend.l4 -8.9314092 -6.6891103 15.28862
## 
## Weights W:
## (This is the loading matrix)
## 
##            DPI.l4     PCE.l4      trend.l4
## DPI.d -0.03848898 -0.1216981 -2.948277e-14
## PCE.d -0.03374167  0.0312370  5.650615e-16

Interpretación: Se obtiene un estadístico de prueba de 29.76 para \(r=0\) y de 12.30 para \(r=1\) y si tomamos en cuenta el criterio de decisión que si el estadístico de prueba es mayor que el valor critico tendrá evidencia para rechazar la hipótesis nula es decir \(H0=r=0\), tenemos que el estadístico de prueba de \(r=0\) de 29.76 es mayor que los valores crítico del 10%, es decir que hay evidencia para rechazar la hipótesis nula y por lo tanto existe cointegración entre las variables.

Para el estadístico de prueba de \(r=1\) que se tiene de 12.30 se rechaza la hipótesis nula debido a que el valor crítico del 10% es menor al obtener un valor del 10.49.


3. Causalidad en el sentido de Granger.

3.1. Propósito de la prueba, ¿Para qué se usa?

La prueba de causalidad de Granger se utiliza para determinar si una serie de tiempo puede ser empleada para pronosticar otra. Con esta prueba se busca saber si una serie de tiempo X causa una serie de tiempo Y, o Y causa a la serie de tiempo X. Se verifica si existe una causalidad bilateral o si ninguna serie de tiempo pronostica o causa la otra serie de tiempo.

Se debe de comprar el comportamiento actual y pasado de una serie de tiempo X que predice la serie de tiempo Y, si esto es verdad, el resultado de X causa en sentido de Granger el resultado de Y, es un comportamiento unidireccional. Si sucediera que el resultado de Y predice el resultado de X el comportamiento es bidireccional, debido a que el resultado de X causa el resultado de Y y el resultado de Y causa el resultado de X.

Granger Plantea dos ecuaciones:

\(X_{t}=\alpha_{0}+\alpha_{1}X_{t-1}+\alpha_{2}X_{t-2}+...+\alpha_{i}X_{t-i}+\beta_{1}Y_{t-1}+\beta_{2}Y_{t-2}+...+\beta_{i}Y_{t-i}+U_{1t}\)

\(Y_{t}=\delta_{0}+\delta_{1}X_{t-1}+\delta_{2}X_{t-2}+...+\delta_{i}X_{t-i}+\theta_{1}Y_{t-1}+\theta_{2}Y_{t-2}+...+\theta_{i}Y_{t-i}+U_{2t}\)

Las variables x y y deben ser estacionarias. Entonces, para probar que x no está Granger causando a y, se debe examinar si los valores rezagados de x en la regresión de y sobre los valores rezagados de x e y reduce significativamente el error de varianza.

Asúmase que se tiene un proceso autorregresivo de orden p, tanto en x como en y.

Para poder usar los métodos de mínimos cuadrados ordinarios (MCO), la siguiente ecuación debe ser estimada:

\(X_{t}=\alpha_{0}+\alpha_{1}X_{t-1}+\alpha_{2}X_{t-2}+...+\alpha_{i}X_{t-i}+\beta_{1}Y_{t-1}+\beta_{2}Y_{t-2}+...+\beta_{i}Y_{t-i}+U_{1t}\)

Esta ecuación recibe el nombre de regresión no restringida.

La ecuacion anterior es un modelo que plantea que la variable Y causa en el sentido de Granger a la variable X.

3.2. Hipótesis de la prueba.

Esta prueba genera una estadística de prueba F junto con un valor p.

La Hipotesis Nula.

Si la serie de tiempo Y no causa en el sentido de granger a la serie de tiempo X, entonces \(\beta_{1}, \beta_{2}, \beta_{i}\) serán cero:

\(H0:\beta _{1}=\beta _{2}=...=\beta _{i}=0\)

La hipótesis alternativa.

Si la serie de tiempo Y causa en el sentido de granger a la serie de tiempo X, entonces \(\beta_{1}, \beta_{2}, \beta_{i}\) serán distintos de cero:

\(H0:\beta _{1}\neq \beta _{2}\neq ...\neq \beta _{i}\neq 0\)

3.3. Sintaxis de implementación en R.

Utilizando la libreria lmtest.

{r_3.3.1., eval=FALSE} library(lmtest) grangertest(X ~ Y, order = 1)

La librería lmtest: proporciona una colección de pruebas, conjuntos de datos y ejemplos para el diagnóstico de modelos de regresión lineal.

grangertest: se utiliza para realizar la prueba de causalidad de Granger entre dos series temporales. Esta prueba ayuda a determinar si el pasado de una serie temporal es útil para predecir el futuro de otra serie temporal.

X y Y: Son las dos series temporales entre las cuales se quiere realizar la prueba de causalidad de Granger. X es la primera serie temporal y Y es la segunda serie temporal.

tOrder: es el numero de retrasos a utilizar en la primera serie temporal.(Luis Quintana Romero, 2016)

3.4. Estadístico de prueba.

Una forma de implementar esta prueba es calcular la suma de residuales al cuadrado de la regresión no restringida (URSS, por sus siglas en inglés),

\(URSS=\sum_{t=1}^{n}\hat{u}_{t}^{2}\)

y compararla con la suma de residuales al cuadrado de una autorregresión univariada no restringida para X_t , (RRSS, por sus siglas en inglés)

\(RRSS=\sum_{t=1}^{n}\hat{e}_{t}^{2}\)

que da como resultado la ecuacion:

\(X_{t}=\gamma _{0}+\gamma _{1}X_{t-1}+\gamma _{2}X_{t-2}+...+\gamma _{i}X_{t-i}+e_{t}\)

Usualmente la ecuación recibe el nombre de regresión restringida.

El Estadístico de prueba es el siguiente:

\(F=\frac{RRSS-\frac{URSS}{m}}{\frac{URSS}{\left ( n-k \right )}}\)

Donde los grados de libertad son m : es el numero de términos rezagados de Y, y k es el número de parámetros estimados en la regresión no restringida.

Si el valor de F es mayor al valor critico en el nivel de significancia seleccionado se rechaza la hipótesis nula por lo que La serie de tiempo X causa la serie de tiempo Y. Si el valor de F es menor al valor crítico, la serie de tiempo X no causa la serie de tiempo Y. (Damodar N. Gujarati, 2009)

3.5. Criterio de decisión.

Rechazar H0 si \(F\geq V.C.\), o Rechazar H0 si \(p-value\leq \alpha\)

No Rechazar H0 si \(F < V.C.\), o \(p-value > \alpha\)

Nivel de significancia igual a α = 0.05.

Se rechaza la hipótesis nula cuando el p-valué sea menor al nivel de significancia y no se rechaza la hipótesis nula cuando el p-valué es mayor al nivel de significancia.

3.6. Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.

Si se rechaza H0 es evidencia de que los termino rezagados de X pertenece a la regresión y que la serie de tiempo X en el sentido de Granger causa la serie de tiempo Y.

Si no se rechaza H0 es evidencia para concluir que los termino rezagados de X no pertenecer a la regresión y que la serie de tiempo en sentido de Granger no causa la serie de tiempo Y.(Zach, 2021)

3.7. Implementación de un ejemplo.

3.7.1. Ejemplo 1)

library(lmtest)
options(scipen = 99999)
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

data(“EuStockMarkets”): es un conjunto de datos de R, que contiene información sobre los índices bursátiles europeos. (Goldrossen, 2021)

grangertest(DAX ~ SMI, order = 2, data=datos)
## Granger causality test
## 
## Model 1: DAX ~ Lags(DAX, 1:2) + Lags(SMI, 1:2)
## Model 2: DAX ~ Lags(DAX, 1:2)
##   Res.Df Df      F      Pr(>F)    
## 1   1853                          
## 2   1855 -2 11.765 0.000008371 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación: El estadístico de prueba \(F\) es de 11.765 y el p-value es de 0.000008371, de acuerdo con el criterio de decisión, Rechazar H0 si \(F\geq V.C.\), o Rechazar H0 si \(p-value\leq \alpha\), por lo que hay evidencia para rechazar la hipótesis nula, debido a que el p-value es menor al nivel de significancia del 5%. En conclusión la serie de tiempo SMI causa o son útiles para predecir o proyectar los valores futuros de la DAX.

grangertest(SMI ~ DAX, order = 2, data=datos)
## Granger causality test
## 
## Model 1: SMI ~ Lags(SMI, 1:2) + Lags(DAX, 1:2)
## Model 2: SMI ~ Lags(SMI, 1:2)
##   Res.Df Df      F  Pr(>F)  
## 1   1853                    
## 2   1855 -2 3.7474 0.02376 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación: El estadístico de prueba \(F\) es de 3.7474 y el p-value es de 0.02376, de acuerdo con el criterio de decisión, Rechazar H0 si \(F\geq V.C.\), o Rechazar H0 si \(p-value\leq \alpha\), por lo que hay evidencia para rechazar la hipótesis nula, debido a que el p-value es menor al nivel de significancia del 5%. En conclusión la serie de tiempo DAX causa o son útiles para predecir o proyectar los valores futuros de la SMI.

3.7.2. Ejemplo 2)

library(lmtest)
data(ChickEgg)

grangertest(chicken ~ egg, order = 3, data = ChickEgg)
## 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
grangertest(egg ~ chicken, order = 3, data = ChickEgg)
## 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

ChickEgg: son un conjunto de datos que están precargados en la librería lmtest, creado con el objetivo de responder la pregunta que fue primero el huevo o la gallina. Los datos fueron presentados por Walter Thurman y Mark Fisher, contiene dos series de tiempo de 1930 a 1983, una de la producción de huevos de Estados Unidos y la otra de la población estimada de pollos en Estados Unidos. (Lesmeister, 2013)

Interpretación: El estadístico de prueba F es de 5.405 y el p-value de 0.002966, de acuerdo con el criterio de decisión, Rechazar H0 si \(F\geq V.C.\), o Rechazar H0 si \(p-value\leq \alpha\), por lo que hay evidencia para rechazar la hipótesis nula, debido a que el p-value es menor al nivel de significancia del 5%. En conclusión la serie de tiempo de numero de huevos es útil para predecir o proyectar los valores futuros de los números de pollos.

Interpretación: El estadístico de prueba F es de 0.5916 y el p-value de 0.6238, de acuerdo con el criterio de decisión, Rechazar H0 si \(F\geq V.C.\), o Rechazar H0 si \(p-value\leq \alpha\), por lo que hay evidencia para no rechazar la hipótesis nula, debido a que el p-value es mayor al nivel de significancia del 5%. En conclusión la serie de tiempo de numero de pollos no es útil para predecir o proyectar los valores futuros de los números de huevos.


Bibliografía.

Cuellar, L. (2020). TEST DE RAIZ UNITARIA DE DICKEY-FULLER EN r. https://www.youtube.com/watch?v=fMqwBJrxJ8s
Damodar N. Gujarati, D. C. P. (2009). ECONOMETRÍA quinta edición (S. A. D. C. V. McGRAW-HILL/INTERAMERICANA EDITORES, Ed.).
Goldrossen, N. (2021). ¿Cuál es la dinámica entre los precios spot y futuro del bitcoin? Análisis de causalidad en sentido de granger durante la corrección de 2018. (U. de San Andrés, Ed.).
Lesmeister, C. (2013). Chicken or the egg? Granger-causality for the masses. https://www.r-bloggers.com/2013/06/chicken-or-the-egg-granger-causality-for-the-masses/#google_vignette
Luis Quintana Romero, M. Á. M. (2016). ECONOMETRÍA APLICADA UTILIZANDO r (U. N. A. de México, Ed.).
Mata, H. (n.d.). Nociones elementales de cointegración enfoque de soren johansen. http://webdelprofesor.ula.ve/economia/hmata/Notas/Johansen.pdf
Rico, V. A. (2021). Prueba de raiz unitaria de DICKEY FULLER en r. https://www.youtube.com/watch?v=ZjzX1cZ9ObM&t=526s
Zach. (2021). How to perform a granger-causality test in r. https://www.statology.org/granger-causality-test-in-r/