A31
| INTEGRANTES | CARNET |
|---|---|
| Sandra Maribel Aparicio Fuentes | AF22025 |
| Nubia Linette Beltrán Hernández | BH21010 |
| Génesis Melissa Siguenza Rivas | SR22041 |
Tema de investigación: Cointegración y Causalidad.
Explique cómo realizar las siguientes pruebas en R:
1. Prueba de Raíz Unitaria de Dickey & Fuller.
¿Para qué se usa?
La prueba de Dickey-Fuller (DF) se utiliza para determinar si una serie temporal es estacionaria o contiene una raíz unitaria, es decir, si la serie tiene un comportamiento de tendencia estocástica. En otras palabras, la prueba evalúa si los valores futuros de la serie dependen de su pasado de manera no estacionaria.
Hipótesis de la prueba.
Hipótesis nula ( \(H_0\) ):
La serie contiene una raíz unitaria, es decir, no es estacionaria. \[ H_0: r = 0 \] Donde \(r\) representa la raíz unitaria que se está evaluando en el modelo: \[ y_t = r y_{t-1} + \epsilon_t \]
Hipótesis alternativa ( \(H_a\) ):
La serie no contiene una raíz unitaria, es decir, es estacionaria. \[ H_a: r \neq 0 \]
La prueba se basa en contrastar si el coeficiente de \(r\) es igual a 0 (raíz unitaria) o diferente de 0 (estacionariedad).
Sintaxis de implementación en R
En R, la prueba de Dickey-Fuller se puede realizar utilizando la
función adf.test del paquete tseries.
Código
# Instalar y cargar el paquete necesario
install.packages("tseries")
library(tseries)
# Ejecutar la prueba de Dickey-Fuller
resultado <- adf.test(x, alternative = "stationary", k = 0)Explicación de los argumentos:
x: Vector numérico que contiene la serie temporal a analizar.alternative: Especifica la hipótesis alternativa. Los valores posibles son:"stationary": Prueba si la serie es estacionaria."explosive": Prueba si la serie es explosiva.
k: Orden de rezago utilizado en el modelo autorregresivo (AR). Por defecto,k = 0.
Estadístico de prueba
El resultado incluye:
Estadístico de prueba: Valor calculado por la prueba.
P-valor: Probabilidad asociada al estadístico de prueba.
Lags utilizados: Número de rezagos considerados.
El estadístico de prueba se compara con los valores críticos correspondientes para decidir si se rechaza o no la hipótesis nula.
Criterio de decisión
Si el p-valor es menor que el nivel de significancia (por ejemplo, \(\alpha = 0.05\)), se rechaza la hipótesis nula (\(H_0\)), concluyendo que la serie es estacionaria.
Si el p-valor es mayor que \(\alpha\), no se rechaza \(H_0\), concluyendo que la serie contiene una raíz unitaria.
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
Rechazo de \(H_0\):
La serie es estacionaria, lo que implica que las propiedades estadísticas de la serie (como la media y la varianza) no cambian con el tiempo.
No rechazo de \(H_0\):
La serie contiene una raíz unitaria, lo que indica que no es estacionaria y podría requerir diferenciación u otros procedimientos para lograr estacionariedad.
Ejemplo
Supongamos que queremos analizar si la serie
AirPassengers es estacionaria.
Código:
#Cargar datos
library(tseries)
data("AirPassengers")
# Aplicar la prueba de Dickey-Fuller
resultado <- adf.test(AirPassengers, alternative = "stationary", k = 0)
# Ver resultados
print(resultado)##
## Augmented Dickey-Fuller Test
##
## data: AirPassengers
## Dickey-Fuller = -4.6392, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary
2. Cointegración en el enfoque de Soren Johansen.
¿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.
Según S. 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. Los pasos a seguir en la metodologíia de Johansen son:
Determinar el orden de integración de cada una de las series incluidas en el modelo.
Con aquellas variables que resulten de orden 1, formar un vector autorregresivo VAR. En tal caso:
- Seleccionar las variables del modelo.
- Realizar las transformaciones de las variables, sí las hay.
- Determinar el retardo óptimo del VAR que asegure que los residuos son ruido blanco (white noise).
- Especificar las variables determinísticas.(variables dummy, tendencias etc.)
- Hacer un diagnóstico del VAR estimado.
Aplicar el procedimiento de máxima verosimilitud al VAR para determinar el rango(r) de cointegración del sistema.
- Prueba de la traza
- Prueba del máximo valor propio(eigenvalue)
Estimar el vector de corrección de erróres.
Determinarla relación causal entre las variables incluidas en el modelo
Hipótesis de la prueba.
Hipótesis Nula
Ho:r = 0
No cointegración
Hipótesis Alternativa
H1:r = m
Cointegración
Sintaxis de implementación en R
ca.jo(x, type = c("eigen", "trace"), ecdet = c("none", "const", "trend"), K = 2,
spec=c("longrun", "transitory"), season = NULL, dumvar = NULL)
x = Matriz de datos a investigar para cointegración.
type = La prueba a realizar, ya sea ’ eigen’ o ’ trace’.
ecdet= Carácter, ’ none’ para ninguna intersección en la cointegración, ’ const’ para término constante en cointegración y ’ trend’ para variable de tendencia en cointegración.
K = El orden de rezago de las series (niveles) en el VAR.
espec = Determina la especificación del VECM, consulte los detalles a continuación.
season = Si se deben incluir variables ficticias estacionales, la frecuencia de los datos debe establecerse en consecuencia, es decir , ‘4’ para datos trimestrales.
Dumvar = Si se deben incluir variables ficticias, xse puede proporcionar una matriz con dimensión de fila igual.
Estadístico de prueba
Para prueba eigenvalor maximo
\[ \ell_{r+1}^{*}-\ell_{r}^{*}=-\frac{T}{2} \ln \left(1-\widehat{\lambda}_{r+1}\right) \]
Para la prueba de la Traza
\[ \ell_{A}^{*}-\ell_{0}^{*}=-\frac{T}{2} \sum_{i=r+1}^{n} \log \left(1-\widehat{\lambda}_{i}\right) \]
En estadística es convencional rechazar la hipótesis nula con un nivel de significación igual a 0.05. Cuando se rechaza la hipótesis nula se dice que los resultados del estudio son estadísticamente significativos al nivel significancia
Criterio de decisión
Rechazar \(H_0\) si \(p \leq \alpha\)
No rechazar \(H_0\) & \(p > \alpha\)
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
Se rechaza Ho, se concluye que existe evidencia de que la serie esta cointegrada.
No se rechaza Ho, se concluye que no existe evidencia de que la serie esta cointegrada.
Intrepretación de los P-values:
No Significativo = \(p < 0.10\)
Marginalmente Significativo= \(0.05 \leq p < 0.10\)
Significativo = \(0.01 \leq p < 0.01\)
Altamente Significativo = \(0.001 \leq p < 0.01\)
Fuertemente Significativo = \(p < 0.001\)
Ejemplo
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
Segúm los datos, se concluye que se rechaza la hipotesis nula para r=0 por que presenta un estadistico mayor, por lo tanto existe cointegración. pero para r=2, r=3, r=1, no se rechaza Ho, por que su estadistico es menor.
3. Causalidad en el sentido de Granger.
¿Para qué se usa?
Esta prueba se utiliza para comprobar si una serie de tiempo puede ser útil para pronosticar a otra. Es decir, se quiere determinar si una variable \(X\) causa a otra \(Y\). Si la información sobre el pasado de la primera variable ayuda a predecir el futuro de la segunda variable, se dice que \(X\) causa a \(Y\).
Hipótesis de la prueba.
Hipótesis Nula (\(H_0\))
La serie temporal \(X\) no causa que la serie temporal \(Y\) se autocause según Granger.
La hipótesis nula, denotada como \(H_0\), establece que la serie temporal \(X\) no causa a la serie temporal \(Y\) en el sentido de Granger. Es decir, el hecho de que se utilicen los valores pasados de \(X\) no mejora la predicción de los valores futuros de \(Y\) en comparación con lo que se podría predecir solo utilizando los valores pasados de \(Y\).
Hipótesis Alternativa (\(H_1\))
La serie temporal \(X\) causa que la serie temporal \(Y\) se autocause de Granger.
La hipótesis alternativa, denotada como \(H_1\), establece que la serie temporal \(X\) sí causa a la serie temporal \(Y\) en el sentido de Granger. Es decir, el conocimiento de los valores pasados de \(X\) mejora significativamente la predicción de los valores futuros de \(Y\).
Sintaxis de implementación en R
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\): Esta es la primera serie de tiempo.
\(Y\): El segundo conjunto de la serie de tiempo
\(order\): En la primera serie de tiempo, el número de rezagos a utilizar. El valor predeterminado es 1.
Estadístico de prueba
Esta prueba genera un estadístico de prueba \(F\) junto con un valor \(p\).
\(F-Test:\) El estadístico F de la prueba, que compara los dos modelos.
\(p-value:\) El valor p asociado con el estadístico F. Este valor se utiliza para decidir si se rechaza o no la hipótesis nula.
Criterio de decisión
\(P ≤ α\) = Si el valor \(p\) es menor que el nivel de significancia (α), generalmente 0.05 (5%), rechazamos la hipótesis nula y concluimos que existe causalidad de Granger de \(X\) a \(Y\).
\(P > α\) = Si el valor \(p\) es mayor que el nivel de significancia (α), no se rechaza la hipótesis nula, lo que indica que no hay evidencia suficiente para concluir que \(X\) causa a \(Y\) en el sentido de Granger.
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba.
Cuando rechazamos la hipótesis nula, significa que hay evidencia suficiente para afirmar que los rezagos de \(X\) tienen un poder predictivo significativo sobre \(Y\) en el sentido de Granger. En otras palabras, podemos concluir que \(X\) causa a \(Y\) en el sentido de Granger.
Ejemplo
“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.”
Descripción del Código
-Generación de datos: \(X\): Una serie temporal generada acumulando valores aleatorios.
\(Y\): Una serie dependiente de \(X\), pero con un desfase de 2 periodos, más un componente de ruido.
-Preprocesamiento: Se utiliza \(na.omit()\) para eliminar valores faltantes creados al introducir desfases \((lag)\).
-Visualización: Las series \(X\) y \(Y\) se grafican para observar si existe una relación visual.
-Prueba de Granger: Se realiza con \(grangertest()\), probando si \(X\) causa a \(Y\) en el sentido de Granger con 2 rezagos.
-Resultados: La salida muestra el estadístico \(F\) y el valor \(p\) asociado. Si el valor \(p\) es menor que un nivel de significancia (como 0.05), se rechaza la hipótesis nula de que \(X\) no causa a \(Y\) en el sentido de Granger.
# Instalar y cargar los paquetes necesarios
if (!require(lmtest)) install.packages("lmtest", dependencies = TRUE)
library(lmtest)
# Crear un ejemplo de datos de series de tiempo
set.seed(123) # Para reproducibilidad
time <- 1:100
X <- cumsum(rnorm(100)) # Serie temporal 1
Y <- lag(X, k = -2) + rnorm(100, sd = 0.5) # Serie temporal 2 influenciada por X
# Eliminar los valores NA generados por el desfase
data <- na.omit(data.frame(X = X, Y = Y))
# Visualizar las series temporales
plot(data$X, type = "l", col = "blue", lwd = 2, ylab = "Valor", xlab = "Tiempo", main = "Series Temporales")
lines(data$Y, col = "red", lwd = 2)
legend("topright", legend = c("X", "Y"), col = c("blue", "red"), lwd = 2)# Realizar la prueba de causalidad de Granger
# order = 2 (número de rezagos)
resultado <- grangertest(Y ~ X, order = 2, data = data)
# Mostrar los resultados
print(resultado)## Granger causality test
##
## Model 1: Y ~ Lags(Y, 1:2) + Lags(X, 1:2)
## Model 2: Y ~ Lags(Y, 1:2)
## Res.Df Df F Pr(>F)
## 1 93
## 2 95 -2 9.8042 0.0001369 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Si el valor p (Pr(>F))=0.019 es menor que 0.05, X causa a Y en el sentido de Granger.
“Por tanto, se rechaza la hipótesis nula de la prueba porque el valor \(p\) es menor que el nivel de significancia(0,05) y concluimos que conocer los valores de \(X\) es valioso para pronosticar los valores futuros de \(Y\).”
BIBLIOGRAFIA
Montero. R (2013): Variables no estacionarias y cointegración.Documentos de Trabajo en Economía Aplicada. Universidad de Granada. España
Universidad nacional de colombia-CURSO INTERNACIONAL:CONSTRUCCIÓN DE ESCENARIOS ECONÓMICOS Y ECONOMETRÍA AVANZADA. Instructor: Horario Catalán
ca.jo function - RDocumentation. (n.d.). Rdocumentation.org. de https://www.rdocumentation.org/packages/urca/versions/1.3-4/topics/ca.jo
RPubs - cointegración. (s/f). Rpubs.com. Recuperado el 9 de enero de 2025, de https://rpubs.com/wilsonsr/828582?authuser=0
Prueba de causalidad de Granger en R (con ejemplo). Publicado el 8 de noviembre de 2021 por finnstats en Bloggers R. https://www.r-bloggers.com/2021/11/granger-causality-test-in-r-with-example/?authuser=0