Tarea de Investigación (parte 1): Cointegración y Causalidad.
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMIA
“Tarea de investigación (parte 1): Cointegración y Causalidad”
Asignatura:
Métodos para el Analisis Económico.
Ciclo Académico:
II/2023.
Docente:
Carlos Ademir Peréz Alas.
Grupo Teórico:
GT_02
Integrantes:
Pablo José Flores Parra FP21011.
Brittany Nallely Hernández Villegas HV21002
Gracia María Lemus Mejía LM21017
Elmer Nahum Martínez Méndez MM21092
Ciudad Universitaria, 07 de enero de 2024
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.
Propósito de la prueba, ¿Para qué se usa?
La Prueba de Raíz Unitaria de Dickey-Fuller se utiliza para identificar si una serie temporal exhibe un comportamiento estocástico de tendencia. En otras palabras, se emplea para evaluar si una variable a lo largo del tiempo muestra una tendencia persistente en lugar de comportarse de manera estacionaria. La prueba se basa en la premisa de un proceso estocástico de raíz unitaria, representado por la ecuación:
\[Y_t = \rho Y_{t-1} + u_t\]
Donde −1 ≤ ρ ≤ 1, y es un término de error de ruido blanco. Si ρ=1, lo cual implica una raíz unitaria, se obtiene un modelo de caminata aleatoria sin deriva, lo que significa que el proceso es no estacionario.
Para realizar la prueba, se parte de la ecuación original de raíz unitaria y se reorganiza restando Yt−1 de ambos lados:
\[ Y_t - Y_{t-1} = \rho Y_{t-1} - Y_{t-1} + u_t = (\rho - 1) Y_{t-1} + u_t\]
Esto se expresa como:
\[\Delta Y_t = \delta Y_{t-1} + U_t\]
Donde δ=(ρ−1) y Δ representa el operador de primeras diferencias. La idea es calcular ΔYt, que son las primeras diferencias de Yt, y luego realizar una regresión sobre Yt−1 para probar la hipótesis nula de que δ=0. Si δ=0, entonces ρ=1, indicando una raíz unitaria y la no estacionariedad de la serie temporal.
En términos más simples, si el coeficiente estimado de la pendiente (δ) en la regresión es cero, se concluye que la serie temporal no es estacionaria. Si δ es negativo, se infiere que la serie es estacionaria.
La Prueba de Raíz Unitaria nos ayuda a entender si los datos tienen una historia que debemos considerar al hacer predicciones o si podemos asumir que el comportamiento pasado no afectará significativamente el futuro. una serie estacionaria implica que los patrones pasados no influyen significativamente en los futuros, lo que puede simplificar el análisis y la predicción en comparación con una serie no estacionaria con una tendencia persistente.
Hipótesis de la prueba.
Hipótesis Nula (H0):
Hipótesis nula: H0: δ = 0 (es decir, existe una raíz unitaria, la serie de tiempo es no estacionaria o tiene tendencia estocástica)
• Escenario 1: Yt es una caminata aleatoria. En este caso, no hay una tendencia estocástica en las observaciones.
• Escenario 2: Yt es una caminata aleatoria con deriva. Aquí, la serie puede tener una tendencia estocástica con una constante (β1).
• Escenario 3: Yt es una caminata aleatoria con deriva alrededor de una tendencia determinista. En este caso, además de la deriva, hay una tendencia determinista representada por β1+β2t, donde t es la variable de tiempo o tendencia.
Hipótesis Nula (H1):
• En todos los escenarios, la hipótesis alternativa es que δ<0, lo que significa que la serie de tiempo es estacionaria. En otras palabras, la tendencia estocástica en las observaciones disminuye con el tiempo.
Sintaxis de implementación en R.
En R, puedes implementar la Prueba de Raíz Unitaria de Dickey-Fuller utilizando la función adf.test del paquete “tseries”.
Luego de carga e instalar el paquete y generar los datos de la serie o importar los datos que se utilizaran, se ve así:adf.test(x, alternative = c("stationary", "explosive"),
k = trunc((length(x)-1)^(1/3)))
• x: un vector numérico o serie temporal.
• alternative: indica la hipótesis alternativa y debe ser uno de “stationary” (estacionaria) (predeterminado) o “explosive” (explosiva). Puedes especificar solo la letra inicial.
• k: el orden de rezago para calcular la estadística de prueba.
Estadístico de prueba (salida que genera R).
La salida generada incluye información sobre el “estadístico de prueba” o “ADF estadístico”. Este estadístico es fundamental para determinar si tus datos son estacionarios o no.
Criterio de decisión (salida que genera R).
De la misma salida en podemos identificar Si el valor p es menor que el nivel de significancia (0.05 o el valor que se elija), generalmente se interpreta como evidencia suficiente para rechazar la hipótesis nula de raíz unitaria, indicando que tus datos son estacionarios.
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
-Hipótesis Nula (H0): La serie temporal tiene una raíz unitaria (no es estacionaria).
-Hipótesis Nula (H1): La serie temporal es estacionaria, no tiene una raíz unitaria.
La interpretación del resultado de la prueba se realiza en función de la evidencia proporcionada por el estadístico de prueba (ADF estadístico) y el p-valor:
Rechazo de la **Hipótesis Nula (H~0~):**
Si el p-valor es menor que el nivel de significancia elegido, puedes rechazar la hipótesis nula (H0). Esto sugiere que hay evidencia suficiente para concluir que la serie temporal es estacionaria, en línea con la hipótesis alternativa (H1).
No Rechazo de la **Hipótesis Nula (H~0~):**
Si el p-valor es igual o mayor que el nivel de significancia, no hay evidencia suficiente para rechazar la hipótesis nula (H0). Esto podría indicar que la serie temporal podría tener una raíz unitaria, lo que implica no estacionariedad.
Entonces,la prueba busca distinguir entre dos tipos de series temporales. En una serie estacionaria o con tendencia estacionaria, los valores tienden a regresar a una constante, y el nivel actual es un buen indicador del cambio futuro (coeficiente negativo). En contraste, en una serie integrada, los cambios futuros son impredecibles y no dependen del nivel actual (coeficiente no significativo). Esta distinción es esencial para comprender si la serie sigue un patrón predecible o si se comporta más como un paseo aleatorio, lo que impacta en las estrategias de análisis y modelado de series temporales; La hipótesis alternativa (H1) es esencialmente la afirmación de que la serie temporal es estacionaria, en oposición a la hipótesis nula que sugiere la presencia de una raíz unitaria y no estacionariedad. La toma de decisiones se basa en el estadístico de prueba y el p-valor, y la conclusión final depende de si decides rechazar o no rechazar la hipótesis nula.
Implementación de un ejemplo.
## [1] 112 118 132 129 121 135 148 148 136 119
##
## Augmented Dickey-Fuller Test
##
## data: x
## Dickey-Fuller = -7.3186, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
El valor p (0.01) es menor que un nivel de significancia 0.05, se rechaza la hipotesis Nula. Y no se rechaza la Hipotesis Alternativa, es decir que la serie temporal no tiene una raíz unitaria y es estacionaria. Significa que la serie tiene patrones o tendencias predecibles, esto implica que la cantidad de pasajeros sigue un patrón predecible a lo largo del tiempo y no tiene una tendencia significativa
2. Cointegración en el enfoque de Soren Johansen.
PRUEBA DE COINTEGRACION DE JOHANSEN
La prueba de cointegración de Johansen es una forma de determinar si tres o más series de tiempo están cointegradas
Propósito de la prueba.
La prueba de Johansen se utiliza para determinar si existe una relación de largo plazo entre varias series de tiempo. Es decir, se utiliza para verificar si un conjunto de variables no estacionarias tiene una combinación lineal que es estacionaria.
Hipótesis de la prueba.
La hipótesis nula (H0):
Es que para ambas formas de prueba es que no hay ecuaciones de cointegración.
La hipótesis alternativa (H1):
Es simplemente que el número de relaciones de cointegración es al menos uno². La prueba de valores propios máximos tiene una hipótesis alternativa de K 0 + 1 (en lugar de K > K 0 )².
Sintaxis de implementación en R.
Para realizar la prueba de cointegración de Johansen en R, necesitamos
usar el paquete urca. la sintaxis básica es:
Instalar y cargar el paquete urca
install.packages(“urca”)
library(urca)
Realizar la prueba de cointegración de Johansen
resultado <- ca.jo(cbind(a,b), type=“trace”, ecdet = “const”, K = 2, spec =“longrun”)
Donde:
cbind(a,b): son las series de tiempo a analizar.type="trace": especifica que se utilizará la prueba de trazas.ecdet = "const": especifica que el modelo tiene una intercepción constante.K = 2: es el número de rezagos en el modelo VAR.spec ="longrun": especifica que se estima un modelo de corrección de errores de largo plazo⁴.
Estadístico de prueba
El resultado de la prueba de Johansen se puede ver con el comando
summary(resultado). Esto mostrará los valores propios y los
estadísticos de prueba para la hipótesis nula de r relaciones de
cointegración.
Criterio de decisión
Si el estadístico de prueba es mayor que el valor crítico, entonces rechazamos la hipótesis nula.
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
Si rechazamos la hipótesis nula, concluimos que las series están cointegradas, es decir, existe una relación de largo plazo entre ellas². Si no rechazamos la hipótesis nula, concluimos que las series no están cointegradas.
Implementación de un ejemplo
Ejemplo de cómo implementar la prueba de cointegración de Johansen en R:
# Cargar el paquete urca
library(urca)
# Generar algunas series de tiempo para el ejemplo
set.seed(123)
a <- cumsum(rnorm(100))
b <- a + rnorm(100, mean=0.1, sd=0.1)
c <- 2*a + rnorm(100, mean=0.1, sd=0.1)
# Realizar la prueba de cointegración de Johansen
resultado <- ca.jo(cbind(a,b,c), type="trace", ecdet = "const", K = 2, spec ="longrun")
# Ver el resultado
summary(resultado)##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 4.362035e-01 3.695350e-01 2.266837e-02 3.341272e-17
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 2 | 2.25 7.52 9.24 12.97
## r <= 1 | 47.45 17.85 19.96 24.60
## r = 0 | 103.61 32.00 34.91 41.07
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## a.l2 b.l2 c.l2 constant
## a.l2 1.00000000 1.00000000 1.00000000 1.00000000
## b.l2 2.60596283 -0.26555333 0.01382318 0.41345058
## c.l2 -1.79440002 -0.36582827 -0.54979416 -0.79077190
## constant -0.07793762 0.05661365 0.46460681 0.09000996
##
## Weights W:
## (This is the loading matrix)
##
## a.l2 b.l2 c.l2 constant
## a.d 0.002302751 -4.278707 0.4790415 2.555898e-14
## b.d -0.366965663 -3.087677 0.4813749 3.215829e-14
## c.d 0.202893437 -6.721380 0.9627672 2.601555e-14
Este código generará tres series de tiempo (a,
b y c) y luego realizará la prueba de
cointegración de Johansen en estas series. Finalmente, muestra el
resultado de la prueba.
3. Causalidad en el sentido de Granger.
La prueba de causalidad de Granger proporciona un marco estadístico para analizar la relación de causalidad entre series temporales, especialmente en el contexto de la predicción económica y financiera.
La prueba de causalidad de Granger es un procedimiento estadístico diseñado para evaluar si una serie temporal puede ser empleada efectivamente para prever otra serie temporal.
Propósito de la prueba, ¿Para qué se usa?
La prueba de causalidad en el sentido de Granger es una prueba de hipótesis estadística, utilizada para determinar si una serie de tiempo es útil para pronosticar otra. Por lo general, las regresiones reflejan “meras” correlaciones, pero Clive Granger argumentó que la causalidad en economía podría probarse midiendo la capacidad de predecir los valores futuros de una serie de tiempo usando valores previos de otra serie de tiempo. En lugar de probar si X causa Y, la causalidad de Granger prueba si X pronostica Y. En esta prueba tambien se analiza si se obtiene un resultado de carácter unidireccional o bidireccional.
Se debe comparar y deducir si el comportamiento actual y pasado de una serie temporal X predice el comportamiento de otra serie temporal Y. Si este es el caso, 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.
La causalidad de Granger se presenta bajo dos condiciones fundamentales. La primera condición sostiene que la causa precede al efecto, es decir, el efecto Y es una función que siempre depende de valores previos de la causa X, nunca de valores simultáneos ni futuros. La segunda condición establece que la causa proporciona información única para prever los valores futuros de Y.
Granger Plantea dos ecuaciones:
\[ 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} \]
\[ 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 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_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} \]
Usualmente 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.
Hipótesis de la prueba.
Esta prueba genera una estadística de prueba F junto con un valor p.
Hipótesis Nula (H0):
Si la serie de tiempo X no causa en el sentido de Granger a la serie de tiempo Y, entonces los coeficientes β1 , β2 , βi, serán iguales a cero. En otras palabras, los valores pasados de X no proporcionan información adicional para predecir Y más allá de lo que ya se puede prever utilizando solo los valores pasados de Y.
\[H_0: \beta_1 = \beta_2 = \ldots = \beta_i = 0 \]
Hipótesis alternativa (H1)
Si la serie de tiempo X causa en el sentido de granger a la serie de tiempo Y, entonces al menos uno de β1, β2,βi, será distinto de cero. En otras palabras, los valores pasados de X proporcionan información adicional para predecir Y más allá de lo que ya se puede prever utilizando solo los valores pasados de Y.
\[H_1: \beta_1 ≠ \beta_2 ≠ \ldots ≠ \beta_i ≠ 0 \]
Sintaxis de implementación en R.
En R, puedes utilizar la función grangertest del paquete lmtest para realizar la prueba de causalidad de Granger.
library(lmtest)
Supongamos que tienes dos series temporales X y Y almacenadas en los vectores x y y.
Realizar la prueba de causalidad de Granger.
result <- grangertest(y ~ x, order = i, data = data)
Donde:
y: Es la serie temporal dependiente que quieres probar.
x: Es la serie temporal que estás considerando como la posible causa de y.
order: Especifica el orden del retardo para el modelo. Puedes ajustar i a la cantidad de retrasos que deseas probar.
data: Es el conjunto de datos que contiene las variables y y x.
El resultado (result) será un objeto que contiene los resultados de la prueba de causalidad de Granger
Estadístico de prueba.
Una manera de llevar a cabo esta prueba consiste en calcular la suma de los residuos al cuadrado de la regresión no restringida (URSS, por sus siglas en inglés).
\[ URSS = \sum_{t=1}^{n} u_t^2 \]
Compararla con la suma de residuos al cuadrado de una autorregresión univariada no restringida para X~t (RRSS, por sus siglas en inglés)
\[RRSS = \sum_{t=1}^{n} e_t^2 \]
Obteniendo como resultado a la siguiente ecuación, denominada usualmente como ecuación de regresión restringida:
\[ X_t = \gamma_0 + \gamma_1X_{t-1} + \gamma_2X_{t-2} + \ldots + \gamma_iX_{t-i} + e_t \]
El estadístico de prueba es el siguiente:
\[ F \equiv \frac{{RRSS - URSS/m}}{{URSS/(n-k)}}\]
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.
La prueba de causalidad en el sentido de Granger se realiza mediante la función grangertest() en R. Al presentar los resultados, el estadístico de prueba se denota comúnmente con la notación F.
Criterio de desición.
En el caso en donde el Estadístico de Prueba F es mayor o igual que el valor crítico, la hipotesis nula debe rechazarse, caso contrario, el Estadístico de Prueba F es menor que el valor crítico no se rechaza la hipotesis nula.
Rechazar H0 si F ≥ V.C.
No rechazar H0 si F < V.C.
En la salida o presentacion de resultados de la prueba de causalidad de Granger en R se presenta el p-value. Si el valor p-value es menor que un cierto nivel de significancia (es decir, α = .05), entonces podemos rechazar la hipótesis nula y concluir que tenemos suficiente evidencia para decir que la serie de tiempo x Granger-causa la serie de tiempo y.
Rechazar p−value ≤ α
No rechazar p−value > α
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
Si se rechaza la hipótesis nula, significa que existe evidencia estadística significativa para afirmar que la serie temporal X Granger-causa la serie temporal Y. Esto puede indicar que la información contenida en X es útil para prever Y, lo que sugiere una relación causal entre ambas series temporales.
Si no se rechaza la hipótesis nula, no hay suficiente evidencia estadística para afirmar que la serie temporal X Granger-causa la serie temporal Y. Esto podría indicar que X no proporciona información adicional significativa para prever Y más allá de lo que ya se puede prever utilizando solo los valores pasados de Y.
Implementación de un ejemplo.
En este ejemplo, emplearemos el conjunto de datos ChickEgg incluido de forma predeterminada en el paquete lmtest. Este conjunto de datos presenta información sobre la cantidad de huevos producidos junto con el número de pollos en los Estados Unidos desde 1930 hasta 1983:
Cargamos los datos
## chicken egg
## [1,] 468491 3581
## [2,] 449743 3532
## [3,] 436815 3327
## [4,] 444523 3255
## [5,] 433937 3156
## [6,] 389958 3081
Emplearemos la función grangertest() para llevar a cabo la prueba de causalidad de Granger y determinar si la cantidad de huevos producidos es predictiva del número futuro de pollos.
library(lmtest)
### Guardamos la Prueba en un objeto para acceder a los resultados
granger_test <- grangertest(chicken~egg,order=3,data = Datos)
print(granger_test)## 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
Interpretación: El estadístico de prueba F es de 5.405 y el valor p es de 0.002966. Según el criterio de decisión, se rechaza la hipótesis nula si F ≥ V.C. o si p-value ≤ α, donde α es el nivel de significancia. Dado que el valor p es menor al nivel de significancia del 5%, hay evidencia para rechazar la hipótesis nula y concluir que conocer el número de huevos es útil para predecir el número futuro de pollos.
Prueba de causalidad de Granger a la inversa.
library(lmtest)
### Guardamos la Prueba en un objeto para acceder a los resultados
granger_test_inv <- grangertest(egg~chicken,order=3,data = Datos)
print(granger_test_inv)## 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
Interpretación: El estadístico de prueba F es de 0.5916 y el valor p es de 0.6238. Según el criterio de decisión, se rechaza la hipótesis nula si F ≥ V.C. o si p-value ≤ α, donde α es el nivel de significancia. Dado que el valor p no es menor al nivel de significancia del 5%, no hay evidencia para rechazar la hipótesis nula. Es decir, la cantidad de pollos no predice la cantidad futura de huevos.
Bibliografía.
Victor A.Rico. (2021, 8 junio). Prueba de raiz unitaria de DICKEY FULLER en R [Vídeo]. YouTube. https://www.youtube.com/watch?v=ZjzX1cZ9ObM
Statologos. (2021). Prueba de Johansen: definición simple. https://statologos.com/prueba-de-johansens/
OpenStax. (n.d.). 9.1 Hipótesis nula y alternativa - Introducción a la estadística. https://statologos.com/prueba-de-johansens/
Causalidad de Granger _ AcademiaLab. (s. f.). https://academia-lab.com/enciclopedia/causalidad-de-granger/
Carlos, M. J. (2022). 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. https://repositorio.comillas.edu/xmlui/handle/11531/62362#:~:text=La%20causalidad%20de%20Granger%20es,tiene%20resultado%20unidireccional%20o%20bidireccional.
Rodríguez, D., & Rodríguez, D. (2021, 24 julio). Test de causalidad de Wiener-Granger. Analytics Lane. https://www.analyticslane.com/2019/11/18/test-de-causalidad-de-wiener-granger/
Statologos. (2021, 7 mayo). Cómo realizar una prueba de causalidad de granger en R. https://statologos.com/granger-causality-test-in-r/