Portada

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE CIENCIAS ECONÓMICAS

ESCUELA DE ECONOMÍA

TEMA: COINTEGRACIÓN Y CAUSALIDAD

DOCENTE: MSF. CARLOS ADEMIR PÉREZ

MATERIA: MÉTODOS PARA EL ANÁLISIS ECONÓMICO

GT: 02

Integrantes:

Estudiantes CARNET
KEVIN ADONAY LEMUS PEREZ LP16027
LUIS DANIEL QUIJANO VÁSQUEZ QV13001
ERICK RODOLFO ROJAS FLORES RF21001
JEIMMY YAMILETH SALAZAR CHAVEZ SC19009

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

Propósito

Determinar si una serie temporal es estacionaria o no. La estacionariedad es una propiedad importante en el análisis de series temporales, ya que simplifica la modelización y permite hacer predicciones más confiables. Una serie no estacionaria puede mostrar tendencias o patrones que dificultan la identificación de relaciones estadísticas significativas.

La prueba evalúa la presencia de una raíz unitaria en la serie temporal. Si se encuentra evidencia de una raíz unitaria, la serie se considera no estacionaria. En cambio, si no hay evidencia de una raíz unitaria, se rechaza la hipótesis nula de no estacionariedad, y se concluye que la serie es estacionaria.

Es decir, la Prueba de Raíz Unitaria de Dickey-Fuller es una herramienta esencial en econometría para asegurarse de que las series temporales utilizadas en análisis y modelos sean estacionarias, lo que mejora la robustez y la validez de los resultados obtenidos.

Es por ello que aplicar el test de Dickey & Fuller a una serie de tiempo previo de realizar estimaciones y pronósticos con la misma resulta de mucha confiabilidad en los resultados.

Hipótesis

La Prueba de Raíz Unitaria de Dickey-Fuller se basa en la siguiente regresión autoregresiva: \[ ΔY~t~=ρY~t−1~+α+β~t~+ε~t~\]

Donde:

  • Δ es el operador de diferencia.
  • Yt es la serie temporal.
  • p es el coeficiente de la raíz unitaria.
  • α es la constante.
  • β es el coeficiente de la tendencia temporal.
  • t es el tiempo.
  • εt es el término de error.

Sintaxis de implementación en R

La Prueba de Raíz Unitaria de Dickey-Fuller se puede aplicar en R a través de la función “ur.df()” de la librería “urca” de la siguiente forma:

# Instala la librería si aún no lo has hecho
# install.packages("urca")

# Carga la librería
library(urca)
library(tseries)

# Crea tu serie temporal (sustituye esto con tus datos reales)
serie_temporal <- ts(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

# Realiza la prueba de Dickey-Fuller
resultado_prueba <- adf.test(x = serie_temporal, k = 0)

# Imprime los resultados
print(resultado_prueba)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  serie_temporal
## Dickey-Fuller = NaN, Lag order = 0, p-value = NA
## alternative hypothesis: stationary

Estadístico de prueba

En la Prueba de Raíz Unitaria de Dickey-Fuller, el estadístico de prueba principal que se utiliza para tomar decisiones sobre la hipótesis nula es el propio estadístico de la prueba de Dickey-Fuller, denotado comúnmente como DF o ADF (Augmented Dickey-Fuller).

El estadístico DF (Dickey-Fuller) se calcula como parte de la Prueba de Raíz Unitaria de Dickey-Fuller. La fórmula específica para el estadístico de la prueba depende de la configuración del modelo que estás utilizando, ya que existen diferentes versiones de la prueba que incluyen términos adicionales para tener en cuenta tendencias y constantes.

Para efectos del presente trabajo, el estadístico de prueba será expresado como “t” por las salidas obtenidas en R.

Donde:

  • p es el estimador del coeficiente de la raíz unitaria en el modelo autoregresivo.
  • SE(p) es el error estándar del estimador.

Criterio de decisión

Hipotesis nula (H0): postula la presencia de una raíz unitaria, lo que implica que la serie temporal es no estacionaria.

H0: ρ = 0

Se rechaza H0 si:

t < VC

Pvalue < α

Hipotesis alternativa (H1): sugiere la ausencia de una raíz unitaria, es decir, la serie es estacionaria.

H1: ρ < 0

Se rechaza H1 si:

t > VC

Pvalue > α

En algunos casos, la prueba también se puede llevar a cabo considerando ρ != 0 en lugar de ρ < 0

Interpretación de rechazo o no rechazo de H0 de la prueba

La interpretación de los resultados de la prueba se basa en la comparación del estadístico de prueba con los valores críticos. Si el estadístico de prueba es menor que (<) el valor crítico, se rechaza la hipótesis nula, lo que sugiere que la serie es estacionaria. En cambio, si el estadístico de prueba es mayor que (>) el valor crítico, no se puede rechazar la hipótesis nula, lo que indica que la serie podría tener una raíz unitaria y ser no estacionaria.

Ejemplo

  • Haciendo uso de la función ur.df() de la librería urca:
# Creamos una serie temporal, con seed "aleatoria" 
set.seed(40)
x = rnorm(200)
w = rnorm(200)
for (i in 2:200) {
  x[i] <- x[i - 1] + w[i]
}
#Cargamos la librería y aplicamos la función ur.df a los datos creados anteriormente (x)
library(urca)
df = ur.df(x, type = "none", lags = 0)
#Mostramos los datos
summary(df)
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.68164 -0.71611  0.06764  0.84718  2.20570 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)
## z.lag.1 0.005988   0.006038   0.992    0.323
## 
## Residual standard error: 0.9693 on 198 degrees of freedom
## Multiple R-squared:  0.004941,   Adjusted R-squared:  -8.416e-05 
## F-statistic: 0.9833 on 1 and 198 DF,  p-value: 0.3226
## 
## 
## Value of test-statistic is: 0.9916 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62

El estadístico t obtenido es de 0.9916, por lo que podemos observar que el estadístico es mayor que los valores críticos para todos los niveles de significancia (1% = -2.58, 5% = -1.95 y 10% = -1.62). Por lo tanto, tenemos evidencia para no rechazar H0, lo que nos lleva a concluir que la serie temporal parece tener una raíz unitaria y no es estacionaria.

  • Haciendo uso de la función adf.test() de la librería tseries.
#Cargamos la librería y le pasamos la serie temporal creada (x), luego aplicamos la función adf.test
library(tseries)
adf.test(x, k = 0)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  x
## Dickey-Fuller = -3.3656, Lag order = 0, p-value = 0.06187
## alternative hypothesis: stationary

Esta forma, nos indica que el estadístico t obtenido es de -3.3656 y que el Pvalue es de 0.06187. Para tomar una decisión, comparamos este pvalue con un nivel de significancia predefinido (0.05).

En este caso, el Pvalue (0.06187) es mayor que 0.05, por lo que no podemos rechazar H0. Por lo tanto, según el pvalue obtenido, tenemos evidencia de que la serie temporal no es estacionaria a un nivel de significancia del 0.05.

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

Propósito

Analizar la existencia de relaciones de equilibrio a largo plazo entre variables en un sistema de series temporales. El propósito fundamental de realizar esta prueba es determinar si hay una combinación lineal de las variables que forma una relación estacionaria, lo que indica que las variables están cointegradas.

Se usa para a 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 más combinaciones lineales J(U) o vectores de cointegración. (Cuellar, 2021)

La prueba de cointegración de Johansen es una herramienta valiosa en el análisis de series temporales, especialmente en la modelización de relaciones económicas a largo plazo. Ayuda a identificar y entender las relaciones estacionarias entre variables, lo que puede ser esencial para la toma de decisiones y la formulación de políticas en diversos campos, desde la economía hasta las finanzas.

Hipótesis

Las hipótesis son útiles para probar si una sola serie Xt es I(0) o I(1), pero puede haber más de una relación de cointegración potencial (r>1) por ello es útil tener pruebas de hipótesis que consideren diferentes valores de r. Por ejemplo:

\[ H~j~: r = j, \] por \[ j = 0, 1, \] y \[ n...1\]

Por lo cual se pueden plantear las siguientes hipótesis según la cantidad de relaciones de cointegración potencial (r>1) de la siguiente manera:

H0: r = 0

H1: r > 0

Entendiéndose así que:

  • r=0: significa que no hay cointegración
  • r = 1 significa que hay un solo vector de cointegración

y así sucesivamente (Cuellar, 2021)

Sintaxis de implementación en R

Para realizar esta prueba en R, utilizamos la función “ca.jo()” que pertenece al paquete “urca”, la cual se aplica de la siguiente manera:

ca.jo(X,type,ecdet,k).

Un ejemplo breve de su utilización es el siguiente:

## cargamos la librería urca
#library(urca) 

##cargamos la información/data "denmark"
# data(denmark) 

##Creamos la matriz de información "x"
#x <- denmark[, c("Variable1", "Variable2", "Variable3")] 

## "ca.jo(X,type,ecdet,k)" es la sintaxis de la función "ca.jo()"
#x.vecm <- ca.jo(X,type,ecdet,k) 

##mostramos resultado
#summary(sjd.vecm) 

Donde:

  • x: Matriz de información a aplicar la prueba.
  • type: tipo de prueba a realizar.
  • ecdet: Indica si la cointegración presentará o no intercepto, constante y tendencia.
  • k: Orden de rezagos de las variables.

Estadístico de prueba

La Prueba de Cointegración de Johansen involucra dos estadísticos de prueba principales:

  • Estadística de la Máxima Verosimilitud del Eigenvalor (MLE): En el enfoque de Johansen, se obtienen r estadísticas de Eigenvalor, donde r es el número de relaciones de cointegración.
  • Estadística de la Máxima Verosimilitud de la Traza (MLT): La estadística de la MLT es la suma de las r estadísticas de Eigenvalor.

Ambas estadísticas se utilizan para determinar el número de relaciones de cointegración en un sistema de ecuaciones.

Criterio de decisión

  • Se rechaza H0: λ > VC
  • No se rechaza H0: λ < VC

Donde:

λ = autovalores

VC = Valores Críticos

Interpretación del rechazo, o no rechazo de H0 de la prueba

H0 se rechazará, cuando λ > VC, esto implica que r != 0, indicándonos que existirá una relación de coitegración entre las variables, para ello debemos evaluar los autovalores con los valores críticos según su grado de significancia hasta que sea posible rechazar H0, pues ahí concluiremos que habrá por lo menos una relación de cointegración entre las variables.

Ejemplo

data(finland) #Cargamos datos relacionados a Finlandia

x <- finland #asignamos los datos de finlandia a la variable "x"
x.vecm <- ca.jo(x, ecdet = "none", type="trace", K=2, #aplicamos el análisis de cointegración Johansen a la matriz de información (x)
                  spec="longrun", season=4)
summary(x.vecm) #mostramos los resultados del análisis
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , 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 | 11.00 15.66 17.95 23.52
## r <= 1 | 37.65 28.71 31.52 37.22
## r = 0  | 76.13 45.23 48.28 55.43
## 
## 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

Interpretación: El autovalor asociado con r=1 (37.65) es mayor que el valor crítico correspondiente (31.52 para el 1% de significancia). Esto sugiere que hay al menos una relación de cointegración en el sistema.

Dado que el autovalor para r=1 es significativo, y también es el autovalor más grande, es probable que haya más de una relación de cointegración en el sistema.

Es decir, el autovalor asociado con r=1 supera el valor crítico, lo que sugiere que al menos una relación de cointegración está presente en el sistema.

3. Causalidad en el sentido de Granger.

Propósito

La prueba de Granger es una técnica estadística utilizada para determinar si una serie temporal puede predecir otra. La idea principal detrás de la prueba de Granger es evaluar si la inclusión de la información pasada de una variable temporal mejora la capacidad de predecir otra variable temporal. Es decir, si la serie temporal de una variable X ayuda a predecir la variable Y, se podría decir que X Granger-causa a Y.

Es decir, el propósito de esta prueba es investigar la relación temporal entre dos variables y determinar si la información pasada de una de ellas puede ayudar a predecir la otra. En el contexto de la econometría y el análisis de series temporales, esta prueba se utiliza para examinar si una variable puede ser considerada como una causa predictiva de otra.

Hipótesis

H0: La serie de tiempo x no Granger-causa la serie de tiempo y.

H1: La serie de tiempo x Granger-causa la serie de tiempo y.

El término “Granger-causa” significa que conocer el valor de la serie de tiempo x en un cierto retraso es útil para predecir el valor de la serie de tiempo y en un período de tiempo posterior. (Cuellar, 2021)

Sintaxis de implementación en R

Para realizar esta prueba en R, utilizamos la función “ca.jo()” que pertenece al paquete “urca”, la cual se aplica de la siguiente manera:

grangertest(x,y,order=1)

Donde:

  • x: Primera serie temporal
  • y: Segunda serie temporal
  • order: el número de retrasos que se utilizarán en la primera serie de tiempo (el valor predeterminado es 1).

Estadístico de prueba

La prueba de Granger produce un Estadístico que se denota con la letra F con un Pvalue (Pr(>F)) correspondiente.

En R el estadístico F y el Pvalue se identifican de la siguiente manera:

## 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

El valor del estadístico F es 5.405, con su correspondiente Pvalue [Pr(>F)] de 0.002966.

Criterio de decisión

Rechazar H0 si:

  • Pvalue ≤ α

No rechazar H0 si:

  • Pvalue > α

Interpretación del rechazo, o no rechazo de H0 de la prueba

Si Pvalue ≤ α, entonces rechazamos H0 debido a que hay evidencia para concluir que la serie de tiempo x Granger-causa la serie de tiempo y.

Caso contrario, si Pvalue > α concluimos que hay evidencia para no rechazar H0. Es decir, la serie de tiempo “x” NO Granger-causa la serie de tiempo “y”.

Ejemplo

Se hará uso del conjunto de datos “ChickEgg” del paquete “lmtest”. Este conjunto de datos contiene valores para la cantidad de huevos fabricados junto con la cantidad de pollos en los EE. UU. Desde 1930 hasta 1983 con el objetivo de saber si el número de huevos fabricados es predictivo de la cantidad de pollos en el futuro. Se utilizará la prueba usando 3 lags (retrasos): (Chávez & Cabrera, 2021)

library(lmtest) #carga de librería
data(ChickEgg)#Carga de datos
grangertest(chicken ~ egg, order = 3, data = ChickEgg) #utilizamos grangertest() para aplicar la prueba
## 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

Conclusión

Según los resultados obtenidos, se tiene evidencia suficiente para rechazar H0, debido a que Pvalue ≤ α (0.002966 ≤ 0.05). Por lo que se concluye que conocer la cantidad de huevos es útil para predecir la cantidad de pollos en el futuro.

Fuente: “How to Perform a Granger-Causality Test in R” (Zach, 2021)

Bibliografía

Chamberlain, G. (2014). The general equivalence of granger and sims causality. Econometric Societyc. http://www.jstor.org/stable/1912601
Chávez, D. A. E., & Cabrera, B. A. G. (2021). Laboratorio 3: Cointegración y causalidad. https://rpubs.com/escolan_diana/LAB3
Chung, V. (n.d.). Modelos VEC en r. https://rstudio-pubs-static.s3.amazonaws.com/189106_a4b4ea3e4c9747ef9a7a28eba1137d6c.html.
Cuellar, J. L. G. (2021). Cointegración y causalidad. https://rpubs.com/JessicaCuellar/843574
Dickey, D. A., & Fuller, W. A. (1979). Distribution of the estimators for autoregressive time series with a unit root. Journal of the American Statistical Association, 74(366), 427–431. http://www.jstor.org/stable/2286348
Eloriaga, J. (2020). Johansen cointegration test in r. https://youtu.be/VjMLj7crVkw.
Hamilton, J. D. (1994). Times series analysis. http://mayoral.iae-csic.org/timeseries2021/hamilton.pdf
Johnston, J., & DiNardo, J. (1963). Econometric methods. https://www.academia.edu/download/6334617/et-review.pdf
MARTINEZ, L. D. C., ULLOA, K. M. C., REYES, L. E. M., & SARAVIA, R. A. M. (2022). Laboratorio 3. https://rpubs.com/Lisbeth/976263
R, W. S. (2021). Vec-cointegración. https://rpubs.com/wilsonsr/828582
Shumway, R. H., & Stoffer, D. S. (s.f.). Time series analysis and its applications: With r examples. Springer. https://mybiostats.files.wordpress.com/2015/03/time-series-analysis-and-its-applications-with-examples-in-r.pdf
Zach. (2021). How to perform a granger-causality test in r. https://www.statology.org/granger-causality-test-in-r/