Últimas entradas de Victor A.Rico (ver todo)
- Medidas Estadísticas de Dispersión Relativa - junio 11, 2024
- Modelos SARIMA(Arima Estacionales).¿Qué son y cómo usarlos para Predecir? - enero 4, 2024
- ¿Qué es el RUIDO BLANCO ? Econometría en R - junio 21, 2023
Los Modelos VAR estructural(SVAR) son una variación de los VAR Reducidos. Se puede usar un modelo SVAR para identificar choques y rastrearlos mediante la imposición de restricciones en las matrices A y B. Dependiendo se imponemos restricciones en las matriz A o B llamaremos al modelo SVAR-A o SVAR –B.
En este tutorial veremos como aplicar este tipo de modelos econométricos en Rstudio
CÓDIGO R DEL VIDEO
#SVAR: A-model
#install.packages("quantmod")
library(quantmod)
#install.packages("tseries")
library(tseries)
#install.packages("fImport")
library(fImport)
#♠Paquetes necesarios
install.packages("dse")
library ( dse)
install.packages("vars")
library ( vars )
#PASOS A SEGUIR
#1. Establecer el lag polinomial A(L)
#2. Fijamos la matriz identidad
#3 creamos un modelo VAR 2 con ARMA y los datos anteriores
#4 simulanos "x" valores con el modelo
#5 SACAMOS LAS SERIES GENERADAS Y HACEMOS EL MODELO CON A INCOGNITA
#6 ## Estimacion modelo SVAR-A
#1. Establecer el lag polinomial A(L)
Apoly <- array (c(1.0 , -0.5, 0.3 , 0.8 ,
0.2 , 0.1 , -0.7, -0.2,
0.7 , 1, 0.5 , -0.3) ,
c (3 , 2, 2) )
Apoly
#2.Fijamos la matriz identidad
B <- diag(2)
B
#3 creamos un modelo VAR 2 con ARMA y los datos anteriores
svarA <- ARMA(A = Apoly , B = B)
svarA
#4 simulanos "x" valores con el modelo
svarsim <- simulate ( svarA , sampleT = 500,
rng = list ( seed = c(123456) ) )
svarsim
##5. OBTENEMOS LA SERIES GENERADAS
svardat <- matrix ( svarsim$output , nrow = 500 , ncol = 2)
colnames(svardat) <- c("y1","y2")
# GRAFICO DE LAS SIMULACIONES
plot.ts(svardat)
## Estimación VAR CON LOS DATOS SIMULADOS para comprobación
varest <- VAR(svardat , p = 2 , type = "none")
?VAR
# Fijamos la matriz A para el modelo
Amat <- diag(2)
Amat [ 2 , 1] <- NA
Amat [ 1 , 2] <- NA
##6 Estimacion modelo SVAR-A por minimización directa de max verosimi
args(SVAR)
svar.A <- SVAR( varest , estmethod = "direct" ,
Amat = Amat ,hessian = TRUE)
svar.A
#direct = minimización directa del log maximaverosimilitud negativo
#scorting= algoritmo propuesto por Amisano y Giannini(1997)
summary(svar.A)
# MODELO B
Apoly <- array (c(1.0 , -0.5, 0.3 , 0, 0.2 , 0.1 , 0, -0.2,
0.7 , 1, 0.5 , -0.3),
c (3 , 2, 2))
Apoly
## fijamos la covarianza matriz identidad
B <- diag(2)
B[2,1]<- -0.8
#creamos un modelo VAR 2
svarB <- ARMA(A = Apoly , B = B)
svarB
## Simulaciones
svarsim <- simulate ( svarB , sampleT = 500,
rng = list ( seed = c(123456) ) )
svarsim
svardat <- matrix ( svarsim$output , nrow = 500 , ncol = 2)
colnames(svardat) <- c("y1","y2")
plot.ts(svardat)
#EStimación s-VAR coon datos simulados
varest <- VAR(svardat , p = 2 ,type="none")
varest
# Estimación de SVAR B por algoritmo scoring
Bmat <- diag (2)
Bmat [ 2 , 1] <- NA
svar.B <- SVAR(varest, estmethod = "scoring" ,
Bmat =Bmat , max.iter = 200)
svar.B