Actividad Grupal 01

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

CICLO II-2023

LABORATORIO: COINTEGRACIÓN Y CAUSALIDAD

MÉTODOS PARA EL ANÁLISIS ECONÓMICO

DOCENTE:

CARLOS ADEMIR PÉREZ ALAS

PRESENTADO POR:

library(kableExtra)

Equipo <- data.frame(
  INTEGRANTES = c("ALEMAN MENJIVAR, MEYBELIN NALLELY", "ASCENCIO ORELLANA, FERNANDO JAVIER", "FLORES GARCIA, JAZMIN GUADALUPE"),
  CARNET = c("AM20071", "AO21017", "FG20019")
)

knitr::kable(Equipo, align = "c")
INTEGRANTES CARNET
ALEMAN MENJIVAR, MEYBELIN NALLELY AM20071
ASCENCIO ORELLANA, FERNANDO JAVIER AO21017
FLORES GARCIA, JAZMIN GUADALUPE FG20019

GRUPO TEÓRICO:

03

GRUPO DE TRABAJO:

08

EL SALVADOR, SAN SALVADOR, CIUDAD UNIVERSITARIA, 07 DE ENERO DEL 2024

Prueba de Raíz Unitaria de Dickey & Fuller.

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

Se utiliza con el fin de establecer si una serie es o no estacionaria. En primer lugar, se sugiere graficar la serie con el objetivo de obtener una idea previa de su comportamiento. La diferencia entre una serie estacionaria y no estacionaria es debido a, una serie estacionaria presenta cierta tendencia dentro de los límites tanto superiores o como inferiores, caso contrario a una series estacionaria. Automáticamente una serie estacionaria se aproxima ya sea a su límite inferior o superior, debe de existir un mecanismo que ayude a devolverla, logrando al próximo movimiento esté dirigido a su media, esté movimiento de regresar a su media aumentará mientras más lejos esté la serie de la media. Simultaneamente una de las prureba de raíz unitaria, como la Dickey - Fuller posee este principio.

Punto de partida es el proceso estocástico:

\[Y_{t} = \rho Y_{t-1}+u_{t}\]

\[-1 \leq \rho \leq 1\]

Donde:

\(u_{t}\) es el término de error de ruido blanco.

\(\rho = 1\) explica que, en el caso de la raíz unitaria, se transforma en un modelo de caminara aleatoria sin dirección, en otras palabras, confiere un proceso no estacionario (estocástico).

¿Por qué no se obtiene la regresión de \(Y_{t}\) por encima de su valor rezagado \(Y_{t-1}\) y se ahonda si \(\rho\) ya estimada es bajo términos estádisticos igual a 1?

porque de ser así \(Y_{t}\) no es estacionaria. Es por ello que no se podría estimar la ecuación por el método Mínimo Cuadrados Ordinarios (MCO), por ende probar que \(\rho = 1\) mediante la prueba \(t\). No obstante, la anterior prueba posee sesgo en lo que respecta a una raíz unitaria. Por consiguiente, Se realizan operaciones pertinentes a la ecuación de la manera siguiente:

\[Y_{t} - Y_{t-1} = \rho Y_{t-1} + u_{t}- Y_{t-1}\]

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

Otra forma de expresar…

\[\Delta Y_{t} = \delta Y_{t-1} + u_{t}\]

Donde:

\(→\) \(\delta = (\rho - 1)\)

\(→\) \(\Delta\), operador de las diferencias.

Si al momento de probar la ecuación, se obtiene \(\delta = 0\) (hipotesis nula), en consecuencia \(\rho = 1\); en otros términos, posee raíz unitaria. Por ende significa, la serie de tiempo no es estacionaria.

La ecuación presenta un cambio

\[\Delta Y_{t} = (Y_{t} - Y_{t-1}) = u_{t}\]

¿Cómo saber exactamente si el coeficiente estimado \(Y_{t-1}\) es o no cero? ¿Qué prueba utilizar?

A priori, lo idoneo es probar con la prueba \(t\) usual. No obstante, en base a la \(H_0\), es decir \(\rho = 1\), el valor \(t\) del coeficiente estimado de \(Y_{t-1}\) no sigue la distribución \(t\). Más bien, no tiene una distribución normal asintótica. Por tal razón, Dickey y Fuller demostraron mediante la hipotesis nula, \(\delta = 0\), el valor estimado \(t\) del coeficiente \(Y_{t-1}\) sigue el estadístico \(\tau\) (tau), calcularon los valores críticos del estadístico tau en base a la simulaciones Monte Carlo. Al momento de rechazar la hipotesis nula, es decir, la serie de tiempo es estacionaria, se podrá utilizar la prueba \(t\) usual. Aspecto a considerar, la prueba Dickey-Fuller es unidireccional, ya que la hipotesis alternativa es:

\(\delta < 0\) o \(\rho < 1\)

La prueba Dickey-Fuller se estima por tres formas distintas:

\(Y_{t}\) es una caminata aleatoria: \[\Delta Y_{t} = \delta Y_{t-1} + u_{t}\]

\(Y_{t}\) es una caminata aleatoria con derivada: \[\Delta Y_{t} = \beta_{1} + \delta Y_{t-1} + u_{t}\]

\(Y_{t}\) es una caminata aleatoria con derivada alrededor de una tendencia determinista: \[\Delta Y_{t} = \beta_{1} + \beta_{2} t +\delta Y_{t-1} + u_{t}\]

Prueba Dickey-Fuller Aumentada (ADF)

Esta prueba consiste en aumentar las tres ecuaciones anteriores por medio de la adición de los valores rezagados de la variable dependiente (\(\Delta Y_{t}\)). La prueba consiste en estimar la siguiente regresión:

\[\Delta Y_{t} = \beta_{1} + \beta_{2} t +\delta Y_{t-1} + \sum_{i=1}^{m} \alpha_{i} \Delta Y_{t-1} + \varepsilon_{t}\]

Hipótesis de la prueba.

Hipótesis nula:

\(H_0\): \(\delta = 0\); existe una raiz unitaria, la serie de tiempo es no estacionaria, más bien, tiene tendencia estocástica.

Hipótesis alternativa:

\(H_1\): \(\delta < 0\);la serie de tiempo es estacionaria, probablemente alrededor de una tendencia determinista.

Sintaxis de implementación en R, explicando cada uno de los argumentos.

# Cargar la libreria tseries y urca
library(tseries)
library(urca)
# Generar una serie temporal o cargar una serie temporal (por ejemplo, una serie aleatoria)
set.seed(123)
serie_temporal <- ts(rnorm(100))


# Realizar la prueba de raíz unitaria de Dickey-Fuller
prueba_df <- ur.df(serie_temporal)
print(summary(prueba_df))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1107 -0.5547  0.0479  0.7279  2.3143 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## z.lag.1     -1.1182     0.1456  -7.681 1.34e-11 ***
## z.diff.lag   0.1009     0.1020   0.990    0.325    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9247 on 96 degrees of freedom
## Multiple R-squared:  0.5097, Adjusted R-squared:  0.4995 
## F-statistic:  49.9 on 2 and 96 DF,  p-value: 1.384e-15
## 
## 
## Value of test-statistic is: -7.6806 
## 
## Critical values for test statistics: 
##      1pct  5pct 10pct
## tau1 -2.6 -1.95 -1.61
# Realizar la prueba de raíz unitaria de Dickey-Fuller aumentada (ADF)
resultado_df <- adf.test(serie_temporal)
print(resultado_df)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  serie_temporal
## Dickey-Fuller = -4.3961, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Estadístico de prueba.

El estadístico de prueba que se muestra dada la salida de “adf_test”, corresponde al tipo de prueba \(\tau\), este dato se puede visualizar en el ejemplo anterior de la sintaxis con el título Dickey-Fuller = \(-4.3961\)

Criterio de decisión.

\[H_0: \delta = 0\] \[H_1: \delta < 0\]

\(\tau > \tau_{critico} →\) En este caso, se rechaza la hipotesis nula

\(\tau < \tau_{critico} →\) No se rechaza la hipotesis nula

\(\rho > 0.05 →\) Aceptar la hipotesis nula

\(\rho < 0.05 →\) Rechazar la hipotesis nula

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

Al momento de aplicar los criterios de decisión y determinar no rechazar la hipotesis nula, esto nos indica sobre la serie de datos, existe raíz unitaria, en otras palabras, la serie no es estacionaria. De lo contrario, se presenta una serie con estacionariedad, no existe raíz unitaria.

Implementación de un ejemplo

Las variables a verificar si poseen raíz unitaria o no, son: Gasto de consumo final y el Ingreso Nacional Disponible, en El Salvador, los datos comprenden los años de 1990-2016. Datos obtenidos de el banco central de reserva y la CEPAL.

#Cargar librerias
library(lubridate)
library(tseries)
library(lubridate)
library(tidyverse)
library(car)
library(astsa)
library(foreign)
library(timsac)
library(lmtest)
library(mFilter)
library(dynlm)
library(nlme)
library(lmtest)
library(broom)
library(kableExtra)
library(knitr)
library(MASS)
library(parallel)
library(car)
library(mlogit)
library(dplyr)
library(tidyr)
library(forecast)
library(fpp2)
library(stats)
library(quantmod)
library(lmtest)
library(urca)
# cargar datos
library(readxl)  # Se carga la librería 'readxl' para leer archivos Excel
data <- read_excel("C:/Users/guada/Desktop/Jazz/CICLO II 2023/MAE118 2023/Trabajo_Grupal/data.xlsx")  # Lee el archivo Excel y guarda los datos en el objeto 'data'

# Generar logaritmos
lnG = log(data$G_cf)  # Calcula el logaritmo natural de la columna 'G_cf' del conjunto de datos y lo guarda en 'lnG'
lnYND = log(data$YND)  # Calcula el logaritmo natural de la columna 'YND' del conjunto de datos y lo guarda en 'lnYND'

# Generar variables de Series de Tiempo
G.ts = ts(lnG, start = c(1990, 1), frequency = 1)  # Crea una serie de tiempo 'G.ts' a partir de 'lnG' con inicio en 1990 y frecuencia anual
YND.ts = ts(lnYND, start = c(1990, 1), frequency = 1)  # Crea una serie de tiempo 'YND.ts' a partir de 'lnYND' con inicio en 1990 y frecuencia anual

# Hacer una tabla
datos = cbind(G.ts, YND.ts)  # Combina las series de tiempo 'G.ts' y 'YND.ts' en una tabla 'datos'
datos  # Muestra la tabla 'datos' en la consola
## Time Series:
## Start = 1990 
## End = 2016 
## Frequency = 1 
##          G.ts    YND.ts
## 1990 23.14949  8.556970
## 1991 23.15551  8.669997
## 1992 23.22760  8.817264
## 1993 23.28432  8.966743
## 1994 23.34405  9.130991
## 1995 23.40451  9.286192
## 1996 23.42034  9.344582
## 1997 23.43356  9.419971
## 1998 23.42612  9.500934
## 1999 23.45140  9.529815
## 2000 23.47369  9.594115
## 2001 23.48692  9.670631
## 2002 23.49442  9.680732
## 2003 23.50224  9.725430
## 2004 23.51794  9.792298
## 2005 23.55758  9.885234
## 2006 23.60085  9.979769
## 2007 23.66945 10.060243
## 2008 23.66555 10.118138
## 2009 23.59787 10.066745
## 2010 23.60704 10.106814
## 2011 23.62262 10.179239
## 2012 23.65425 10.200952
## 2013 23.68847 10.219834
## 2014 23.68706 10.249006
## 2015 23.71598 10.286168
## 2016 23.73616 10.313866
plot(datos, main = "Tendencia")  # Crea un gráfico de dispersión de las series de tiempo con el título "Tendencia"

# Generar Modelo
modelo = lm(G.ts ~ YND.ts)  # Ajusta un modelo lineal de 'G.ts' en función de 'YND.ts' y guarda el modelo en 'modelo'
summary(modelo)  # Muestra un resumen del modelo lineal
## 
## Call:
## lm(formula = G.ts ~ YND.ts)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.039322 -0.014855 -0.000355  0.014858  0.045418 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 20.418333   0.079461  256.96   <2e-16 ***
## YND.ts       0.318650   0.008198   38.87   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02162 on 25 degrees of freedom
## Multiple R-squared:  0.9837, Adjusted R-squared:  0.9831 
## F-statistic:  1511 on 1 and 25 DF,  p-value: < 2.2e-16
residuales = modelo$residuals  # Guarda los residuos del modelo en 'residuales'
residualPlot(modelo)  # Grafica un gráfico de residuos del modelo lineal

# Prueba de Dickey-Fuller
y = ur.df(residuales)  # Realiza la prueba de Dickey-Fuller en la serie de residuos 'residuales' y guarda el resultado en 'y'
summary(y)  # Muestra un resumen de los resultados de la prueba de Dickey-Fuller
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.027260 -0.012894  0.000301  0.010515  0.039279 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)   
## z.lag.1     -0.6530     0.1896  -3.444  0.00221 **
## z.diff.lag   0.4017     0.1901   2.114  0.04561 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01678 on 23 degrees of freedom
## Multiple R-squared:  0.3431, Adjusted R-squared:  0.286 
## F-statistic: 6.007 on 2 and 23 DF,  p-value: 0.007961
## 
## 
## Value of test-statistic is: -3.4441 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.62 -1.95 -1.61
y@teststat  # Muestra el valor del estadístico de prueba obtenido en el test de Dickey-Fuller
##                tau1
## statistic -3.444124
y@cval  # Muestra los valores críticos asociados con el estadístico de prueba para diferentes niveles de significancia
##       1pct  5pct 10pct
## tau1 -2.62 -1.95 -1.61

Interpretación: Al 5% el valor crítico es 1.95, en valor absoluto, se determina que es menor el valor del estadístico \(\tau = 3.44\) . Concluyendo, se rechaza la hipotesis nula, por lo tanto la serie es estacionaria, no existe raíz unitaria.

#con intercepto
y2=ur.df(residuales, type="drift",selectlags="AIC")
summary(y2)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.028611 -0.013932 -0.000774  0.009300  0.038226 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  0.001101   0.003442   0.320  0.75203   
## z.lag.1     -0.646826   0.194361  -3.328  0.00305 **
## z.diff.lag   0.396931   0.194467   2.041  0.05341 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01712 on 22 degrees of freedom
## Multiple R-squared:  0.3375, Adjusted R-squared:  0.2773 
## F-statistic: 5.604 on 2 and 22 DF,  p-value: 0.01079
## 
## 
## Value of test-statistic is: -3.328 5.7507 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.58 -2.93 -2.60
## phi1  7.06  4.86  3.94
#Sin tendencia y sin intercepto
y3=ur.df(residuales, type="none",selectlags="AIC")
summary(y3)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.027260 -0.012894  0.000301  0.010515  0.039279 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)   
## z.lag.1     -0.6530     0.1896  -3.444  0.00221 **
## z.diff.lag   0.4017     0.1901   2.114  0.04561 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01678 on 23 degrees of freedom
## Multiple R-squared:  0.3431, Adjusted R-squared:  0.286 
## F-statistic: 6.007 on 2 and 23 DF,  p-value: 0.007961
## 
## 
## Value of test-statistic is: -3.4441 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.62 -1.95 -1.61
#Dickey Fuller Aumentada
adf.test(residuales)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  residuales
## Dickey-Fuller = -2.8208, Lag order = 2, p-value = 0.2591
## alternative hypothesis: stationary

Interpretación: El \(p_{value} < 0.05\), finalizando el análisis de está prueba, se determina rechazar la hipotesis nula, quiere decir, no existe raíz unitaria en los residuos; por lo tanto, hay estacionariedad.

Cointegración en el enfoque de Soren Johansen.

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

El procedimiento multivariado de S. Johansen (1988 y 1991), se ha convertido en un método muy popular para probar la existencia de cointegración en la variables I(1) y I(0), en donde I(1) y I(0) indican integración de primer y cero orden, respectivamente. En la tecnología de S. Johansen, es necesario analizar las series previamente con el fin de conocer si presentan o no raíces unitarias. Las series que presenten raíces unitarias se colocan en un vector autorregresivo a partir del cual se puede probar la existencia de una o mas combinaciones lineales J(U) o vectores de cointegración, como también se les denomina.(Quintana and Mendoza 2016)

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

\[Yt= \mu +A1Yt-1Vt\]

Ahora transformamos el modelo restando Yt−1 de los dos lados: \[ Yt-Yt-1=\mu+A1Yt-1-Yt-1+Vt\] Agrupando las variables tenemos: \[ΔYt=\mu+AYt1+vt\]

Donde: \[A=I+A1\]

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

Por ello, el modelo es un Mecanismo de Corrección de Error Vectorial ( También se dará cuenta de la similitud de esta especificación con la de la prueba ADF, incluso podríamos considerarla un ADF multiecuacional.

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

\[Yt= \mu +A1Yt1+A2Yt2+...+A\rho Yt\rho +vt\]

Si se resta Yt 1 hasta Yt p de los dos lados, y se rescribe en función de la ∆ Yt entonces:

\[\Delta Yt= \mu r1\Delta Yt1+r2\Delta Yt2+...+r\rho 1\Delta Yt\rho +AYt\rho+ et\]

Donde:

\(Гi=I+Г1+...+Гi\)

\(i=1,...,\rho 1\)

\(A=I+A1+...+A\rho\)

En la matriz A se encuentre la relación de largo plazo, si su rango es; rango (A)= 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í Yt 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 acuerto 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 γ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 deverosimilitud 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 )\]

\[RAIZMAXIMA=\lambda _{r}^{m}\alpha x= -T\cdot Ln\left ( \lambda i \right )\]

Hipotesis de la prueba.

Hipótesisi Nula:

\[Ho:r=0\]

“No existe Cointegración”.

Hipótesis Alternativa:

\[H1:r=m\]

“Existe Cointegración”.

El contraste de hipótesis consiste en la secuencia:

• La hipótesis nula Ho: r =0 (no cointegración), frente a la alternativa Ha: r=1.

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

Los valores críticos para los dos estadísticos de prueba, dependen de la inclusión o no de constantes en las ecuaciones; se pueden incluir interceptos en los vectores de cointegración.(Quintana and Mendoza 2016)

Sintaxis de de implementación en R, explicando cada uno de los argumentos.

Librería que se utiliza en esta prueba es la siguiente: library(urca)

Prueba de Soren Johansen johansen

library(urca)

summary(ca.jo(ecb.consumo,type=“trace,”ecdet=“none,”spec=c(“longrun”),K=4))

Estadistico de Prueba.

En estadística es convencional rechazar la hipótesis nula con un nivel de significación α=0.05

  • Cuando se rechaza la hipótesis nula se dice que los resultados del estudio son estadísticamente significativos al nivel α.
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.853773e-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  2.437019e-13
## LRY.d  0.11502204  0.01975028  0.049938460  1.108654e-03 -1.738409e-13
## IBO.d  0.02317724 -0.01059605  0.003480357 -1.573742e-03 -2.139321e-14
## IDE.d  0.02941109 -0.03022917 -0.002811506 -4.767627e-05 -1.148246e-14

Criterio de Decición.

H0:r=0 Se rechaza, entonces se puede afirmar que en la serie de tiempo no existe cointegración.

H1:r=m No se rechaza, se puede afirmar que en la serie de tiempo existe cointegración.

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

Se puede afirmar que si el estadistico de Prueba es mayor que el valor critico se tendran las evidencias suficientes para rechazar la Hipotesis Nula H0:r=0, aseverando de esta manera que en la serie existe cointegración.

Implementación de un ejemplo.

Prueba de Johansen (Traza)

library(vars)
library(urca)
library(forecast)
library(tidyverse)
library(readr)
data <- read_csv("C:/Users/guada/Desktop/Jazz/CICLO II 2023/MAE118 2023/Trabajo_Grupal/VECM_LectureNotes.csv")
#Crear Objetos de series temporales
GDP <- ts(data$lnGDP, start = c(2003,1,31), frequency = 4)
CPI <- ts(data$lnCPI, start = c(2003,1,31), frequency = 4)
M3 <- ts(data$lnM3, start = c(2003,1,31), frequency = 4)

#Se crea un dataframe con los objetos de series temporales 

df <- cbind(GDP,CPI,M3)

#Criterio de selección de Lags

lagselect <- VARselect(df, lag.max = 7, type = "const")
lagselect$selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      6      5      4      5
Traza<- ca.jo(df, type = "trace", ecdet = "const", K = 4)
summary(Traza)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1]  7.408536e-01  2.831294e-01  1.143077e-01 -1.025883e-16
## 
## Values of teststatistic and critical values of test:
## 
##            test 10pct  5pct  1pct
## r <= 2 |   7.89  7.52  9.24 12.97
## r <= 1 |  29.53 17.85 19.96 24.60
## r = 0  | 117.30 32.00 34.91 41.07
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##              GDP.l4    CPI.l4      M3.l4     constant
## GDP.l4    1.0000000  1.000000  1.0000000  1.000000000
## CPI.l4   -1.9652971 -3.401060 -2.3478809 -1.258575716
## M3.l4     0.1534219 -5.703423  0.1823729 -0.004795708
## constant -4.2100503 15.387818 -4.6126235 -9.216460807
## 
## Weights W:
## (This is the loading matrix)
## 
##             GDP.l4        CPI.l4       M3.l4      constant
## GDP.d  0.027782440 -4.455686e-05 -0.01509218  2.231752e-15
## CPI.d  0.001718154  5.843056e-04  0.01124142  1.957418e-14
## M3.d  -0.022303210  5.927883e-02 -0.28911043 -4.671628e-12

Causalidad en el sentido de Granger.

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

De manera general, la prueba de causalidad de Granger se utiliza para examinar si una serie de tiempo puede usarse para pronosticar otra.

Es decir, la causalidad de Granger es un test estadístico que comprueba si los resultados de una variable sirven para predecir la otra variable, 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 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 Y y Y causa X.

En ese sentido, podemos presentar las dos ecuaciones que plantea Granger:

La primer acuación. \[X_t=\alpha_0+\alpha_1X_{t-1}+\alpha_2X_{t-2}+\ldots+\alpha_iX_{t-i}+\beta_1Y_{t-1}+\beta_2Y_{t-2}+\ldots+\beta_iY_{t-i}+U_{1t}\]

La segunda ecuación. \[Y_t=\delta_0+\delta_1X_{t-1}+\delta_2X_{t-2}+\ldots+\delta_iX_{t-i}+\theta_1Y_{t-1}+\theta_2Y_{t-2}+\ldots+\theta_iY_{t-i}+U_{2t}\]

Las variables X e 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.

También se cuenta con un proceso autorregresivo de orden “p”, tanto en X como en Y.

Por lo que, para poder utilizar los métodos de mínimos cuadrados ordinarios (MCO), la siguiente ecuación debe ser estimada: \[X_t=\alpha_0+\alpha_1X_{t-1}+\alpha_2X_{t-2}+\ldots+\alpha_iX_{t-i}+\beta_1Y_{t-1}+\beta_2Y_{t-2}+\ldots+\beta_iY_{t-i}+U_{1t}\]

Esta ecuación recibe el nombre de Regresión no Restringida. Por tanto, esta ecuación es un modelo que plantea que la variable Y causa en el sentido de Granger a la variable X

Hipótesis de la prueba.

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:

\[H_0:\ \beta_1=\beta_2=\ldots=\beta_i=0\]

Es decir, que no exista dicha causalidad.

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:

\[H_1:\ \beta_1\neq\beta_2=\ldots\neq\beta_i\neq0\] Por lo tanto, no sabemos si existe o no existe dicha causalidad.

Sintaxis de implementación en R, explicando cada uno de los argumentos.

library(lmtest) grangertest(X,Y,order=1)

Dónde:

X: es la primera serie.

Y: el segundo conjunto de la serie temporal.

Order: determinara el orden que queremos el tipo de causalidad, en este, caso orden 1.

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\]

Donde:

\(X_t=\gamma_0+\gamma_1X_{t-1}+\gamma_2X_{t-2}+\ldots+\gamma_iX_{t-i}+e_t\)

En la literatura econométrica, esta ecuación usualmente recibe el nombre de regresión restringida.

El Estadístico de prueba es el siguiente:

\[F\equiv\frac{(RRSS-URSS/m)\ }{URSS/(n-k)}\]

Donde los grados de libertad son m, que representa el número de términos rezagados de Y; luego tenemos k que es el número de parámetros estimados en la regresión no restringida.

La prueba de causalidad en el sentido de Granger se calcula con la función grangertest() en R. En la presentacion de resultados el Estadistico de Prueba tiene la notacion F

Criterio de decisión.

Se rechazará la Hipótesis Nula si el Estadístico de Prueba F es mayor a valor Crítico

\[Rechazar\ Ho\ si\ F>\ F(i,\ n-k)\]

En la salida o presentacion de resultados de la prueba de causalidad de Granger en R no se presenta el valor crítico, pero si el valor-p. El criterio de decision utilizando el valor-p es:

\[Rechazar\ Ho\ si\ valor\ p <\alpha\]

Este valor-p en la salida se representa por la notación Pr(>F).

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

Si se rechaza la hipótesis nula, quiere decir que existe evidencia suficiente para decir que la serie de tiempo Y causa la serie de tiempo X a la propia causa de Granger.

Si no se rechaza la hipótesis nula, quiere decir que existe evidencia de que la serie de tiempo Y no causa la serie de tiempo X a la propia causa de Granger.

Implementación de un ejemplo.

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

Podemos rechazar la hipótesis nula e inferir que la serie temporal X Granger causa la serie temporal Y si el valor p es menor que un nivel de significancia particular.

#Paso 01: Cargamos datos.
tsData<-EuStockMarkets[,1:2]

head(tsData)
## Time Series:
## Start = c(1991, 130) 
## End = c(1991, 135) 
## Frequency = 260 
##              DAX    SMI
## 1991.496 1628.75 1678.1
## 1991.500 1613.63 1688.5
## 1991.504 1606.51 1678.6
## 1991.508 1621.04 1684.1
## 1991.512 1618.16 1686.6
## 1991.515 1610.61 1671.6

A continuación, usaremos la función grangertest() para ejecutar una prueba de causalidad de Granger para examinar si los valores de SMI predicen los valores de DAX en el futuro.

#Paso 02: Realizamos la prueba de causalidad de Granger.
library(lmtest)
grangertest(DAX ~ SMI, order = 3, data = tsData)
## 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 1.322e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

El estadístico con prueba “F” igual a 8.4968 y el valor de “p” que corresponde al estadístico de prueba “F” es Pr(>F) 1.322e-05.

En este caso, podemos rechazar la hipótesis nula de la prueba porque el valor p es menor que 0,05 e inferir que conocer los valores de SMI es valioso para pronosticar los valores futuros de DAX.

library(ggplot2)

#Paso 03: Realizar la prueba de causalidad de Granger a la inversa.
grangertest(SMI ~ DAX, order = 3, data = tsData)
## 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

El valor “p” de la prueba es 0.04689. Rechazamos 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.

Como conclusión en base a los resultados, podemos concluir que conocer los valores de SMI es útil para proyectar los valores de DAX en el futuro.

Bibliografía.

Econometría. (n.d.). Retrieved from https://fvela.files.wordpress.com/2012/10/econometria-damodar-n-gujarati-5ta-ed.pdf

Montenegro, A. (2018). Econometría: Intermedia y Básica. Universidad Javeriana.

TEST DE RAIZ UNITARIA DE DICKEY-FULLER EN R - YouTube. (n.d.). Retrieved from https://www.youtube.com/watch?v=fMqwBJrxJ8s

ANÁLISIS DE LA RELACIÓN ENTRE EL PRECIO DE LA ACCIÓN DE ECOPETROL Y LOS PRECIOS INTERNACIONALES DEL PETRÓLEO. (n.d.). Retrieved from https://repository.urosario.edu.co/server/api/core/bitstreams/0463e71f-273e-469a-b672-e3c6e49f4471/content

Causalidad y cointegración | Monografías, Ensayos de Economía | Docsity. (n.d.). Retrieved from https://www.docsity.com/es/causalidad-y-cointegracion/8481807/

La Causalidad de Granger en el análisis y la previsión de series temporales clásicas, de intervalo y de historiograma. Aplicación de mercados financieros. (n.d.).

Granger causality - Scholarpedia. (n.d.). Retrieved from http://www.scholarpedia.org/article/Granger_causality

Causalidad en el Sentido de Granger pdf. (n.d.). Retrieved from https://www.google.com/search?q=Causalidad+en+el+Sentido+de+Granger+pdf+&sca_esv=c71657cd76fb0e5a&sca_upv=1&rlz=1C1VDKB_esSV1073SV1073&ei=srRWZebpJ4iFkvQP4uiEsAo&ved=0ahUKEwjmiuy15MmCAxWIgoQIHWI0AaYQ4dUDCBA&uact=5&oq=Causalidad+en+el+Sentido+de+Granger+pdf+&gs_lp=Egxnd3Mtd2l6LXNlcnAiKENhdXNhbGlkYWQgZW4gZWwgU2VudGlkbyBkZSBHcmFuZ2VyIHBkZiAyBRAhGKABMgUQIRigATIFECEYoAFI-CRQyQVY3CBwAHgBkAEAmAG5AaABhg-qAQQwLjEzuAEDyAEA-AEBwgIEEAAYR8ICBBAhGBXCAggQIRgWGB4YHcICBhAAGBYYHuIDBBgAIEGIBgGQBgg&sclient=gws-wiz-serp#ip=1

Granger, C., & Newbold, P. (1986). Forecasting Economic Time Series (2nd ed.). Retrieved from https://EconPapers.repec.org/RePEc:eee:monogr:9780122951831

Test de causalidad de Wiener-Granger - Analytics Lane. (n.d.). Retrieved from https://www.analyticslane.com/2019/11/18/Test-de-Causalidad-de-Wiener-Granger/

Econometria - Damodar N. Gujarati.pdf - Google Drive. (n.d.). Retrieved from https://drive.google.com/file/d/1johy31-5GmjOmiWz7ylxYJEcEZm_3_cO/view

Granger Causality Test in R (with Example) » finnstats. (n.d.). Retrieved from https://finnstats.com/2021/11/08/granger-causality-test-in-r/