Laboratorio 3: Cointegracion y Causalidad

Portada

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

CICLO II-2021

Asignatura:

Métodos para el Análisis Económico

Docente:

Carlos Ademir Pérez Alas.

Tema:

“Cointegración y Causalidad”

Grupo:

3

Integrantes:

Paredes Pérez, Camila Idalia. PP19020.

Sánchez Rodríguez, Javier Ovidio. SR19017.

Ciudad Universitaria, sábado 4 de diciembre de 2021.

Explique cómo realizar las siguientes pruebas en R

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

Proposito de la prueba

El contraste de Dickey-Fuller es una prueba de raíz única que detecta estadísticamente la presencia de conducta tendencial estocástica en las series temporales de las variables mediante un contraste de hipótesis (Castrillo-Rojas and Rodrı́guez-Vargas 2009) . Su proposito principal es el de evaluar si: una serie de tiempo es estacionaria o no, es decir, si la serie de tiempo tiene una media y varianza constante.(Lizarazu-Alanez and Villaseñor-Alva 2007)

Hipótesis de la Prueba

Como nos interesa observar el parámetro autoregresivo las hipótesis de la prueba estaran formuladas sobre su comportamiento de la siguiente forma, dados los siguientes planteamientos de hipotesis.

\((H_0)\) : La serie yt tiene una raíz unitaria o no es estacionaria

\((H_1)\) : La serie yt es estacionaria

Esto es equivalente a la formula anterior:

\((H_0 :\delta = 0)\) o \((\rho = 1)\) \((H_1 :\delta \neq 0)\) o \((\rho< 1)\)

Sintaxis de implementación en R (explicando cada argumento)

La implementación en R es a travez de la librería urca() y la función dentro de ella llamada ur.df(), se hace de forma siguiente:

library(urca)
 ur.df(y,
       type=  c("drift"),
       lags=0)

Donde:

-y: es un vector númerico o serie de tiempo

-type: Se reefiere al tipo de prueba, predeterminado “drift”

-lags: Número de rezagos de la variable endógena

Estadístico de prueba

El estadistico utilizado en la prueba se denomina tau o comunmente como prueba Dickey-Fuller (DF). En R el estadístico aparece con ese mismo nombre a partir del cáculo con la función ur.df().

Criterio de decisión

El criterio de decición se basa en comparar el estadístico Dickey-Fuller realizado con R y la función ur.df() y el valor crítico de la tabla del estadistico. El investigador debe de elegirlo de acuerdo al nivel de significancia y el número de la muestra.

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

La Hipótesis nula H0 No se rechaza si el valor del estadístico de prueba Dickey-Fuller es mayor que el valor crítico. Diriamos entonces que la serie posee una raíz unitaria o no es estacionaria.

La hipótesis nula H0 se rechaza si el valor del estadístico de prueba Dickey-Fuller es menor que el valor crítico. En esta caso plantearimos que la serie es estacionaria.

Ejemplo de aplicación

# Carga de los paquetes
library(readxl)
## Warning: package 'readxl' was built under R version 4.0.5
library(urca)
## Warning: package 'urca' was built under R version 4.0.5
library(lubridate)
## Warning: package 'lubridate' was built under R version 4.0.5
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.0.5
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.5
# Carga de los datos
library(readxl)
datos <- read_excel("C:/Users/PC/Desktop/IPP.xlsx")
datos$Indice %>% 
  head() %>% 
  kable(caption = "IPP de El Salvador", align = "c") %>% 
  footnote(general = "Elaboración propia en base al BCR") %>% 
  kable_minimal()
IPP de El Salvador
x
99.94
100.03
100.38
101.31
101.40
101.25
Note:
Elaboración propia en base al BCR
# Generar las variables en serie de tiempo 
IPP.ts <- ts(datos$Indice, start = c(2010, 1), end = c(2020, 12), freq = 12)
# Realizar el test
library(urca)
df.test <- ur.df(IPP.ts, 
                 type=c("drift"),
                 lags=0)
summary(df.test)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.56401 -0.18556 -0.02457  0.18191  1.42900 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.172001   0.771330   4.112 6.93e-05 ***
## z.lag.1     -0.027239   0.006893  -3.952 0.000127 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3479 on 129 degrees of freedom
## Multiple R-squared:  0.108,  Adjusted R-squared:  0.1011 
## F-statistic: 15.62 on 1 and 129 DF,  p-value: 0.0001271
## 
## 
## Value of test-statistic is: -3.9518 16.4336 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.46 -2.88 -2.57
## phi1  6.52  4.63  3.81

Analisis de los resultados

Para un nivel de significancia del 5% el valor crítico es de -3.46 mientras que el valor del estadístico de prueba es de -3.952.

Como el estadístico Dickey-Fuller es menor que el valor crítico hay evidencia para rechazar la hipótesis nula y aceptar la hipotesis alternativa. La seríe de tiempo del IPC es estacionaria.

2. Cointegración en el enfoque de Soren Johansen

Propósito de la prueba

El procedimiento multivariado de S. Johansen (1988 y 1991), profesor de estadística matemática de la Universidad de Copenhagen, 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. (Mahadeva and Robinson 2009)

En palabras simples el propósito es “Verificar la existencia o no de cointegraccion entre dos o mas series temporales”

Hipótesis de la prueba

Para la hipótesis de la prueba tenemos los siguientes planteamientos

Hipótesis nula \((H_0)\) : El rango de cointegración es \((r=0)\)

Hipótesis Alternativa \((H_1)\) : El rango de cointegración es \((r>0)\)

Dando por resultado que:

\((H_0)\) =No existe cointegración \((H_1)\) = Existe cointegración de 1 o más series.

Sintaxis de implementación en R (explicando cada argumento)

Argumentos:

library(urca)
ca.jo (x, 
       type = c ("eigen", "trace"), 
       ecdet = c ("none", "const", "trend"), 
       K = 2,
       spec = c ("largo plazo", "transitorio"), 
       temporada = NULL, 
       dumvar = NULL)

Donde

-X: Matriz de datos a investigar para la cointegración.

-type: La prueba a realizar, ya sea eigen o trace.

-ecdet: Carácter, none para no interceptar en la cointegración, const por término constante en cointegración y trend para la variable de tendencia en cointegración

-k: El orden de retraso de la serie (niveles) en el VAR.

-spec:Determina la especificación del VECM de la serie,largo plazo o trasnsitorio, se refiere a la especificación del VECM.

-temporada: Si se deben incluir variables ficticias estacionales, la frecuencia de los datos debe establecerse en consecuencia, es decir 4 para datos trimestrales.

-dumvar: Matriz de variables estacionales, si se incluyen

Estadístico de prueba

El estadístico de prueba en la salida R se muestra como “Values of teststatistic and critical values of test:” los estadisticos de estas se ubicaran en la columna test del resumen de estadisticas de pruebas y valores criticos.

Criterio de decisión

El criterio de decisión se basa en comparar el valor del estadístico r mostrado en la columna test de la prueba realizada por la función ca.jo() con los niveles de significancia que estan en las otras columnas mostradas como 10pct, 5pct, 1pct.

Entre las cuales se decide si se rechaza o no la hipotesis nula, con su criterio de decisión para rechazar la hipótesis nula consiste el comparar el valor del estadistico de prueba y un valor critico para un determinado nivel de significancia, si el estadistico es mayor se rechaza la hipótesis nula, caso contrario no se rechaza la hipótesis nula.

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

La hipótesis nula \((H_0)\) Se rechaza si el valor del estadístico de prueba excede el nivel de significancia de 1, 5 o 10%. En esta caso diriamos que si hay cointegración de n series.

La hipótesis nula \((H_0)\) No se rechaza si el valor del estadístico de prueba es menor al nivel de significancia de 1, 5 o 10%. En esta caso diriamos que no hay cointegración.

Ejemplo de aplicación

Recuperado de los ejercicios de aplicación de Econometria en R (González, n.d.)

library(urca)
library(car)
## Warning: package 'car' was built under R version 4.0.5
load("C:/Users/PC/Desktop/Consumo.RData")
lpib_mex<-log( Consumo$pib_mex)
lcp_mex<-log( Consumo$cp_mex)
#Combinar en un solo objeto
ecb.consumo<-cbind (lcp_mex,lpib_mex)

Prueba de cointegración sin tendencia y constante

library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="none",spec=c("longrun"),K=4))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.1751774 0.0169835
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  1.47  6.50  8.18 11.65
## r = 0  | 18.04 15.66 17.95 23.52
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##             lcp_mex.l4 lpib_mex.l4
## lcp_mex.l4    1.000000    1.000000
## lpib_mex.l4  -1.280708   -1.037871
## 
## Weights W:
## (This is the loading matrix)
## 
##            lcp_mex.l4 lpib_mex.l4
## lcp_mex.d  -0.3578910 -0.08189816
## lpib_mex.d -0.1079621 -0.07962291

Al realizar la Prueba los resultados nos muestran que para la primera hipótesis r=0 y alternativa r= 1 no se rechaza la hipótesis alternativa de cointegración el estadístico es mayor al valor critico del 10%, 18.04>15.66 es decir exixte cointegracion entre las variables.

Para la segunda hipótesis r<= 1 y alternativa r= 2 no se rechaza la hipótesis nula de un solo vector de cointegración Por lo que se puede concluir que existe un vector de cointegración y se representa por (1,- 1.28).

Prueba de la traza de cointegración con constante

library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="const",spec=c("longrun"),K=4))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 2.017097e-01 1.265562e-01 5.440093e-15
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 | 11.64  7.52  9.24 12.97
## r = 0  | 31.01 17.85 19.96 24.60
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##             lcp_mex.l4 lpib_mex.l4  constant
## lcp_mex.l4    1.000000    1.000000  1.000000
## lpib_mex.l4  -1.255645   -1.414691 -1.064081
## constant      4.557479    7.198639  1.483342
## 
## Weights W:
## (This is the loading matrix)
## 
##            lcp_mex.l4 lpib_mex.l4      constant
## lcp_mex.d  -0.4955292  0.05574003 -1.774483e-11
## lpib_mex.d -0.2795953  0.09201028 -6.438725e-12

Al realizar la prueba lo resultados muestran que para la primera hipótesis r=0 y alternativa r= 1 se acepta la hipótesis alternativa de cointegración el estadístico es mayor al valor critico del 10%, 31.01 >17.85

Para la segunda hipótesis r<= 1 y alternativa r= 2 no se rechaza la hipótesis nula de dos vector de cointegración Por lo que se pueden identificar los vectores de cointegración (1, -1.25, 4.55) y (1 ,-1.41, 7.19).

Prueba de Johansen de la traza con tendencia

library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="trend",spec=c("longrun"),K=4))
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend in cointegration 
## 
## Eigenvalues (lambda):
## [1] 3.007210e-01 6.711864e-02 3.632077e-18
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  5.98 10.49 12.25 16.26
## r = 0  | 36.74 22.76 25.32 30.45
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##               lcp_mex.l4  lpib_mex.l4     trend.l4
## lcp_mex.l4   1.000000000  1.000000000  1.000000000
## lpib_mex.l4 -2.613552539 -0.740358526 -1.944486294
## trend.l4     0.008212396 -0.002968024  0.007611815
## 
## Weights W:
## (This is the loading matrix)
## 
##             lcp_mex.l4 lpib_mex.l4      trend.l4
## lcp_mex.d  -0.10989875  -0.3329111 -2.471382e-12
## lpib_mex.d  0.03206499  -0.2557477 -4.370999e-13

Tal como en el caso de la opción sin tendencia y constante, No se rechaza la hipótesis de cointegración con solo vector. El vector de cointegración es (1 -2.61 0.008).

3. Causalidad en el sentido de Granger.

Propósito de la prueba

La noción de causalidad de C.W.J. Granger (1969) es una prueba estadística empleada para determinar si una serie temporal puede predecir a otra. Permitiendo identificar en series temporales en las que se observa una correlación que variable antecede a la otra. (Granados 2013)

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

La serie temporal X no causa que Y se cause a sí misma

Hipótesis Alternativa: 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}\neq0\))

La serie temporal X hace que la serie temporal Y se cause a si misma con causa-Granger (Balacco 1986)

Sintaxis de implementación en R (explicando cada argumento)

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

grangertest(X, Y, order = 1)

Donde:

-X: Es la primera serie temporal.

-Y: Es la segunda serie temporal.

-Order: Es el numero de retardos a utilizar en la primera serie de tiempo. El valor predeterminado es 1.

Estadistico de prueba

Las variables x y y deben ser estacionarias.

Entonces, para probar que x causa Granger 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.

Es dado por el estadistico F

\(F = \frac{\frac{RSS_1-RSS_2}{P_2-P_1}}{\frac{RSS_2}{n-p_2}}\)

Criterio de decisión

Rechazar \(H_0\) si \({P_{value}}\le{\alpha}\)

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

Si \({P_{value}}\le{\alpha}\) se rechaza la hipótesis nula por lo tanto decimos que la serie temporal X hace que la serie temporal Y se cause asi misma con Causa-Granger.

Si \(P_{value}\geq\alpha\) no se rechaza la hipótesis nula por lo tanto decimos que la serie temporal X no causa que la serie temporal Y se cause asi misma.

Ejemplo de aplicación

Planteamiento de las hipotesis:

\(H_0\): “Conocer el numero de pollos no es util para predecir el numero futuro de huevos.”

\(H_1\): “Conocer el numero de huevos es util para predecir el numero futuro de pollos.”

Carga de los datos

Usaremos conjunto de datos ChickEgg que viene precargado en el paquete lmtest. Este conjunto de datos contiene valores para el número de huevos fabricados junto con el número de pollos en los Estados Unidos de 1930 a 1983:

library(lmtest)
## Warning: package 'lmtest' was built under R version 4.0.5
## Warning: package 'zoo' was built under R version 4.0.5
data(ChickEgg)
head(ChickEgg)
##      chicken  egg
## [1,]  468491 3581
## [2,]  449743 3532
## [3,]  436815 3327
## [4,]  444523 3255
## [5,]  433937 3156
## [6,]  389958 3081

Aplicación de la prueba de causalidad

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

Como 0.002966< 0.05 Se rechaza la H0, por lo tanto se concluye que conocer el numero de huevos es util para predecir el numero futuro de pollos.

Prueba de causalidad de Granger a la inversa

Aunque rechazamos la hipótesis nula de la prueba, en realidad es posible que haya un caso de causalidad inversa. Es decir, es posible que el número de pollos esté haciendo que el número de huevos cambie.

Para descartar esta posibilidad, necesitamos realizar la prueba de Causalidad de Granger a la inversa, utilizando pollos como variable predictora y huevos como variable de respuesta:

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

Como 0,6238 > 0.05, No se rechaza la \(H_0\), por lo que podemos decir que el número de pollos no es predictivo del número futuro de huevos.

Por lo tanto, podemos concluir que conocer el número de huevos es útil para predecir el número futuro de pollos.

Referencias

Balacco, Hugo. 1986. “Algunas Consideraciones Sobre La Definición de Causalidad de Granger En El análisis Econométrico.” Económica 32.
Castrillo-Rojas, Desirée, and Adolfo Rodrı́guez-Vargas. 2009. “Procedimiento Para La Aplicación de Pruebas de Raı́z Unitaria.” Banco Central de Costa Rica.
González, Miguel Ángel Mendoza. n.d. “Econometrı́a Espacial: Aplicaciones Con r.”
Granados, Roberto Montero. 2013. “Test de Causalidad.” Obtenido de Test de Causalidad: Http://Www. Ugr. Es/~ Montero/Matematicas/Causalidad. Pdf.
Lizarazu-Alanez, Eddy, and José A Villaseñor-Alva. 2007. “Efectos de Rompimientos Bajo La Hipótesis Nula de La Prueba Dickey-Fuller Para Raı́z Unitaria.” Agrociencia 41 (2): 193–203.
Mahadeva, Lavan, and Paul Robinson. 2009. “Ensayo 76: Prueba de Raı́z Unitaria Para Ayudar a La Construcción de Un Modelo.” México DF: Centro de Estudios Monetarios Latinoamericanos.