Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Modelos VAR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 39

Series Temporales en R

Vectores Autotegresivos (VAR)

Nerys Ramírez Mordán

Universidad Autónoma de Santo Domingo

January 12, 2020

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 1/1
Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 2/1
Preliminares

Section 1

Preliminares

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 3/1
Preliminares

Modelo estructural

El modelo estructural captura las relaciones contemporanea derivadas de la


teoria (B):

BYt = Γ0 + Γ1 Yt−1 + εt , εt ∼ N (M, Σε )


(I − Γ1 L) Yt = B (L) Yt = Γ0 + t

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 4/1
Preliminares

Modelo estructural

Para obtener la representación del VAR(p), premultiplicamos el VAR


tradicional por matriz (B −1 ), donde se encuentran las restricciones
estructurales que impone la teoría económica o las relaciones contemporáneas
entre variables:

Yt = B −1 Γ0 + B −1 Γ1 Yt−1 + B −1 εt

Yt = A0 + A1 Yt−p + ut
 0 0
; A0 = B −1 Γ0 , A1 = B −1 Γ1 y ut = B −1 εt .

– Siendo Yt = y1,t , y2,t

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 5/1
Preliminares

Representación del VAR

Dado un VAR(p) en su forma reducida, sin restringir y sin variables exógenas:

Yt = A0 + A1 Yt−p + ut

Donde Yt ∼ I(0) es una matriz de kxT variables estacionarias, consideradas a


priori como endógenas; p representa los retardos a incluir; A1 representa una
matriz cuadrada (kxk) de coeficientes parciales que acompañan el vector de
variables endógenas; y, E (ut ) = 0;E (ut ut0 ) = Σ, pudiendo Σ no ser diagonal.

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 6/1
Preliminares

Modelo estructural

Ahora, verifique que ut = B −1 εt son combinaciones lineales de las


innovaciones estructurales de interés.

yt = (B −1 Γ0 ) + (B −1 Γ1 )yt−1 + B −1 t

Modelo VAR
El VAR es una forma reducida (sistema de ecuaciones en que cada variable
endógena se expresa en funcion solo de las variables predeterminadas)
derivada de algún modelo estrutural (Londoño, 2005, p.5).

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 7/1
Vectores autoregresivos

Section 2

Vectores autoregresivos

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 8/1
Vectores autoregresivos

Representación historica
library(tidyverse)

data.frame(EuStockMarkets) %>%
mutate(date = time(EuStockMarkets)) %>%
gather(id, value, -date) %>%
ggplot(aes(x = date, y = value)) +
geom_line(aes(color = id), size = 1)+
theme_minimal()

8000 id

6000 CAC
value

DAX
4000
FTSE

2000 SMI

1993 1995 1997 1999


date
Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 9/1
Vectores autoregresivos

Orden de integración

Los VAR se construyen sobre series estacionarias.


k<-ncol(EuStockMarkets)
obs<-nrow(EuStockMarkets)

ret <- diff(log(EuStockMarkets))

colnames(ret) <- colnames(EuStockMarkets)


head(ret)

## DAX SMI CAC FTSE


## [1,] -0.009326550 0.006178360 -0.012658756 0.006770286
## [2,] -0.004422175 -0.005880448 -0.018740638 -0.004889587
## [3,] 0.009003794 0.003271184 -0.005779182 0.009027020
## [4,] -0.001778217 0.001483372 0.008743353 0.005771847
## [5,] -0.004676712 -0.008933417 -0.005120160 -0.007230164
## [6,] 0.012427042 0.006737244 0.011714353 0.008517217

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 10 / 1
Vectores autoregresivos

Test de estacionariedad: correlogramas


library(ggfortify)
DAX <- ts(ret[,"DAX"], frequency = 12, star = 1991.496)

autoplot(acf(DAX, type = "partial", plot = FALSE),


conf.int.fill = '#0000FF', conf.int.value = 0.8, conf.int.type = 'ma')

0.06

0.03
ACF

0.00

−0.03

0 1 2
Lag

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 11 / 1
Vectores autoregresivos

Test de estacionariedad: Dickey-Fuller

h0 del test es que la serie presenta raíz unitaria. En el ejemplo siguiente, se


rechaza h0 .
library(tseries)
adf.test(ret[,"DAX"])

##
## Augmented Dickey-Fuller Test
##
## data: ret[, "DAX"]
## Dickey-Fuller = -11.105, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 12 / 1
Vectores autoregresivos

Seleccionar el orden del VAR

El orden del Var (p) se puede obtener a partir de diversas metodologías:

– Criterio de información: AIC (Akaike Information Criterion) o BIC


(Schwarz/Bayesian Information Criterion).
– Contraste de autocorrelación de los residuos.
– Reglas empírica a partir del tamaño de la muestra (T/3) o derivado de algún
modelo empírico.

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 13 / 1
Vectores autoregresivos

Seleccionar el orden del VAR

Es decir, (p) se obtiene a partir del valor del mismo que permita obtener
innovaciones ruido blanco, o minimice los denominados criterios de
información.


n2 p + n
AIC = ln |Ω| + 2
T

n2 p + n ln (T )
BIC = ln |Ω| + 2
T

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 14 / 1
Vectores autoregresivos

Seleccionar el orden del VAR

Se toma el orden que hace mínimo el criterio de información.


library(sandwich);
library(zoo); library(vars);

VARselect(ret, lag.max = 4, type="both")

## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 1 1 1 1
##
## $criteria
## 1 2 3 4
## AIC(n) -3.940485e+01 -3.939758e+01 -3.939631e+01 -3.939167e+01
## HQ(n) -3.937850e+01 -3.935366e+01 -3.933483e+01 -3.931262e+01
## SC(n) -3.933336e+01 -3.927842e+01 -3.922950e+01 -3.917720e+01
## FPE(n) 7.703542e-18 7.759802e-18 7.769624e-18 7.805749e-18

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 15 / 1
Vectores autoregresivos

Estimación del VAR

modelVAR <- VAR(ret, p = 1)

# Ver representación del VAR


# summary(modelVAR)
# summary(modelVAR,equation="DAX")

Note que se comentan algunas salidas, por cuestiones de formato.

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 16 / 1
Vectores autoregresivos

Estimación del VAR

Podemos buscar el orden de retardo del VAR basados en el criterio Akaike de


información.
modelVAR <- VAR(ret, type = "none", lag.max = 5, ic = "AIC")

# summary(modelVAR)

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 17 / 1
Vectores autoregresivos

Estimación del VAR: stargazer reportar resultados


library(stargazer)
eq <- modelVAR$varresult
stargazer(eq$DAX, eq$SMI, eq$CAC, eq$FTSE,
type="text", dep.var.labels.include=FALSE)

##
## =====================================================================
## Dependent variable:
## -------------------------------------
## (1) (2) (3) (4)
## ---------------------------------------------------------------------
## DAX.l1 0.006 -0.008 -0.026 -0.010
## (0.040) (0.036) (0.042) (0.030)
##
## SMI.l1 -0.089** 0.0004 -0.109*** -0.085***
## (0.038) (0.034) (0.040) (0.029)
##
## CAC.l1 0.037 0.035 0.062* -0.005
## (0.034) (0.031) (0.037) (0.026)
##
## FTSE.l1 0.050 0.070* 0.092** 0.165***
## (0.042) (0.038) (0.045) (0.033)
##
##Ramírez
Nerys ---------------------------------------------------------------------
Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 18 / 1
Vectores autoregresivos

Validación del VAR


Los residuos deben ser ruido blanco.
resid_dax <- residuals(modelVAR)[,"DAX"]

autoplot(acf(resid_dax, type = "partial", plot = FALSE),


conf.int.fill = '#0000FF', conf.int.value = 0.8, conf.int.type = 'ma')

0.06

0.03
ACF

0.00

−0.03

0 10 20 30
Lag

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 19 / 1
Vectores autoregresivos

Validación del VAR

The null hypothesis is no serial correlation.


serial.test(modelVAR, lags.pt = 16, type = "PT.asymptotic")

##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object modelVAR
## Chi-squared = 272.44, df = 240, p-value = 0.07367

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 20 / 1
Vectores autoregresivos

Validación del VAR: estabilidad

Dada la representación general de un VAR de orden p:


Yt = A0 + A1 Yt−p + ut , Se puede utilizar el operador de retardos para:

(In − A1 Lp ) Yt = A0 + ut
−1 −1
Yt = (In − A1 Lp ) A0 + (In − A1 Lp ) ut

La condición de estabilidad requiere que todos los valores propios de la matriz


(In − A1 Lp ) estén fuera del círculo unitario.
roots(modelVAR)

## [1] 0.09538188 0.07803836 0.07803836 0.03132215

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 21 / 1
Vectores autoregresivos

Validación del VAR: estabilidad

Raices unitarias
Recuerde (I − φL)Yt = ut , que resolviendo el polinomio de la ec. característica
((I − φL) = 0), se obtiene L = φ1 , por lo que dado la condición de estabilidad
(|φ| < 1), L > 1

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 22 / 1
Vectores autoregresivos

Validación del VAR: estabilidad

# plot(stability(modelVAR), nc = 2)

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 23 / 1
Vectores autoregresivos

ARCH test (Autoregressive conditional


heteroscedasdicity)

arch.test(modelVAR, lags.multi = 10)

##
## ARCH (multivariate)
##
## data: Residuals of VAR object modelVAR
## Chi-squared = 1640.7, df = 1000, p-value < 2.2e-16

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 24 / 1
Vectores autoregresivos

Extraer objetos de un modelo VAR

summary(modelVAR$varresult$DAX)$adj.r.squared

## [1] 0.001791585

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 25 / 1
Vectores autoregresivos

Análisis de VAR: impulse response


Un VAR(p) es invertibles (lo puedo escribir como unVAM(p)), al cumplir la
condición de estabilidad:

Yt = A0 + A1 Yt−1 + ut

Yt = A0 + A1 [A0 + A1 Yt−2 + ut−1 ] + ut

Yt = (Ik + A1 ) A0 + A21 Yt−2 + (A1 ut−1 + ut )

...

n−1
X
Yt = Ik + A1 + A21 + ... + An−1 Ai1 ut−i + An1 Yt−n

1 A 0 +
i=0

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 26 / 1
Vectores autoregresivos

Análisis de VAR: impulse respons

Tomando la representación ma del var :


X
Yt = u + Ai1 ut−i
i=0

Ai1 es la función de impulso respuesta al horizonte i de shocks. Siendo la


representación MA(p).

Yt = ut + Φ1 ut−1 + Φ2 ut−2 + ...

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 27 / 1
Vectores autoregresivos

Análisis de VAR: impulse response


varirfs <- irf(modelVAR,n.ahead = 30)

varirfs <- irf(modelVAR,


n.ahead = 12,
response = "DAX", impulse = "FTSE",
boot = T, ci = 0.95, run = 100)
plot(varirfs)

xy$x

2 6 12
0e+00

Orthogonal Impulse Response from FTSE


DAX

95 % Bootstrap CI, 100 runs


Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 28 / 1
Vectores autoregresivos

Análisis de VAR: impulse response


varirfsc <- irf(modelVAR,
n.ahead = 12,
response = "DAX", impulse = "FTSE",
boot = T, ci = 0.95, run = 100,
cumulative = T)
plot(varirfsc)

Orthogonal Impulse Response from FTSE (cumulative)


8e−04
6e−04
4e−04
DAX

2e−04

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 29 / 1
Vectores autoregresivos

Análisis de VAR: descomposición de la varianza

fevd(modelVAR, n.ahead = 10)$DAX

## DAX SMI CAC FTSE


## [1,] 1.0000000 0.000000000 0.000000000 0.0000000000
## [2,] 0.9961225 0.001905212 0.001242891 0.0007293681
## [3,] 0.9960886 0.001929305 0.001243016 0.0007390955
## [4,] 0.9960884 0.001929365 0.001243081 0.0007391098
## [5,] 0.9960884 0.001929366 0.001243082 0.0007391100
## [6,] 0.9960884 0.001929366 0.001243082 0.0007391100
## [7,] 0.9960884 0.001929366 0.001243082 0.0007391100
## [8,] 0.9960884 0.001929366 0.001243082 0.0007391100
## [9,] 0.9960884 0.001929366 0.001243082 0.0007391100
## [10,] 0.9960884 0.001929366 0.001243082 0.0007391100

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 30 / 1
Vectores autoregresivos

Análisis de VAR: causalidad

library(lmtest)
grangertest(ret[,"FTSE"] ~ ret[,"DAX"])

## Granger causality test


##
## Model 1: ret[, "FTSE"] ~ Lags(ret[, "FTSE"], 1:1) + Lags(ret[, "DAX"], 1:1)
## Model 2: ret[, "FTSE"] ~ Lags(ret[, "FTSE"], 1:1)
## Res.Df Df F Pr(>F)
## 1 1855
## 2 1856 -1 5.9822 0.01454 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 31 / 1
Vectores autoregresivos

Pronóstico con VAR

forecastsVAR <- predict(modelVAR, n.ahead = 100)


predict(modelVAR, n.ahead = 10)[[1]]$DAX

## fcst lower upper CI


## [1,] -4.013255e-04 -0.02060845 0.01980580 0.02020713
## [2,] -1.096055e-04 -0.02035612 0.02013691 0.02024652
## [3,] -7.132264e-06 -0.02025417 0.02023990 0.02024704
## [4,] -2.555257e-08 -0.02024706 0.02024701 0.02024704
## [5,] 4.287872e-08 -0.02024700 0.02024708 0.02024704
## [6,] 4.797594e-09 -0.02024703 0.02024704 0.02024704
## [7,] 2.529015e-10 -0.02024704 0.02024704 0.02024704
## [8,] -2.116357e-12 -0.02024704 0.02024704 0.02024704
## [9,] -1.753562e-12 -0.02024704 0.02024704 0.02024704
## [10,] -1.728417e-13 -0.02024704 0.02024704 0.02024704

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 32 / 1
Vectores autoregresivos

Pronóstico con VAR


plot(forecastsVAR)

Forecast of series DAX


0.05
−0.10

0 500 1000 1500 2000

Forecast of series SMI


0.02
−0.08

0 500 1000 1500 2000

Forecast of series CAC


0.02
−0.08

0 500 1000 1500 2000

Forecast of series FTSE


0.04

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 33 / 1
Vectores autoregresivos estructurales (SVAR)

Section 3

Vectores autoregresivos estructurales (SVAR)

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 34 / 1
Vectores autoregresivos estructurales (SVAR)

SVAR: modelo A
Impone restricciones sobre las relaciones contemporaneas de las variables.
Amat <- diag(k)
Amat[lower.tri(Amat, diag = FALSE)] <- NA
Amat

## [,1] [,2] [,3] [,4]


## [1,] 1 0 0 0
## [2,] NA 1 0 0
## [3,] NA NA 1 0
## [4,] NA NA NA 1
SVAR(modelVAR, estmethod = "direct", Amat=Amat)

##
## SVAR Estimation Results:
## ========================
##
##
## Estimated A matrix:
## DAX SMI CAC FTSE
## DAX 1.0000 0.0000 0.0000 0
## SMI -0.6205 1.0000 0.0000 0
##Ramírez
Nerys CACMordán
-0.9986
(Universidad0.1908 1.0000
Autónoma de 0 Temporales en R
Santo Domingo)Series January 12, 2020 35 / 1
Vectores autoregresivos estructurales (SVAR)

SVAR: modelo B

Impone restricciones sobre las relaciones contemporaneas de las variables.


Bmat <- diag(k)
Bmat[lower.tri(Bmat, diag = FALSE)] <- NA

SVAR(modelVAR, estmethod = "direct", Bmat=Bmat)

##
## SVAR Estimation Results:
## ========================
##
##
## Estimated B matrix:
## DAX SMI CAC FTSE
## DAX 1.0000 0.0000 0.0000 0
## SMI 0.6492 1.0000 0.0000 0
## CAC 0.8051 0.1686 1.0000 0
## FTSE 0.4588 0.2233 0.2004 1

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 36 / 1
Vectores autoregresivos estructurales (SVAR)

Restricciones de largo plazo


Bmat1 <- diag(k)
diag(Bmat1) <- NA
Bmat1[4,4] <-1
ModelSVAR <- SVAR(modelVAR, Bmat=Bmat1, Amat=Amat)
ModelSVAR

##
## SVAR Estimation Results:
## ========================
##
##
## Estimated A matrix:
## DAX SMI CAC FTSE
## DAX 1.0000 0.0000 0.0000 0
## SMI -0.6351 1.0000 0.0000 0
## CAC -0.6329 -0.2368 1.0000 0
## FTSE -0.1924 -0.1686 -0.2463 1
##
## Estimated B matrix:
## DAX SMI CAC FTSE
## DAX 0.01031 0.000000 0.000000 0
## SMI 0.00000 0.006548 0.000000 0
## CAC 0.00000 0.000000 0.007317 0
##Ramírez
Nerys FTSE 0.00000
Mordán 0.000000
(Universidad Autónoma de0.000000
Santo Domingo)Series1Temporales en R January 12, 2020 37 / 1
Referencias

Section 4

Referencias

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 38 / 1
Referencias

Referencias

Londoño, Wbaldo. (2005). Modelos de ecuaciones simultaneas.


Rpubs.com. Plotting Time Series Statistics with ggplot2 and ggfortify.
Zivot, E. (2000). Notes on Structural VAR Modeling.

Nerys Ramírez Mordán (Universidad Autónoma de Santo Domingo)Series Temporales en R January 12, 2020 39 / 1

También podría gustarte