LABORATORIO 3 MAE118 GT-02
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONOMICAS
ESCUELA DE ECONOMIA

TEMA: LABORATORIO III
MATERIA: METODOS PARA EL ANALISIS ECONOMICO
DOCENTE: CARLOS ADEMIR PÉREZ ALAS
INTEGRANTES:
APELLIDOS
NOMBRES
CARNET
PARTICIPACIÓN
BOLAÑOS PEÑA
ABEL ANTONIO
BP18001
\(100\%\)
MOLINA MARTINEZ
MONICA VALERIA
MM18046
\(100\%\)
PANIAGUA MUÑOZ
KARLA REGINA
PM18112
\(100\%\)
VILLATORO ROMERO
DIANA CAROLINA
VR18003
\(100\%\)
CICLO: II-2022
FECHA: 28 DE NOVIEMBRE DE 2022
CIUDAD UNIVERSITARIA, SAN SALVADOR, EL SALVADOR,
CENTROAMERICA
1.Prueba de raíz unitaria de Dickey &
Fuller
Propósito de la prueba
El propósito de la prueba de Dickey & Fuller comprende en
determinar si una serie de tiempo (serie
estocastica) presenta o no
*estacionariedad, es decir, la serie es
Estacionaria o No estacionaria.
Hipótesis de la prueba
Consideremos un modelo temporal de la forma:
\[y_t=\varphi
y_{t-1}+\varepsilon_t\]
Donde \(|\varphi|\le1\) y presenta
un caso de grado 1 dado un proceso estocastico, donde se dice que los
valores son distribuidos al tiempo “\(t\)” con distribución normal y de variables
independientes.
Se dice que si el valor de \(\varphi=1\) indica que la serie es
No Estacionaria es decir que presenta una raiz
unitaria, en pocas palabras, la raiz unitaria indica que no hay
estacionariedad en el proceso estocastico.
\[H_o : \varphi=1\]
En otro caso como dijimos que este valor puede ser menor o igual a 1,
si este fuese menor a 1 entonces la serie es
Estacionaria
\[H_A: \varphi<1\]
Sintaxis de implementación
Para la sintaxis se utilizara la libreria
tseries por medio del comando
*adf.test donde se ejecutara la siguiente sintaxis:
library(tseries)
adf.test(x, k = 0)
Sea “\(x\)” sera la serie de datos
que se estara utilizando, y “\(k\)”
sera el orden de la serie que se estara estudiando siendo \(0\) una serie de primer orden.
Otro tipo de sintaxis es por medio de la libreria
urca con el comando
ur.df(x,type=“trend”,lags=0)
Sea “\(x\)” sera la serie de datos
que se estara utilizando, el type=“trend” es porque se quiere hacer una
prueba de tipo tendencia y lags es el orden que se quiere estudiar el
tipo de estacionariedad en este caso \(0\) sera de primer orden.
Estadístico de prueba
Para determinar el estadistico de prueba partimos del proceso
estocastico:
\[y_t=\varphi
y_{t-1}+\varepsilon_t\] Aplicando linealidad se calculan las
variaciones en el periodo \(y\)
\[y_t-y_{t-1}=\varphi y_{t-1}-y_{t-1}
+\varepsilon_t\] Aplicando factor comun
\[\Delta y_t=y_{t-1}(\varphi-1)
+\varepsilon_t\]
Llamemos a \(\varphi-1=\tau\)
\[\Delta y_t=\tau y_{t-1}
+\varepsilon_t\] El valor de \(\tau\) sera nuestro estadistico de
prueba
\[DF={\tau\over SE(\tau)}\]
library(urca)
A <- ur.df(DJIST, type = "trend", lags = 0)
A@teststat[, 1]
## [1] -1.822009
library(tseries)
A <- adf.test(DJIST, k = 0)
A$statistic
## Dickey-Fuller
## -1.822009
Criterio de decisión
Para el analisis del criterio de decisión se hara de la siguiente
forma con las hipotesis:
\[H_o: \varphi=1 \text{ ; No hay
estacionariedad }\]
\[H_a: \varphi<1 \text{ ; Hay
estacionariedad}\] Entonces la forma de rechazar o no la
hipotesis nula sera:
\[\text{no se rechaza } H_o \text{ si }
|t|>|DF| \text{ ó } p_{value}>0.05\]
\[\text{se rechaza } H_o \text{ si }
|t|<|DF| \text{ ó } p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis
Nula de la prueba
A <- ur.df(DJIST, type = "trend", lags = 0)
DF <- as.vector(A@teststat[, 1])
t <- as.vector(A@cval[1, 1])
abs(t) > abs(DF)
## [1] TRUE
No se rechaza la hipotesis nula y se interpreta que no
hay evidencia de estacionariedad en la serie
Implementación de un ejemplo
Utilizando los datos del Indice de Dow Jones desde 2000-2022
(Enero)
library(forecast)
library(readxl)
DJI <- read_excel("~/MAE1182022/LABMAE3/DJI.xlsx",
range = "B1:B276")
DJIST <- ts(data = DJI,
start = c(2000, 1),
frequency = 12)
DJIST %>% autoplot(main = "Indice de Dow Jones 2000-2022 (Enero)", xlab =
"Años/Meses", ylab = "DJI")

library(TSstudio)
ts_decompose(DJIST, type = "additive", showline = TRUE)
Hipotesis
\[H_o: \varphi=1 \text{ ; No hay
estacionariedad }\]
\[H_a: \varphi<1 \text{ ; Hay
estacionariedad}\]
Criterios de decisión
\[\text{no se rechaza } H_o \text{ si }
|t|>|DF| \text{ ó } p_{value}>0.05\]
\[\text{se rechaza } H_o \text{ si }
|t|<|DF| \text{ ó } p_{value}<0.05\]
Utilizando liberaria tseries
library(tseries)
A <- adf.test(DJIST, k = 0)
A$statistic
## Dickey-Fuller
## -1.822009
A$p.value > 0.05
## [1] TRUE
No se rechaza la hipotesis nula y se interpreta que no
hay evidencia de estacionariedad en la serie
2.Cointegración en el enfoque de Soren
Johansen
Propósito de la prueba
El proposito de la Prueba de Soren Johansen determinar si entre tres
o más series de tiempo pueden tener cointegración, en este caso se
utilizan los vectores estocasticos de las series para determinar si
presentan raices unitarias y determinar si existe una combinación lineal
entre los vectores de cointegración. Este enfoque se pueden determinar
cointegración de orden 0 \(I(0)\) y
cointegración de orden 1 \(I(1)\).
Hipótesis de la prueba
Partimos de un modelo VAR de series temporales:
\[y_t=\mu+A1y_{t-1}+V_t\] Aplicamos
linealidad:
\[y_t-y_{t-1}=\mu+A1y_{t-1}-y_{t-1}+V_t\]
Aplicamos factor comun:
\[\Delta y=\mu+(A1-I)y_{t-1}+V_t\]
sea:
\[A1-I=A\] Entonces:
\[\Delta y=\mu+Ay_{t-1}+V_t\]
Esta premisa es una representación de una variacion llamada MCE
(Mecanismo de Correcion de Error) y donde A es un Vector de corrección
Error, y si esto fuese para “n” dimensiones se aplica de la siguiente
forma:
\[y_{t}=\mu+A1y_{t-1}+A2y_{t-2}+...+Apy_{t-p}+V_t\]
Si aplicamos linealidad
\[\Delta
y_{t-1}=\mu+(A1+A2+..+Ap-I)(y_{t-1}+y_{t-2}+...+y_{t-p})+V_t\]
Siendo \(\Gamma_i=A_1+...+A_p\)
La prueba es sensible a la longitud de los rezagos elegidos en el
Vector, en la matriz A se encuentra la relación de largo plazo. Si su
rango es; rango (A) = \(\Gamma\),
entonces se pueden encontrar las siguientes condiciones
Si \(\Gamma\) = 0, A es una matriz
nula. No existirá relación de cointegración
Si \(\Gamma\) = m, el proceso
multivariante \(Y_{t}\) es
estacionario. Por tanto, habría m-1 vectores de cointegración
linealmente independientes que cancelan la tendencia común. Así Yt será
estacionario si \(A_{m*m}\) tiene rango
completo.
Si 0<\(\Gamma\)<m, se
encontrará entre las dos situaciones anteriores, por lo que habrá p
relaciones de cointegración.
por lo que:
\[H_o: \Gamma=0 ; \text{ No existe
cointegración}\] \[H_a: \Gamma=m ;
\text{ Existe cointegración con } m-1 \text{ Vectores de
cointegración}\]
Sintaxis de implementación
Para determinar la cointegración se utilizara la libreraria
urca con el comando ca.jo
library(urca)
ca.jo(x, "eigen", "trend")
Donde “\(x\)” es el vector de la
serie de tiempo a estudiar.
eigen, que se utilizara el criterio vectorial de autovalores y en
este caso cuenta la constante,
trend, significa que el tipo de analisis sera de tendencia.
Estadístico de prueba
El estadistico de prueba sera:
\[\Gamma_i=A_1+...+A_p\]
Criterio de decisión
El criterio de decisión sera el siguiente:
\[\text{no se rechaza } H_o \text{ si }
t>\Gamma \text{ ó } p_{value}>0.05\]
\[\text{Se rechaza } H_o \text{ si }
t<\Gamma \text{ ó } p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis
Nula de la prueba
library(urca)
B <- ca.jo(NASDAQTS,"eigen","trend")
B0<-B@teststat[3]
B1<-B@teststat[2]
B0
## [1] 51.83823
B1
## [1] 20.81836
t0<-B@cval[3,2]
t1<-B@cval[2,2]
t0
## [1] 25.54
t1
## [1] 18.96
Para ver si existe cointegración de grado 0 \(I(0)\)
t0>B0
## [1] FALSE
No se rechaza la hipotesis nula y existe evidencia de que
hay cointegración de orden cero
Implementación de un ejemplo
Se utilizaran las series de Apertura, Cierre y Maxima del Indice
NASDAQ 2015-2022 (Noviembre)
library(dplyr)
NASDAQ <- read_excel("~/MAE1182022/LABMAE3/NASDAQ.xlsx",
range = "B1:D96")
NASDAQTS <- ts(data = NASDAQ,
start = c(2015, 1),
frequency = 12)
NASDAQTS %>% autoplot(main="Indice NASDAQ 2015-2022", xlab="Meses",ylab="NASDAQ")

ts_decompose(NASDAQTS, type = "additive", showline = TRUE)
library(urca)
B <- ca.jo(NASDAQTS,"eigen","trend")
B0<-B@teststat[3]
B1<-B@teststat[2]
B0
## [1] 51.83823
B1
## [1] 20.81836
t0<-B@cval[3,2]
t1<-B@cval[2,2]
t0
## [1] 25.54
t1
## [1] 18.96
Para ver si existe cointegración de grado 0 \(I(0)\)
t0>B0
## [1] FALSE
No se rechaza la hipotesis nula y no existe evidencia de
que hay cointegración de orden cero
Para ver si existe cointegración de grado 1 \(I(1)\)
t1>B1
## [1] FALSE
No se rechaza la hipotesis nula y no existe evidencia de
que hay cointegración de orden uno
3.Causalidad en el sentido de Granger
Propósito de la prueba
La causalidad en el sentido de Granger determina si una serie
estocastica puede predecir otra serie estocastica, en este caso nos
basamos en el supuesto de 2 series temporales \(Y\) y \(Z\), donde se dice que si \(Y\) causa \(Z\) y quiere decir que los modelos de \(Z\) dan retrasos de \(Y\).
Hipótesis de la prueba
Se parten de dos series temporales
\[Y_t=\sum_{i=1}^n \lambda_i
Z_{t-i}+\sum_{j=1}^n \rho_jY_{t-j}+\varepsilon_{1t}\]
\[Z_t=\sum_{i=1}^n \omega_i
Z_{t-i}+\sum_{j=1}^n \nu_jY_{t-j}+\varepsilon_{2t}\] Donde
tomaremos de referencia la variable lambda \(\lambda\) para marcar el grado de
sensibilidad que produce cambios en la serie \(Z\).
\[H_o: \lambda=0 ; \text{ No existe prueba
causalidad de Granger de primer orden}\]
\[H_a: \lambda\ne0 ; \text{ Existe prueba
causalidad de Granger de primer orden}\]
Sintaxis de implementación
Para ello usaremos la libreria lmtest con el comando
grangertest
library(lmtest)
grangertest(Y,Z,order=1)
Donde \(Y\) es la primera serie de
tiempo,
\(Z\) la segunda serie de
tiempo,
y order determinara el orden que queremos el tipo de causalidad en
este caso orden 1.
Estadístico de prueba
Para este caso el estadistico de prueba a utilizar sera el \(F\) de Fischer
Criterio de decisión
\[\text{no se rechaza } H_o \text{ si }
F<F_{critico}\]
\[\text{no se rechaza } H_o \text{ si }
p_{value}>0.05\]
\[\text{Se rechaza } H_o \text{ si }
F>F_{critico}\]
\[\text{Se rechaza } H_o \text{ si }
p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis
Nula de la prueba
library(lmtest)
grangertest(SP500~NASDAQ,order=1,data = SPNASTS)
## Granger causality test
##
## Model 1: SP500 ~ Lags(SP500, 1:1) + Lags(NASDAQ, 1:1)
## Model 2: SP500 ~ Lags(SP500, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 1.0198 0.3152
En este caso utilizando un \(P_{value}=0.3152\) quiere decir que es
mayor a \(0.05\) y se interpreta, No se
rechaza la hipotesis nula y no existe evidencia de causalidad en el
sentido de Granger de primer orden, por lo que el Indice SP500 no es
causado por el NASDAQ
Implementación de un ejemplo
Utilizando las series de datos de SP500 y NASDAQ
SPyNAS <- read_excel("~/MAE1182022/LABMAE3/SPyNAS.xlsx",
range = "B1:C96")
SPNASTS <- ts(data = SPyNAS,
start = c(2015, 1),
frequency = 12)
SPNASTS %>% autoplot(main="Indice SP500 y NASDAQ 2015-2022", xlab="Meses",ylab="Index")

ts_decompose(SPNASTS, type = "additive", showline = TRUE)
Verificando si SP500 es causado por NASDAQ
library(lmtest)
grangertest(SP500~NASDAQ,order=1,data = SPNASTS)
## Granger causality test
##
## Model 1: SP500 ~ Lags(SP500, 1:1) + Lags(NASDAQ, 1:1)
## Model 2: SP500 ~ Lags(SP500, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 1.0198 0.3152
En este caso utilizando un \(P_{value}=0.3152\) quiere decir que es
mayor a \(0.05\) y se interpreta, No se
rechaza la hipotesis nula y no existe evidencia de causalidad en el
sentido de Granger de primer orden, por lo que el Indice SP500 no es
causado por el NASDAQ
Verificando si NASDAQ es causado por SP500
library(lmtest)
grangertest(NASDAQ~SP500,order=1,data = SPNASTS)
## Granger causality test
##
## Model 1: NASDAQ ~ Lags(NASDAQ, 1:1) + Lags(SP500, 1:1)
## Model 2: NASDAQ ~ Lags(NASDAQ, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 5.4351 0.02194 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
En este caso utilizando un \(P_{value}=0.02194\) quiere decir que es
menor a \(0.05\) y se interpreta, Se
rechaza la hipotesis nula y existe evidencia de causalidad en el sentido
de Granger de primer orden, por lo que el Indice NASDAQ no es causado
por el SP500
Paquetes utilizados
Hothorn, Torsten, Achim Zeileis, Richard W. Farebrother, and Clint
Cummins. 2022. Lmtest: Testing Linear Regression Models. https://CRAN.R-project.org/package=lmtest.
Hyndman, Rob J, and Yeasmin Khandakar. 2008. “Automatic Time
Series Forecasting: The Forecast Package for R.”
Journal of Statistical Software 26 (3): 1–22. https://doi.org/10.18637/jss.v027.i03.
Hyndman, Rob, George Athanasopoulos, Christoph Bergmeir, Gabriel
Caceres, Leanne Chhay, Kirill Kuroptev, Mitchell O’Hara-Wild, et al.
2022. Forecast: Forecasting Functions for Time Series and Linear
Models. https://CRAN.R-project.org/package=forecast.
Krispin, Rami. 2020. TSstudio: Functions for Time Series Analysis
and Forecasting. https://github.com/RamiKrispin/TSstudio.
Pfaff, B. 2008. Analysis of Integrated and Cointegrated Time Series
with r. Second. New York: Springer. https://www.pfaffikus.de.
Pfaff, Bernhard. 2022. Urca: Unit Root and Cointegration Tests for
Time Series Data. https://CRAN.R-project.org/package=urca.
R Core Team. 2022. R: A Language and Environment for Statistical
Computing. Vienna, Austria: R Foundation for Statistical Computing.
https://www.R-project.org/.
Trapletti, Adrian, and Kurt Hornik. 2022. Tseries: Time Series
Analysis and Computational Finance. https://CRAN.R-project.org/package=tseries.
Wickham, Hadley, and Jennifer Bryan. 2022. Readxl: Read Excel
Files. https://CRAN.R-project.org/package=readxl.
Wickham, Hadley, Romain Francois, Lionel Henry, and Kirill Muller. 2022.
Dplyr: A Grammar of Data Manipulation. https://CRAN.R-project.org/package=dplyr.
Zeileis, Achim, and Torsten Hothorn. 2002. “Diagnostic Checking in
Regression Relationships.” R News 2 (3): 7–10. https://CRAN.R-project.org/doc/Rnews/.
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONOMICAS
ESCUELA DE ECONOMIA
TEMA: LABORATORIO III
MATERIA: METODOS PARA EL ANALISIS ECONOMICO
DOCENTE: CARLOS ADEMIR PÉREZ ALAS
INTEGRANTES:
| APELLIDOS | NOMBRES | CARNET | PARTICIPACIÓN |
|---|---|---|---|
| BOLAÑOS PEÑA | ABEL ANTONIO | BP18001 | \(100\%\) |
| MOLINA MARTINEZ | MONICA VALERIA | MM18046 | \(100\%\) |
| PANIAGUA MUÑOZ | KARLA REGINA | PM18112 | \(100\%\) |
| VILLATORO ROMERO | DIANA CAROLINA | VR18003 | \(100\%\) |
CICLO: II-2022
FECHA: 28 DE NOVIEMBRE DE 2022
CIUDAD UNIVERSITARIA, SAN SALVADOR, EL SALVADOR, CENTROAMERICA
1.Prueba de raíz unitaria de Dickey & Fuller
Propósito de la prueba
El propósito de la prueba de Dickey & Fuller comprende en determinar si una serie de tiempo (serie estocastica) presenta o no *estacionariedad, es decir, la serie es Estacionaria o No estacionaria.
Hipótesis de la prueba
Consideremos un modelo temporal de la forma:
\[y_t=\varphi y_{t-1}+\varepsilon_t\]
Donde \(|\varphi|\le1\) y presenta un caso de grado 1 dado un proceso estocastico, donde se dice que los valores son distribuidos al tiempo “\(t\)” con distribución normal y de variables independientes.
Se dice que si el valor de \(\varphi=1\) indica que la serie es No Estacionaria es decir que presenta una raiz unitaria, en pocas palabras, la raiz unitaria indica que no hay estacionariedad en el proceso estocastico.
\[H_o : \varphi=1\]
En otro caso como dijimos que este valor puede ser menor o igual a 1, si este fuese menor a 1 entonces la serie es Estacionaria
\[H_A: \varphi<1\]
Sintaxis de implementación
Para la sintaxis se utilizara la libreria tseries por medio del comando *adf.test donde se ejecutara la siguiente sintaxis:
library(tseries)
adf.test(x, k = 0)Sea “\(x\)” sera la serie de datos que se estara utilizando, y “\(k\)” sera el orden de la serie que se estara estudiando siendo \(0\) una serie de primer orden.
Otro tipo de sintaxis es por medio de la libreria urca con el comando ur.df(x,type=“trend”,lags=0)
Sea “\(x\)” sera la serie de datos que se estara utilizando, el type=“trend” es porque se quiere hacer una prueba de tipo tendencia y lags es el orden que se quiere estudiar el tipo de estacionariedad en este caso \(0\) sera de primer orden.
Estadístico de prueba
Para determinar el estadistico de prueba partimos del proceso estocastico:
\[y_t=\varphi y_{t-1}+\varepsilon_t\] Aplicando linealidad se calculan las variaciones en el periodo \(y\)
\[y_t-y_{t-1}=\varphi y_{t-1}-y_{t-1} +\varepsilon_t\] Aplicando factor comun
\[\Delta y_t=y_{t-1}(\varphi-1) +\varepsilon_t\]
Llamemos a \(\varphi-1=\tau\)
\[\Delta y_t=\tau y_{t-1} +\varepsilon_t\] El valor de \(\tau\) sera nuestro estadistico de prueba
\[DF={\tau\over SE(\tau)}\]
library(urca)
A <- ur.df(DJIST, type = "trend", lags = 0)
A@teststat[, 1]## [1] -1.822009
library(tseries)
A <- adf.test(DJIST, k = 0)
A$statistic## Dickey-Fuller
## -1.822009
Criterio de decisión
Para el analisis del criterio de decisión se hara de la siguiente forma con las hipotesis:
\[H_o: \varphi=1 \text{ ; No hay estacionariedad }\]
\[H_a: \varphi<1 \text{ ; Hay estacionariedad}\] Entonces la forma de rechazar o no la hipotesis nula sera:
\[\text{no se rechaza } H_o \text{ si } |t|>|DF| \text{ ó } p_{value}>0.05\]
\[\text{se rechaza } H_o \text{ si } |t|<|DF| \text{ ó } p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
A <- ur.df(DJIST, type = "trend", lags = 0)
DF <- as.vector(A@teststat[, 1])
t <- as.vector(A@cval[1, 1])
abs(t) > abs(DF)## [1] TRUE
No se rechaza la hipotesis nula y se interpreta que no hay evidencia de estacionariedad en la serie
Implementación de un ejemplo
Utilizando los datos del Indice de Dow Jones desde 2000-2022 (Enero)
library(forecast)
library(readxl)
DJI <- read_excel("~/MAE1182022/LABMAE3/DJI.xlsx",
range = "B1:B276")
DJIST <- ts(data = DJI,
start = c(2000, 1),
frequency = 12)
DJIST %>% autoplot(main = "Indice de Dow Jones 2000-2022 (Enero)", xlab =
"Años/Meses", ylab = "DJI")library(TSstudio)
ts_decompose(DJIST, type = "additive", showline = TRUE)Hipotesis
\[H_o: \varphi=1 \text{ ; No hay estacionariedad }\]
\[H_a: \varphi<1 \text{ ; Hay estacionariedad}\]
Criterios de decisión
\[\text{no se rechaza } H_o \text{ si } |t|>|DF| \text{ ó } p_{value}>0.05\]
\[\text{se rechaza } H_o \text{ si } |t|<|DF| \text{ ó } p_{value}<0.05\]
Utilizando liberaria tseries
library(tseries)
A <- adf.test(DJIST, k = 0)
A$statistic## Dickey-Fuller
## -1.822009
A$p.value > 0.05## [1] TRUE
No se rechaza la hipotesis nula y se interpreta que no hay evidencia de estacionariedad en la serie
2.Cointegración en el enfoque de Soren Johansen
Propósito de la prueba
El proposito de la Prueba de Soren Johansen determinar si entre tres o más series de tiempo pueden tener cointegración, en este caso se utilizan los vectores estocasticos de las series para determinar si presentan raices unitarias y determinar si existe una combinación lineal entre los vectores de cointegración. Este enfoque se pueden determinar cointegración de orden 0 \(I(0)\) y cointegración de orden 1 \(I(1)\).
Hipótesis de la prueba
Partimos de un modelo VAR de series temporales:
\[y_t=\mu+A1y_{t-1}+V_t\] Aplicamos linealidad:
\[y_t-y_{t-1}=\mu+A1y_{t-1}-y_{t-1}+V_t\] Aplicamos factor comun:
\[\Delta y=\mu+(A1-I)y_{t-1}+V_t\] sea:
\[A1-I=A\] Entonces:
\[\Delta y=\mu+Ay_{t-1}+V_t\]
Esta premisa es una representación de una variacion llamada MCE (Mecanismo de Correcion de Error) y donde A es un Vector de corrección Error, y si esto fuese para “n” dimensiones se aplica de la siguiente forma:
\[y_{t}=\mu+A1y_{t-1}+A2y_{t-2}+...+Apy_{t-p}+V_t\]
Si aplicamos linealidad
\[\Delta y_{t-1}=\mu+(A1+A2+..+Ap-I)(y_{t-1}+y_{t-2}+...+y_{t-p})+V_t\]
Siendo \(\Gamma_i=A_1+...+A_p\)
La prueba es sensible a la longitud de los rezagos elegidos en el Vector, en la matriz A se encuentra la relación de largo plazo. Si su rango es; rango (A) = \(\Gamma\), entonces se pueden encontrar las siguientes condiciones
Si \(\Gamma\) = 0, A es una matriz nula. No existirá relación de cointegración
Si \(\Gamma\) = m, el proceso multivariante \(Y_{t}\) es estacionario. Por tanto, habría m-1 vectores de cointegración linealmente independientes que cancelan la tendencia común. Así Yt será estacionario si \(A_{m*m}\) tiene rango completo.
Si 0<\(\Gamma\)<m, se encontrará entre las dos situaciones anteriores, por lo que habrá p relaciones de cointegración.
por lo que:
\[H_o: \Gamma=0 ; \text{ No existe cointegración}\] \[H_a: \Gamma=m ; \text{ Existe cointegración con } m-1 \text{ Vectores de cointegración}\]
Sintaxis de implementación
Para determinar la cointegración se utilizara la libreraria urca con el comando ca.jo
library(urca)
ca.jo(x, "eigen", "trend")Donde “\(x\)” es el vector de la serie de tiempo a estudiar.
eigen, que se utilizara el criterio vectorial de autovalores y en este caso cuenta la constante,
trend, significa que el tipo de analisis sera de tendencia.
Estadístico de prueba
El estadistico de prueba sera:
\[\Gamma_i=A_1+...+A_p\]
Criterio de decisión
El criterio de decisión sera el siguiente:
\[\text{no se rechaza } H_o \text{ si } t>\Gamma \text{ ó } p_{value}>0.05\]
\[\text{Se rechaza } H_o \text{ si } t<\Gamma \text{ ó } p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
library(urca)
B <- ca.jo(NASDAQTS,"eigen","trend")
B0<-B@teststat[3]
B1<-B@teststat[2]
B0## [1] 51.83823
B1## [1] 20.81836
t0<-B@cval[3,2]
t1<-B@cval[2,2]
t0## [1] 25.54
t1## [1] 18.96
Para ver si existe cointegración de grado 0 \(I(0)\)
t0>B0## [1] FALSE
No se rechaza la hipotesis nula y existe evidencia de que hay cointegración de orden cero
Implementación de un ejemplo
Se utilizaran las series de Apertura, Cierre y Maxima del Indice NASDAQ 2015-2022 (Noviembre)
library(dplyr)
NASDAQ <- read_excel("~/MAE1182022/LABMAE3/NASDAQ.xlsx",
range = "B1:D96")
NASDAQTS <- ts(data = NASDAQ,
start = c(2015, 1),
frequency = 12)
NASDAQTS %>% autoplot(main="Indice NASDAQ 2015-2022", xlab="Meses",ylab="NASDAQ")ts_decompose(NASDAQTS, type = "additive", showline = TRUE)library(urca)
B <- ca.jo(NASDAQTS,"eigen","trend")
B0<-B@teststat[3]
B1<-B@teststat[2]
B0## [1] 51.83823
B1## [1] 20.81836
t0<-B@cval[3,2]
t1<-B@cval[2,2]
t0## [1] 25.54
t1## [1] 18.96
Para ver si existe cointegración de grado 0 \(I(0)\)
t0>B0## [1] FALSE
No se rechaza la hipotesis nula y no existe evidencia de que hay cointegración de orden cero
Para ver si existe cointegración de grado 1 \(I(1)\)
t1>B1## [1] FALSE
No se rechaza la hipotesis nula y no existe evidencia de que hay cointegración de orden uno
3.Causalidad en el sentido de Granger
Propósito de la prueba
La causalidad en el sentido de Granger determina si una serie estocastica puede predecir otra serie estocastica, en este caso nos basamos en el supuesto de 2 series temporales \(Y\) y \(Z\), donde se dice que si \(Y\) causa \(Z\) y quiere decir que los modelos de \(Z\) dan retrasos de \(Y\).
Hipótesis de la prueba
Se parten de dos series temporales
\[Y_t=\sum_{i=1}^n \lambda_i Z_{t-i}+\sum_{j=1}^n \rho_jY_{t-j}+\varepsilon_{1t}\]
\[Z_t=\sum_{i=1}^n \omega_i Z_{t-i}+\sum_{j=1}^n \nu_jY_{t-j}+\varepsilon_{2t}\] Donde tomaremos de referencia la variable lambda \(\lambda\) para marcar el grado de sensibilidad que produce cambios en la serie \(Z\).
\[H_o: \lambda=0 ; \text{ No existe prueba causalidad de Granger de primer orden}\]
\[H_a: \lambda\ne0 ; \text{ Existe prueba causalidad de Granger de primer orden}\]
Sintaxis de implementación
Para ello usaremos la libreria lmtest con el comando grangertest
library(lmtest)
grangertest(Y,Z,order=1)Donde \(Y\) es la primera serie de tiempo,
\(Z\) la segunda serie de tiempo,
y order determinara el orden que queremos el tipo de causalidad en este caso orden 1.
Estadístico de prueba
Para este caso el estadistico de prueba a utilizar sera el \(F\) de Fischer
Criterio de decisión
\[\text{no se rechaza } H_o \text{ si } F<F_{critico}\]
\[\text{no se rechaza } H_o \text{ si } p_{value}>0.05\]
\[\text{Se rechaza } H_o \text{ si } F>F_{critico}\]
\[\text{Se rechaza } H_o \text{ si } p_{value}<0.05\]
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
library(lmtest)
grangertest(SP500~NASDAQ,order=1,data = SPNASTS)## Granger causality test
##
## Model 1: SP500 ~ Lags(SP500, 1:1) + Lags(NASDAQ, 1:1)
## Model 2: SP500 ~ Lags(SP500, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 1.0198 0.3152
En este caso utilizando un \(P_{value}=0.3152\) quiere decir que es mayor a \(0.05\) y se interpreta, No se rechaza la hipotesis nula y no existe evidencia de causalidad en el sentido de Granger de primer orden, por lo que el Indice SP500 no es causado por el NASDAQ
Implementación de un ejemplo
Utilizando las series de datos de SP500 y NASDAQ
SPyNAS <- read_excel("~/MAE1182022/LABMAE3/SPyNAS.xlsx",
range = "B1:C96")
SPNASTS <- ts(data = SPyNAS,
start = c(2015, 1),
frequency = 12)
SPNASTS %>% autoplot(main="Indice SP500 y NASDAQ 2015-2022", xlab="Meses",ylab="Index")ts_decompose(SPNASTS, type = "additive", showline = TRUE)Verificando si SP500 es causado por NASDAQ
library(lmtest)
grangertest(SP500~NASDAQ,order=1,data = SPNASTS)## Granger causality test
##
## Model 1: SP500 ~ Lags(SP500, 1:1) + Lags(NASDAQ, 1:1)
## Model 2: SP500 ~ Lags(SP500, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 1.0198 0.3152
En este caso utilizando un \(P_{value}=0.3152\) quiere decir que es mayor a \(0.05\) y se interpreta, No se rechaza la hipotesis nula y no existe evidencia de causalidad en el sentido de Granger de primer orden, por lo que el Indice SP500 no es causado por el NASDAQ
Verificando si NASDAQ es causado por SP500
library(lmtest)
grangertest(NASDAQ~SP500,order=1,data = SPNASTS)## Granger causality test
##
## Model 1: NASDAQ ~ Lags(NASDAQ, 1:1) + Lags(SP500, 1:1)
## Model 2: NASDAQ ~ Lags(NASDAQ, 1:1)
## Res.Df Df F Pr(>F)
## 1 91
## 2 92 -1 5.4351 0.02194 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
En este caso utilizando un \(P_{value}=0.02194\) quiere decir que es menor a \(0.05\) y se interpreta, Se rechaza la hipotesis nula y existe evidencia de causalidad en el sentido de Granger de primer orden, por lo que el Indice NASDAQ no es causado por el SP500