Introduccion

A nivel empírico los economistas han acudido a los modelos de Vectores Autorregresivos, VAR, como herramienta básica para evaluar las políticas económicas (Galán y Venegas, 2013 y Galán, 2014). Esta metodología econométrica fue planteada inicialmente por el célebre trabajo del Nobel en Economía 2011 Christopher Sims (1980) Macroeconomic and Reality, en donde presenta una fuerte crítica hacia los modelos de sistemas ecuaciones y sus principales aplicaciones como son los modelos macroeconométricos o de gran escala.

Sims menciona que la mayor parte de las restricciones que aparecen en los modelos son falsas debido a i) no hay conocimiento suficiente en la teoría económica para clasificar a las variables en endógenas y exógenas y ii) a priori no se puede establecer restricciones cero. De esta manera Sims propuso el modelo VAR, un sistema de ecuaciones autorregresivas, en donde las variables utilizadas no se distinguen si son endógenas o exógenas ya que se asume que cada una afecta y es afectada por las demás.

Caso Practico del la Inflacion y la liquidez

Para ejemplificar la estimación de un modelo de Vectores Autorregresivos mediante el programa RStudio, se considera un VAR en donde se considera analizar el comportamiento de la inflación, medido por el IPC del Peru y de la liquidez del dinero para el caso de la economía peruana tomando el periodo del segundo mes del año 1992 al mes 11 del 2020. Cabe mencionar que los datos se obtuvieron del Banco Central de Reserva del Peru.

Posteriormente se aplica logaritmos a las series, para ello se utiliza la base de datos que se encuentra en el archivo base. Con esta base se crea el siguiente objeto, peru_var, que será utilizado para la estimación del modelo VAR(p), pero primero debemos cargar las librerias necesarias.

library(xts)
library(quantmod)
library(tidyverse)
library(lubridate)
library(tseries)
library(astsa)
library(forecast)
library(foreign)
library(timsac)
library(vars)
library(mFilter)
library(dynlm)
library(readxl)
library(car)
library(lmtest)
library(nlme)
library(broom)
library(kableExtra)
library(knitr)
library(MASS)
library(parallel)
library(mlogit)
library(dplyr)
library(tidyr)
library(fpp2)
library(stats)
library(plotly)
library(gridExtra)
library(stargazer)
library(systemfit)
library(strucchange)

Luego configuramos el directorio para cargar la base de daos almacenada en dicha carpeta

setwd("~/specdata")

peru_var <- read_excel("Base_inflacion.xlsx", col_names = TRUE)
attach(peru_var)

A continuación se hace la lista de la base para conocer cómo se encuentra asignado el nombre de las variables y de su ubicación, para ello se utiliza el nombre del objeto que se está trabajando, peru_var.

head(peru_var)
## # A tibble: 6 x 4
##     IPC IPC_var Liquidez_var Liquidez
##   <dbl>   <dbl>        <dbl>    <dbl>
## 1  23.4    4.74         7.05    1917.
## 2  25.2    7.44         5.22    2017.
## 3  26.0    3.17         5.01    2118.
## 4  26.9    3.44         2.08    2162.
## 5  27.8    3.59         1.77    2200.
## 6  28.8    3.48         9.58    2411.

Una vez que se tiene el objeto de trabajo, se procede a dar formato de series de tiempo a la base de datos a cabo por mediante el siguiente código. Comenzando primero por el índice de la oferta monetaria(Liquidez) y posteriormente al índice de precios.

# Para IPC
tp <- ts(peru_var[,1], start=c(1992,2), freq=12)

# Para Liquidez
tm2  <- ts(peru_var[,4], start=c(1992,2), freq=12)

# Para IPC_variacion
tp_var <- ts(peru_var[,2], start=c(1992,2), freq=12)

# Para Liquidez_variacion
tm2_var  <- ts(peru_var[,3], start=c(1992,2), freq=12)

A estas nuevas variables son transformadas en logaritmo mediante el siguiente código:

# Para IPC
ltp <- log(tp)
ndiffs(ltp)
## [1] 2
# Para Liquidez
ltm2  <- log(tm2)
ndiffs(ltm2)
## [1] 2

Una vez que se han transformado en logaritmo las variables, se grafican siguiendo el código siguiente:

ts.plot(ltp, ltm2,col=c("blue","red"))

Antes de ello hay que evaluar el cambio estructural de las variables.

modelo <- Fstats(ltp~ltm2, from =0.01)
sctest(modelo)
## 
##  supF test
## 
## data:  modelo
## sup.F = 2386, p-value < 2.2e-16
modelo1 <- Fstats(ltm2~ltp, from =0.01)
sctest(modelo1)
## 
##  supF test
## 
## data:  modelo1
## sup.F = 4173.3, p-value < 2.2e-16

Se rechaza H0, donde se evidencia cambio estructural, en ambos modelos VAR.

strucchange::breakpoints(ltp~ltm2)
## 
##   Optimal 3-segment partition: 
## 
## Call:
## breakpoints.formula(formula = ltp ~ ltm2)
## 
## Breakpoints at observation number:
## 96 277 
## 
## Corresponding to breakdates:
## 2000(1) 2015(2)
strucchange::breakpoints(tm2~ltp)
## 
##   Optimal 5-segment partition: 
## 
## Call:
## breakpoints.formula(formula = tm2 ~ ltp)
## 
## Breakpoints at observation number:
## 142 193 244 295 
## 
## Corresponding to breakdates:
## 2003(11) 2008(2) 2012(5) 2016(8)
BP1 <- strucchange::breakpoints(ltp~ltm2)
BP2 <- strucchange::breakpoints(tm2~ltp)
summary(BP1)
## 
##   Optimal (m+1)-segment partition: 
## 
## Call:
## breakpoints.formula(formula = ltp ~ ltm2)
## 
## Breakpoints at observation number:
##                           
## m = 1      85             
## m = 2      96          277
## m = 3      96  178     278
## m = 4   51 102 178     278
## m = 5   51 102 177 228 279
## 
## Corresponding to breakdates:
##                                                 
## m = 1           1999(2)                         
## m = 2           2000(1)                  2015(2)
## m = 3           2000(1) 2006(11)         2015(3)
## m = 4   1996(4) 2000(7) 2006(11)         2015(3)
## m = 5   1996(4) 2000(7) 2006(10) 2011(1) 2015(4)
## 
## Fit:
##                                                                      
## m   0          1          2          3          4          5         
## RSS     5.5806     0.6996     0.5120     0.4900     0.4698     0.4662
## BIC  -428.5495 -1129.4845 -1219.9491 -1217.6343 -1214.6493 -1199.7844
summary(BP2)
## 
##   Optimal (m+1)-segment partition: 
## 
## Call:
## breakpoints.formula(formula = tm2 ~ ltp)
## 
## Breakpoints at observation number:
##                           
## m = 1          187        
## m = 2      148         295
## m = 3      145     244 295
## m = 4      142 193 244 295
## m = 5   51 142 193 244 295
## 
## Corresponding to breakdates:
##                                                 
## m = 1                    2007(8)                
## m = 2           2004(5)                  2016(8)
## m = 3           2004(2)          2012(5) 2016(8)
## m = 4           2003(11) 2008(2) 2012(5) 2016(8)
## m = 5   1996(4) 2003(11) 2008(2) 2012(5) 2016(8)
## 
## Fit:
##                                                                
## m   0         1         2         3         4         5        
## RSS 8.835e+11 6.166e+10 1.837e+10 1.493e+10 1.405e+10 1.389e+10
## BIC 8.494e+03 7.590e+03 7.189e+03 7.135e+03 7.131e+03 7.145e+03

Por lo tanto hay 3 optimas particiones aunque son 5 cambios, esto por el numero de intervalos.

plot(ltp, main = "Evolucion del IPC y Cambio estructura afectado por Liquidez Monetaria")
lines(BP1)
conf1 <- confint(BP1)
lines(conf1)

plot(ltm2, main = "Evolucion de la Liquidez Monetaria y Cambio estructural afectado por IPC")
lines(BP2)
conf2 <- confint(BP2)
lines(conf2)

Del anterior gráfico se aprecia tanto el IPC como la liquidez del sistema Peruano que presenta una trayectoria determinística creciente, por lo que ambas series no satisfacen el supuesto de ruido blanco o que son estacionarias.

Ademas los cambios estructurales se presentan de diferente forma variando la variable endogena que utiliza el VAR, creando VAR esructurales que en su caso reflejan mas especifidad.

Por fines practicos, se evaluara la serie son la presencia de cambios estructurales y se evaluaran los supuestos del modelo para validar si el el data set es correcto.

Caso contrario se procede a tomar el punto de quiebre estructural mas lejano para asi mantener un data set libre de quiebre estructural.

Para corroborarlo se llevará a continuación las pruebas de raíz unitaria. Para ello se instalará la paquetería de los vectores autorregresivos, vars, posteriormente se activa la librería respectiva.

library(vars)

Para aplicar la prueba de raíz unitaria de Dickey Fuller Aumentada (ADF) se plantea la siguiente Hipótesis nula vs. Hipótesis alternativa:

Ho: La variable x no tiene una raíz unitaria Ha: La variable x tiene una raíz unitaria

De esta forma se aplica la prueba ADF sin constante ni tendencia mediante el código siguiente:

#Para la inflacion (IPC)
adf1_ltp<-summary(ur.df(ltp, lags=1))
adf1_ltp
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0245978 -0.0021136  0.0000944  0.0021485  0.0185408 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## z.lag.1    2.022e-04  5.918e-05   3.417  0.00071 ***
## z.diff.lag 7.686e-01  2.645e-02  29.056  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.004377 on 342 degrees of freedom
## Multiple R-squared:  0.7776, Adjusted R-squared:  0.7763 
## F-statistic: 597.8 on 2 and 342 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: 3.4169 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62

En la parte inferior de la Tabla 1 se aprecia que el valor estadístico ADF tiene un valor de 3.4169 , el hecho de que sea positivo, indica que el logaritmo del IPC no es estacionario, por lo que se rechaza la hipótesis nula y se acepta la alternativa de que la variable presenta raíz unitaria.

Se continua aplicando la prueba ADF para incluyendo la constante y la tendencia respectivamente mediante la siguiente rutina.

# La prueba ADF con termino constante o con deriva
adf2_ltp<-summary(ur.df(ltp, type="drift", lags=12))
adf2_ltp
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0093685 -0.0019343  0.0000191  0.0019711  0.0121850 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.0044433  0.0045519   0.976   0.3297    
## z.lag.1      -0.0008394  0.0009766  -0.860   0.3907    
## z.diff.lag1   0.3285123  0.0541883   6.062 3.78e-09 ***
## z.diff.lag2  -0.0345532  0.0549414  -0.629   0.5299    
## z.diff.lag3   0.1411836  0.0547458   2.579   0.0104 *  
## z.diff.lag4   0.0620896  0.0553881   1.121   0.2631    
## z.diff.lag5   0.1121830  0.0556866   2.015   0.0448 *  
## z.diff.lag6  -0.0618548  0.0562868  -1.099   0.2726    
## z.diff.lag7  -0.0280728  0.0557344  -0.504   0.6148    
## z.diff.lag8  -0.0548552  0.0555426  -0.988   0.3241    
## z.diff.lag9   0.0434679  0.0557950   0.779   0.4365    
## z.diff.lag10 -0.0679635  0.0549498  -1.237   0.2171    
## z.diff.lag11  0.1155807  0.0533667   2.166   0.0311 *  
## z.diff.lag12  0.1810308  0.0448800   4.034 6.88e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.003333 on 319 degrees of freedom
## Multiple R-squared:  0.6881, Adjusted R-squared:  0.6754 
## F-statistic: 54.14 on 13 and 319 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -0.8595 3.1574 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.44 -2.87 -2.57
## phi1  6.47  4.61  3.79
# La prueba ADF con tendencia
adf3_ltp<-summary(ur.df(ltp, type="trend", lags=1))
adf3_ltp
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0173832 -0.0022362 -0.0001933  0.0019764  0.0161299 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.237e-01  1.077e-02  11.489  < 2e-16 ***
## z.lag.1     -2.938e-02  2.619e-03 -11.218  < 2e-16 ***
## tt           6.409e-05  6.996e-06   9.162  < 2e-16 ***
## z.diff.lag   2.731e-01  4.633e-02   5.895 9.04e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.003663 on 340 degrees of freedom
## Multiple R-squared:  0.7853, Adjusted R-squared:  0.7834 
## F-statistic: 414.5 on 3 and 340 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -11.2176 54.9998 72.215 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.98 -3.42 -3.13
## phi2  6.15  4.71  4.05
## phi3  8.34  6.30  5.36

Aun las series no son estacionarias, pero de acuerdo a la Tabla 2 tanto el logaritmo del IPC como el logaritmo de la Liquidez, son estacionarias mediante la segunda diferencia, para obtener la primera y segunda diferencia a las series se utiliza la siguiente rutina:

# Primera diferencia del logaritmo del indice de precios

dltp<-diff(ltp)
# Segunda diferencia del logaritmo del indice de precios

d2ltp<-diff(dltp)

# Primera diferencia del logaritmo del indice de M2

dltm2<-diff(ltm2)

# Segunda diferencia del logaritmo del indice de M2

d2ltm2<-diff(dltm2)

Graficando las series las segundas diferencias del logaritmo del índice de precios IPC, d2ltp, y el logaritmo del índice de la liquidez de dinero, d2ltm2, mediante el siguiente código se obtiene la Gráfica 2.

ts.plot(dltp, dltm2, col= c("blue", "red"))

ts.plot(d2ltp, d2ltm2, col= c("blue", "red"))

A continuación se lleva a cabo las pruebas de causalidad en el sentido de Granger para determinar el orden causal entre las variables, para ello se activa la librería lmtest.

Una vez activa la librería, se aplica de la siguiente manera:

  1. Se verifica la dirección de la causalidad de la liquidez de dinero hacia los precios (IPC), donde la hipótesis nula implica que la oferta de dinero(la liquidez) no causa en el sentido de Granger a los precios:
library(lmtest)
grangertest(d2ltp~d2ltm2, order=1)
## Granger causality test
## 
## Model 1: d2ltp ~ Lags(d2ltp, 1:1) + Lags(d2ltm2, 1:1)
## Model 2: d2ltp ~ Lags(d2ltp, 1:1)
##   Res.Df Df      F  Pr(>F)  
## 1    340                    
## 2    341 -1 5.3124 0.02178 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De acuerdo a la Tabla 3 se rechaza la hipótesis nula que la oferta de dinero no causa en el sentido de Granger a los precios, dado que el p-value, 0.02178, es menor al valor crítico del 5 por ciento.

Por lo cual, la liquidez del sistema si causa en sentido de la granger al IPC del Peru.

  1. Se verifica la dirección de la causalidad de los precios hacia la oferta de dinero, donde la hipótesis nula implica que los precios no causan en el sentido de Granger a la oferta de dinero.
grangertest(d2ltm2~d2ltp, order=1)
## Granger causality test
## 
## Model 1: d2ltm2 ~ Lags(d2ltm2, 1:1) + Lags(d2ltp, 1:1)
## Model 2: d2ltm2 ~ Lags(d2ltm2, 1:1)
##   Res.Df Df      F   Pr(>F)   
## 1    340                      
## 2    341 -1 6.8032 0.009501 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De acuerdo a la Tabla 4 se rechaza la hipótesis nula que los precios no causa en el sentido de Granger a la oferta de dinero, dado que el p-value, 0.009501, es menor al valor crítico del 5 por ciento. A continuación aplica la prueba para varios rezagos lo que permite construir la Tabla 5.

grangertest(d2ltp~d2ltm2, order=1)
## Granger causality test
## 
## Model 1: d2ltp ~ Lags(d2ltp, 1:1) + Lags(d2ltm2, 1:1)
## Model 2: d2ltp ~ Lags(d2ltp, 1:1)
##   Res.Df Df      F  Pr(>F)  
## 1    340                    
## 2    341 -1 5.3124 0.02178 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
grangertest(d2ltm2~d2ltp, order=1)
## Granger causality test
## 
## Model 1: d2ltm2 ~ Lags(d2ltm2, 1:1) + Lags(d2ltp, 1:1)
## Model 2: d2ltm2 ~ Lags(d2ltm2, 1:1)
##   Res.Df Df      F   Pr(>F)   
## 1    340                      
## 2    341 -1 6.8032 0.009501 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De acuerdo a la Tabla 5 se rechaza la hipótesis nula que M2 no causa en el sentido de Granger al IPC en los siguientes rezagos mayores a 2. En la misma tabla se acepta la hipótesis nula para todos los rezagos de que el IPC no causa en el sentido de Granger a M2. Con estos resultados se concluye que la dirección causal entre estas variables va de M2 a IPC.

A continuación se activa la librería vars para identificar el VAR, a través de los criterios de información: Akaike (AIC),Hanna-Quin (HQ), Schwarz (SC) y Error de Predicción Final (FPE) para ello se utiliza los siguientes codigos:

library(vars)

peru_var2 <- cbind(d2ltm2,d2ltp)
head(peru_var2)
##                d2ltm2        d2ltp
## Apr 1992 -0.001942253 -0.040560338
## May 1992 -0.028351908  0.002563783
## Jun 1992 -0.003001788  0.001440007
## Jul 1992  0.073935702 -0.001060130
## Aug 1992 -0.099702098 -0.006308104
## Sep 1992  0.034536219 -0.002012105

Antes de la identificación, se debe crear un nuevo objeto en donde contenga las variables transformadas y que sean estacionarias, en este ejemplo el nuevo objeto se le nombró peru_var2, cabe mencionar, las variables del nuevo objeto se deberán transformar como series de tiempo siguiendo los pasos iniciales del presente capítulo.

Para identificar el orden del VAR, en este caso, se utilizó como máximo 12 rezagos y de acuerdo a los criterios de información (AIC, HQ, SC y FPE) de la Tabla 6 indican que se debe utilizar 11 rezagos para la estimación del modelo VAR.

VARselect(peru_var2,lag.max = 12)
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##     11     11     11     11 
## 
## $criteria
##                    1             2             3             4             5
## AIC(n) -1.763737e+01 -1.796953e+01 -1.813235e+01 -1.830122e+01 -1.831422e+01
## HQ(n)  -1.760995e+01 -1.792382e+01 -1.806836e+01 -1.821895e+01 -1.821366e+01
## SC(n)  -1.756860e+01 -1.785492e+01 -1.797189e+01 -1.809492e+01 -1.806207e+01
## FPE(n)  2.188704e-08  1.570126e-08  1.334214e-08  1.126921e-08  1.112391e-08
##                    6             7             8             9            10
## AIC(n) -1.835715e+01 -1.834920e+01 -1.843450e+01 -1.848748e+01 -1.852151e+01
## HQ(n)  -1.823831e+01 -1.821208e+01 -1.827909e+01 -1.831380e+01 -1.832954e+01
## SC(n)  -1.805916e+01 -1.800536e+01 -1.804482e+01 -1.805196e+01 -1.804014e+01
## FPE(n)  1.065677e-08  1.074231e-08  9.864545e-09  9.356126e-09  9.043948e-09
##                   11            12
## AIC(n) -1.887340e+01 -1.886401e+01
## HQ(n)  -1.866315e+01 -1.863547e+01
## SC(n)  -1.834619e+01 -1.829095e+01
## FPE(n)  6.361770e-09  6.422626e-09

Una vez identificado el VAR se procede con el siguiente código su estimación, VAR. En Tabla 7 se presentan las ecuaciones del VAR de orden 11, VAR(11).

var1 <- VAR(peru_var2, p=11)
var1
## 
## VAR Estimation Results:
## ======================= 
## 
## Estimated coefficients for equation d2ltm2: 
## =========================================== 
## Call:
## d2ltm2 = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + d2ltm2.l5 + d2ltp.l5 + d2ltm2.l6 + d2ltp.l6 + d2ltm2.l7 + d2ltp.l7 + d2ltm2.l8 + d2ltp.l8 + d2ltm2.l9 + d2ltp.l9 + d2ltm2.l10 + d2ltp.l10 + d2ltm2.l11 + d2ltp.l11 + const 
## 
##     d2ltm2.l1      d2ltp.l1     d2ltm2.l2      d2ltp.l2     d2ltm2.l3 
## -0.8976997344 -0.9479990491 -0.8770972737 -0.7558661524 -0.6710872474 
##      d2ltp.l3     d2ltm2.l4      d2ltp.l4     d2ltm2.l5      d2ltp.l5 
## -0.0756836511 -0.5379707827 -0.2214166081 -0.3503923718 -0.2704597307 
##     d2ltm2.l6      d2ltp.l6     d2ltm2.l7      d2ltp.l7     d2ltm2.l8 
## -0.3858193558 -0.6404444368 -0.2722383698 -0.3385782502 -0.3566353134 
##      d2ltp.l8     d2ltm2.l9      d2ltp.l9    d2ltm2.l10     d2ltp.l10 
## -0.7946116769 -0.3310063799 -0.1015369756 -0.4784784737 -0.1900474507 
##    d2ltm2.l11     d2ltp.l11         const 
## -0.5484919489 -0.0767491061 -0.0008487155 
## 
## 
## Estimated coefficients for equation d2ltp: 
## ========================================== 
## Call:
## d2ltp = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + d2ltm2.l5 + d2ltp.l5 + d2ltm2.l6 + d2ltp.l6 + d2ltm2.l7 + d2ltp.l7 + d2ltm2.l8 + d2ltp.l8 + d2ltm2.l9 + d2ltp.l9 + d2ltm2.l10 + d2ltp.l10 + d2ltm2.l11 + d2ltp.l11 + const 
## 
##     d2ltm2.l1      d2ltp.l1     d2ltm2.l2      d2ltp.l2     d2ltm2.l3 
##  0.0031404885 -0.5251307964  0.0065920565 -0.4525607644  0.0271150347 
##      d2ltp.l3     d2ltm2.l4      d2ltp.l4     d2ltm2.l5      d2ltp.l5 
## -0.2497661537  0.0271531767 -0.1904040678  0.0233034099 -0.1049449120 
##     d2ltm2.l6      d2ltp.l6     d2ltm2.l7      d2ltp.l7     d2ltm2.l8 
##  0.0125580811 -0.1649300747  0.0171939051 -0.1964846291  0.0323987240 
##      d2ltp.l8     d2ltm2.l9      d2ltp.l9    d2ltm2.l10     d2ltp.l10 
## -0.1968782829  0.0319949597 -0.0917351529  0.0142495318 -0.1288492782 
##    d2ltm2.l11     d2ltp.l11         const 
## -0.0069256479 -0.0310454397 -0.0003247095

Saber sí el VAR estimado satisface la condición de estabilidad, se utiliza el código summary para que el programa R muestre las raíces del polinomio característico así como los estadísticos necesarios para llevar a cabo la inferencia estadística. De acuerdo a la Tabla 8, se tiene que las raíces del polinomio característico son menores a uno, por lo que el VAR estimado con 11 rezagos satisface la condición de establilidad o estacionariedad.

summary(var1)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: d2ltm2, d2ltp 
## Deterministic variables: const 
## Sample size: 333 
## Log Likelihood: 2240.693 
## Roots of the characteristic polynomial:
## 0.9783 0.9783 0.9765 0.9765 0.9655 0.9655 0.9596 0.9596 0.9208 0.9208 0.8809 0.841 0.841 0.8165 0.8165 0.7937 0.7937 0.7913 0.7913 0.7557 0.7557 0.2655
## Call:
## VAR(y = peru_var2, p = 11)
## 
## 
## Estimation results for equation d2ltm2: 
## ======================================= 
## d2ltm2 = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + d2ltm2.l5 + d2ltp.l5 + d2ltm2.l6 + d2ltp.l6 + d2ltm2.l7 + d2ltp.l7 + d2ltm2.l8 + d2ltp.l8 + d2ltm2.l9 + d2ltp.l9 + d2ltm2.l10 + d2ltp.l10 + d2ltm2.l11 + d2ltp.l11 + const 
## 
##              Estimate Std. Error t value Pr(>|t|)    
## d2ltm2.l1  -0.8976997  0.0473901 -18.943  < 2e-16 ***
## d2ltp.l1   -0.9479990  0.3534698  -2.682 0.007711 ** 
## d2ltm2.l2  -0.8770973  0.0648593 -13.523  < 2e-16 ***
## d2ltp.l2   -0.7558662  0.4045312  -1.868 0.062636 .  
## d2ltm2.l3  -0.6710872  0.0803086  -8.356 2.20e-15 ***
## d2ltp.l3   -0.0756837  0.4328837  -0.175 0.861323    
## d2ltm2.l4  -0.5379708  0.0870750  -6.178 2.03e-09 ***
## d2ltp.l4   -0.2214166  0.4306816  -0.514 0.607543    
## d2ltm2.l5  -0.3503924  0.0914090  -3.833 0.000153 ***
## d2ltp.l5   -0.2704597  0.4256706  -0.635 0.525654    
## d2ltm2.l6  -0.3858194  0.0910363  -4.238 2.98e-05 ***
## d2ltp.l6   -0.6404444  0.4203049  -1.524 0.128588    
## d2ltm2.l7  -0.2722384  0.0912736  -2.983 0.003084 ** 
## d2ltp.l7   -0.3385783  0.4202760  -0.806 0.421086    
## d2ltm2.l8  -0.3566353  0.0872352  -4.088 5.54e-05 ***
## d2ltp.l8   -0.7946117  0.4178151  -1.902 0.058121 .  
## d2ltm2.l9  -0.3310064  0.0816640  -4.053 6.39e-05 ***
## d2ltp.l9   -0.1015370  0.4152188  -0.245 0.806976    
## d2ltm2.l10 -0.4784785  0.0661599  -7.232 3.74e-12 ***
## d2ltp.l10  -0.1900475  0.3806587  -0.499 0.617951    
## d2ltm2.l11 -0.5484919  0.0473099 -11.594  < 2e-16 ***
## d2ltp.l11  -0.0767491  0.3044364  -0.252 0.801129    
## const      -0.0008487  0.0012278  -0.691 0.489942    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.02183 on 310 degrees of freedom
## Multiple R-Squared: 0.7721,  Adjusted R-squared: 0.7559 
## F-statistic: 47.74 on 22 and 310 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation d2ltp: 
## ====================================== 
## d2ltp = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + d2ltm2.l5 + d2ltp.l5 + d2ltm2.l6 + d2ltp.l6 + d2ltm2.l7 + d2ltp.l7 + d2ltm2.l8 + d2ltp.l8 + d2ltm2.l9 + d2ltp.l9 + d2ltm2.l10 + d2ltp.l10 + d2ltm2.l11 + d2ltp.l11 + const 
## 
##              Estimate Std. Error t value Pr(>|t|)    
## d2ltm2.l1   0.0031405  0.0074946   0.419 0.675480    
## d2ltp.l1   -0.5251308  0.0558998  -9.394  < 2e-16 ***
## d2ltm2.l2   0.0065921  0.0102572   0.643 0.520911    
## d2ltp.l2   -0.4525608  0.0639750  -7.074 1.01e-11 ***
## d2ltm2.l3   0.0271150  0.0127005   2.135 0.033548 *  
## d2ltp.l3   -0.2497662  0.0684588  -3.648 0.000309 ***
## d2ltm2.l4   0.0271532  0.0137706   1.972 0.049518 *  
## d2ltp.l4   -0.1904041  0.0681106  -2.796 0.005505 ** 
## d2ltm2.l5   0.0233034  0.0144560   1.612 0.107974    
## d2ltp.l5   -0.1049449  0.0673181  -1.559 0.120031    
## d2ltm2.l6   0.0125581  0.0143970   0.872 0.383737    
## d2ltp.l6   -0.1649301  0.0664695  -2.481 0.013621 *  
## d2ltm2.l7   0.0171939  0.0144346   1.191 0.234501    
## d2ltp.l7   -0.1964846  0.0664650  -2.956 0.003353 ** 
## d2ltm2.l8   0.0323987  0.0137959   2.348 0.019481 *  
## d2ltp.l8   -0.1968783  0.0660758  -2.980 0.003115 ** 
## d2ltm2.l9   0.0319950  0.0129148   2.477 0.013768 *  
## d2ltp.l9   -0.0917352  0.0656652  -1.397 0.163409    
## d2ltm2.l10  0.0142495  0.0104629   1.362 0.174216    
## d2ltp.l10  -0.1288493  0.0601996  -2.140 0.033105 *  
## d2ltm2.l11 -0.0069256  0.0074819  -0.926 0.355344    
## d2ltp.l11  -0.0310454  0.0481454  -0.645 0.519516    
## const      -0.0003247  0.0001942  -1.672 0.095490 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.003452 on 310 degrees of freedom
## Multiple R-Squared: 0.3618,  Adjusted R-squared: 0.3165 
## F-statistic: 7.988 on 22 and 310 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##            d2ltm2      d2ltp
## d2ltm2  4.765e-04 -4.679e-06
## d2ltp  -4.679e-06  1.192e-05
## 
## Correlation matrix of residuals:
##          d2ltm2    d2ltp
## d2ltm2  1.00000 -0.06208
## d2ltp  -0.06208  1.00000

Se observa que las raices caracteristicas son menores a 1, por lo cual satisface la condicion de estacionariedad.

Una vez que se tiene el sistema de ecuaciones del VAR estimados, ya podemos obtener el grafico de la variable observada versus la estimada, así como de los residuales a través del código plot.

plot(var1)

En la grafica se muestra el comportamiento de las variables observadas y estimadas asi como de los residuales. A continuación se lleva a cabo las pruebas de especificación. En primer lugar se verifica la existencia o no de autocorrelación serial en los residuales mediante el siguiente código:

seriala <- serial.test(var1, lags.pt = 11,  type = "PT.asymptotic")
seriala$serial
## 
##  Portmanteau Test (asymptotic)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 29.535, df = 0, p-value < 2.2e-16

De acuerdo a la prueba de autocorrelación, Tabla 9, permite rechazar la hipótesis nula de que los residuales no están correlacionados y aceptar la hipótesis alterna que hay presencia de correlación serial entre los residuales. Con el siguiente código se verifica si los residuales del modelo VAR estimado los residuales se distribuyen como una normal.

normalidad <- normality.test(var1)
normalidad$jb.mul
## $JB
## 
##  JB-Test (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 34.636, df = 4, p-value = 5.519e-07
## 
## 
## $Skewness
## 
##  Skewness only (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 8.7059, df = 2, p-value = 0.01287
## 
## 
## $Kurtosis
## 
##  Kurtosis only (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 25.93, df = 2, p-value = 2.341e-06

Con la Tabla 10 se tiene evidencia que los residuales no se distribuyen como normal ya que presenta problemas en la curtosis y en el sesgo. Ahora se prosigue con verificar si la varianza de los residuales son o no homocedasticos, por lo que se utiliza el siguiente código:

arch1 <- arch.test(var1, lags.multi = 11)
arch1$arch.mul
## 
##  ARCH (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 166.47, df = 99, p-value = 2.587e-05

A través de la prueba de Heteroscedasticidad se tiene que los residuales no satisfacen el supuesto de varianza constante.

El modelo VAR(11) estimado tiene problemas de especificación de autocorrelación y de normalidad. Observando las Gráficas 3a y 3b se puede encontrar que existe un punto de ruptura o de cambio estructural, esto implica que se puede introducir una variable dummy para ajustar el modelo, en donde los valores de uno indiquen que en ese periodo existe un cambio estructural, mientras los valores cero se refiere la ausencia de cambio estructural.

Dado que el modelo no cumple con las especificaciones planteadas se procede a levanar los supuestos, de acuerdo al nuevo data set que tomaremos.

ltp  <- ts(ltp[276:346], start=c(2015,1), freq=12)
ltm2 <- ts(ltm2[276:346], start=c(2015,1), freq=12)

Y volvemos a repetir el modelamiento, para su evaluacion.

# Primera diferencia del logaritmo del indice de precios

dltp<-diff(ltp)
# Segunda diferencia del logaritmo del indice de precios

d2ltp<-diff(dltp)

# Primera diferencia del logaritmo del indice de M2

dltm2<-diff(ltm2)

# Segunda diferencia del logaritmo del indice de M2

d2ltm2<-diff(dltm2)


ts.plot(dltp, dltm2, col= c("blue", "red"))

ts.plot(d2ltp, d2ltm2, col= c("blue", "red"))

library(lmtest)
grangertest(d2ltp~d2ltm2, order=1)
## Granger causality test
## 
## Model 1: d2ltp ~ Lags(d2ltp, 1:1) + Lags(d2ltm2, 1:1)
## Model 2: d2ltp ~ Lags(d2ltp, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     65                 
## 2     66 -1 0.1615 0.6891
grangertest(d2ltm2~d2ltp, order=1)
## Granger causality test
## 
## Model 1: d2ltm2 ~ Lags(d2ltm2, 1:1) + Lags(d2ltp, 1:1)
## Model 2: d2ltm2 ~ Lags(d2ltm2, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     65                 
## 2     66 -1 1.5268  0.221

De este modelo, observamos que no hay presencia de causalidad en sentido de la Granger y las series son estables en el tiempo.

peru_var2 <- cbind(d2ltm2,d2ltp)

VARselect(peru_var2,lag.max = 12)
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      4      4      4 
## 
## $criteria
##                    1             2             3             4             5
## AIC(n) -1.913630e+01 -1.918305e+01 -1.944246e+01 -1.968882e+01 -1.961276e+01
## HQ(n)  -1.905272e+01 -1.904375e+01 -1.924744e+01 -1.943809e+01 -1.930630e+01
## SC(n)  -1.892124e+01 -1.882462e+01 -1.894066e+01 -1.904365e+01 -1.882421e+01
## FPE(n)  4.889833e-09  4.669811e-09  3.608526e-09  2.828566e-09  3.065812e-09
##                    6             7             8             9            10
## AIC(n) -1.957658e+01 -1.953515e+01 -1.947465e+01 -1.948280e+01 -1.941340e+01
## HQ(n)  -1.921441e+01 -1.911726e+01 -1.900103e+01 -1.895347e+01 -1.882835e+01
## SC(n)  -1.864466e+01 -1.845986e+01 -1.825598e+01 -1.812077e+01 -1.790799e+01
## FPE(n)  3.199567e-09  3.365158e-09  3.618312e-09  3.645246e-09  3.985092e-09
##                   11            12
## AIC(n) -1.966479e+01 -1.961264e+01
## HQ(n)  -1.902402e+01 -1.891615e+01
## SC(n)  -1.801601e+01 -1.782049e+01
## FPE(n)  3.176485e-09  3.449423e-09
var1 <- VAR(peru_var2, p=4)
summary(var1)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: d2ltm2, d2ltp 
## Deterministic variables: const 
## Sample size: 65 
## Log Likelihood: 473.811 
## Roots of the characteristic polynomial:
## 0.8883 0.8883 0.8589 0.8589 0.8169 0.8169 0.6344 0.6344
## Call:
## VAR(y = peru_var2, p = 4)
## 
## 
## Estimation results for equation d2ltm2: 
## ======================================= 
## d2ltm2 = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + const 
## 
##             Estimate Std. Error t value Pr(>|t|)    
## d2ltm2.l1 -0.6078073  0.1182905  -5.138 3.64e-06 ***
## d2ltp.l1  -0.5585228  0.7622118  -0.733 0.466757    
## d2ltm2.l2 -0.4176010  0.1285885  -3.248 0.001969 ** 
## d2ltp.l2  -0.8611857  0.8119264  -1.061 0.293393    
## d2ltm2.l3 -0.4143930  0.1352559  -3.064 0.003358 ** 
## d2ltp.l3  -0.9286762  0.7804740  -1.190 0.239111    
## d2ltm2.l4 -0.4918948  0.1236073  -3.979 0.000201 ***
## d2ltp.l4   0.9435066  0.7536609   1.252 0.215811    
## const      0.0004352  0.0021044   0.207 0.836917    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.01689 on 56 degrees of freedom
## Multiple R-Squared: 0.4683,  Adjusted R-squared: 0.3923 
## F-statistic: 6.165 on 8 and 56 DF,  p-value: 1.085e-05 
## 
## 
## Estimation results for equation d2ltp: 
## ====================================== 
## d2ltp = d2ltm2.l1 + d2ltp.l1 + d2ltm2.l2 + d2ltp.l2 + d2ltm2.l3 + d2ltp.l3 + d2ltm2.l4 + d2ltp.l4 + const 
## 
##             Estimate Std. Error t value Pr(>|t|)    
## d2ltm2.l1 -0.0344610  0.0194874  -1.768  0.08245 .  
## d2ltp.l1  -0.7697731  0.1255685  -6.130 9.32e-08 ***
## d2ltm2.l2 -0.0476021  0.0211840  -2.247  0.02859 *  
## d2ltp.l2  -0.6196851  0.1337586  -4.633 2.19e-05 ***
## d2ltm2.l3  0.0194482  0.0222824   0.873  0.38650    
## d2ltp.l3  -0.6851276  0.1285771  -5.329 1.83e-06 ***
## d2ltm2.l4  0.0226184  0.0203634   1.111  0.27143    
## d2ltp.l4  -0.3612895  0.1241598  -2.910  0.00518 ** 
## const     -0.0001585  0.0003467  -0.457  0.64932    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.002783 on 56 degrees of freedom
## Multiple R-Squared: 0.5275,  Adjusted R-squared:  0.46 
## F-statistic: 7.814 on 8 and 56 DF,  p-value: 5.542e-07 
## 
## 
## 
## Covariance matrix of residuals:
##           d2ltm2     d2ltp
## d2ltm2 2.854e-04 7.561e-06
## d2ltp  7.561e-06 7.745e-06
## 
## Correlation matrix of residuals:
##        d2ltm2  d2ltp
## d2ltm2 1.0000 0.1608
## d2ltp  0.1608 1.0000
plot(var1)

Del modelo solo se necesita 4 resagos para optimizar el modelo, y realizar las evaluaciones.

######## Autocorrelacion (k+1 =p)
seriala <- serial.test(var1, lags.pt = 5,  type = "PT.asymptotic")
seriala$serial
## 
##  Portmanteau Test (asymptotic)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 6.1228, df = 4, p-value = 0.1902
######### Normalidad(p)
normalidad <- normality.test(var1)
normalidad$jb.mul
## $JB
## 
##  JB-Test (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 12.34, df = 4, p-value = 0.01499
## 
## 
## $Skewness
## 
##  Skewness only (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 4.375, df = 2, p-value = 0.1122
## 
## 
## $Kurtosis
## 
##  Kurtosis only (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 7.9652, df = 2, p-value = 0.01864
######### Heteroscedasticidad(p)
arch1 <- arch.test(var1, lags.multi = 4)
arch1$arch.mul
## 
##  ARCH (multivariate)
## 
## data:  Residuals of VAR object var1
## Chi-squared = 39.696, df = 36, p-value = 0.3087

Del modelo, podemos concluir que no hay autocorrelacion, hay presencia de asimetria y no hay presencia de heteroscedasicidad, dado que los P-value son mayores a 5%.

Una vez que se han llevado a cabo las pruebas de especificación y verificar que el modelo VAR las satisface, se procede a realizar el análisis impulso respuesta permitiendo con ello observar la trayectoria de la variable de estudio. Para obtener lo anterior se recurre al siguiente código y asi obtener los multiplicadores de impacto que se muestran en la Tabla 12.

predVAR <- predict(var1)
plot(predVAR)

var1_irflp<-irf(var1, response="d2ltp", n.ahead=24, boot=TRUE)

var1_irflp
## 
## Impulse response coefficients
## $d2ltm2
##               d2ltp
##  [1,]  4.475968e-04
##  [2,] -9.266809e-04
##  [3,] -5.714418e-06
##  [4,]  1.119419e-03
##  [5,] -1.167285e-04
##  [6,] -3.569439e-04
##  [7,] -5.680295e-04
##  [8,]  6.708612e-05
##  [9,]  6.725684e-04
## [10,] -3.707640e-05
## [11,] -8.838592e-05
## [12,] -2.803447e-04
## [13,] -3.645645e-05
## [14,]  1.861493e-04
## [15,] -1.022240e-05
## [16,]  9.471832e-05
## [17,] -6.385997e-05
## [18,] -4.553264e-05
## [19,] -2.380387e-05
## [20,] -3.694211e-05
## [21,]  9.279912e-05
## [22,]  2.182496e-05
## [23,] -6.251572e-07
## [24,] -4.575957e-05
## [25,] -4.506093e-05
## 
## $d2ltp
##               d2ltp
##  [1,]  2.746681e-03
##  [2,] -2.114321e-03
##  [3,] -2.166383e-05
##  [4,] -4.732248e-04
##  [5,]  8.134786e-04
##  [6,]  2.118969e-04
##  [7,] -4.457202e-04
##  [8,]  1.464404e-04
##  [9,] -1.892856e-04
## [10,]  2.285948e-04
## [11,] -1.722378e-04
## [12,] -1.599477e-05
## [13,]  1.836202e-04
## [14,] -5.339404e-05
## [15,]  2.478540e-05
## [16,] -1.645904e-04
## [17,]  3.293334e-05
## [18,]  1.002663e-04
## [19,]  9.920846e-07
## [20,]  1.394305e-05
## [21,] -8.630194e-05
## [22,]  1.080101e-05
## [23,]  2.071346e-05
## [24,]  6.853913e-06
## [25,]  2.384961e-05
## 
## 
## Lower Band, CI= 0.95 
## $d2ltm2
##               d2ltp
##  [1,] -2.534289e-04
##  [2,] -1.574742e-03
##  [3,] -7.162905e-04
##  [4,]  2.479368e-04
##  [5,] -7.409546e-04
##  [6,] -1.208468e-03
##  [7,] -1.246181e-03
##  [8,] -5.094877e-04
##  [9,]  9.959418e-05
## [10,] -4.909814e-04
## [11,] -6.491716e-04
## [12,] -5.902446e-04
## [13,] -3.814213e-04
## [14,] -2.162932e-04
## [15,] -3.601799e-04
## [16,] -1.470773e-04
## [17,] -2.980049e-04
## [18,] -3.185160e-04
## [19,] -2.848715e-04
## [20,] -2.796378e-04
## [21,] -1.011175e-04
## [22,] -1.416281e-04
## [23,] -2.165983e-04
## [24,] -2.133880e-04
## [25,] -2.102211e-04
## 
## $d2ltp
##               d2ltp
##  [1,]  2.008943e-03
##  [2,] -2.553388e-03
##  [3,] -7.427163e-04
##  [4,] -1.083656e-03
##  [5,]  5.140189e-05
##  [6,] -5.939529e-04
##  [7,] -8.994239e-04
##  [8,] -4.742633e-04
##  [9,] -6.469592e-04
## [10,] -2.685066e-04
## [11,] -5.910099e-04
## [12,] -3.457417e-04
## [13,] -1.575889e-04
## [14,] -3.249323e-04
## [15,] -3.182183e-04
## [16,] -4.941512e-04
## [17,] -2.062755e-04
## [18,] -9.426641e-05
## [19,] -2.377498e-04
## [20,] -1.607771e-04
## [21,] -2.769072e-04
## [22,] -1.545280e-04
## [23,] -1.039870e-04
## [24,] -1.462688e-04
## [25,] -7.600946e-05
## 
## 
## Upper Band, CI= 0.95 
## $d2ltm2
##               d2ltp
##  [1,]  9.637233e-04
##  [2,] -3.131068e-04
##  [3,]  7.342573e-04
##  [4,]  1.810366e-03
##  [5,]  6.726024e-04
##  [6,]  3.977504e-04
##  [7,] -1.182342e-05
##  [8,]  5.742062e-04
##  [9,]  1.138922e-03
## [10,]  3.934004e-04
## [11,]  4.110922e-04
## [12,]  9.764588e-05
## [13,]  4.263608e-04
## [14,]  4.628655e-04
## [15,]  2.330844e-04
## [16,]  3.725944e-04
## [17,]  2.793235e-04
## [18,]  2.194734e-04
## [19,]  1.519253e-04
## [20,]  1.673939e-04
## [21,]  3.578480e-04
## [22,]  2.742162e-04
## [23,]  2.020795e-04
## [24,]  8.622036e-05
## [25,]  1.128205e-04
## 
## $d2ltp
##               d2ltp
##  [1,]  2.981858e-03
##  [2,] -1.148735e-03
##  [3,]  6.139668e-04
##  [4,]  2.354788e-04
##  [5,]  1.371542e-03
##  [6,]  8.809958e-04
##  [7,]  2.646736e-04
##  [8,]  6.129495e-04
##  [9,]  3.976503e-04
## [10,]  7.124724e-04
## [11,]  2.139642e-04
## [12,]  3.236923e-04
## [13,]  6.294458e-04
## [14,]  2.901447e-04
## [15,]  3.312137e-04
## [16,]  5.920055e-05
## [17,]  2.837938e-04
## [18,]  3.003264e-04
## [19,]  2.677017e-04
## [20,]  1.682341e-04
## [21,]  9.753575e-05
## [22,]  1.920340e-04
## [23,]  1.425934e-04
## [24,]  1.415729e-04
## [25,]  1.744745e-04

Para graficar el impulso respuesta este se obtiene con el código siguiente y se muestra en la Gráfica 4.

Se puede ir graficando las demás variables se repite el proceso para cada variable que se encuentra en el modelo VAR.

plot(var1_irflp)

De los anteriores graficos, se puede observar que ante un shock de la misma inflacion causa sobre la inflacion un impacto positivo y al sexto mes el impacto se desvanece retornando a su equilibrio estacionario, al igual que ante un shock de la liquidez del sistema financiero, impacta en promedio positivamente sobre el IPC del Peru y tiene una duracion de 15 meses, la cual es mas provechosa para la politica monetaria.

var1_irflm2<-irf(var1, response="d2ltm2", n.ahead=48, boot=TRUE)
head(var1_irflm2)
## $irf
## $irf$d2ltm2
##              d2ltm2
##  [1,]  1.689251e-02
##  [2,] -1.051739e-02
##  [3,] -5.296775e-04
##  [4,] -1.900563e-03
##  [5,] -1.912042e-03
##  [6,]  5.580917e-03
##  [7,] -2.290610e-03
##  [8,]  2.578102e-03
##  [9,] -1.309536e-03
## [10,] -2.319365e-03
## [11,]  8.582436e-04
## [12,] -7.585764e-04
## [13,]  2.609648e-03
## [14,] -1.752565e-04
## [15,] -9.867023e-04
## [16,] -4.206184e-04
## [17,] -7.947128e-04
## [18,]  1.292997e-03
## [19,]  1.884538e-04
## [20,]  8.290276e-05
## [21,] -2.508157e-04
## [22,] -6.371556e-04
## [23,]  2.846961e-04
## [24,]  1.671163e-05
## [25,]  3.517454e-04
## [26,]  6.041291e-05
## [27,] -2.687377e-04
## [28,] -5.826628e-05
## [29,] -1.559340e-04
## [30,]  2.004667e-04
## [31,]  1.249085e-04
## [32,] -7.382118e-06
## [33,] -4.226895e-05
## [34,] -1.555269e-04
## [35,]  3.333954e-05
## [36,]  4.783504e-05
## [37,]  6.300492e-05
## [38,]  2.429930e-05
## [39,] -7.085409e-05
## [40,] -2.255371e-05
## [41,] -1.855855e-05
## [42,]  3.475069e-05
## [43,]  3.689485e-05
## [44,] -6.062141e-06
## [45,] -1.121530e-05
## [46,] -3.090637e-05
## [47,]  1.034242e-06
## [48,]  1.613868e-05
## [49,]  1.266314e-05
## 
## $irf$d2ltp
##              d2ltm2
##  [1,]  0.000000e+00
##  [2,] -1.534084e-03
##  [3,] -2.520783e-04
##  [4,]  7.599553e-05
##  [5,]  5.532785e-03
##  [6,] -4.557105e-03
##  [7,]  1.519762e-04
##  [8,] -1.654937e-03
##  [9,]  9.820974e-04
## [10,]  2.866279e-03
## [11,] -2.062434e-03
## [12,]  6.769704e-04
## [13,] -1.454669e-03
## [14,]  3.330569e-04
## [15,]  8.630424e-04
## [16,] -5.473181e-04
## [17,]  8.431994e-04
## [18,] -7.554563e-04
## [19,]  1.203231e-06
## [20,] -3.822356e-05
## [21,] -1.496636e-04
## [22,]  6.079099e-04
## [23,] -2.354679e-04
## [24,]  4.250813e-05
## [25,] -2.189233e-04
## [26,] -1.144081e-04
## [27,]  2.663365e-04
## [28,] -3.921200e-05
## [29,]  1.185347e-04
## [30,] -1.256450e-04
## [31,] -8.167296e-05
## [32,]  4.870000e-05
## [33,] -2.182976e-05
## [34,]  1.066606e-04
## [35,] -2.779445e-05
## [36,] -2.307098e-05
## [37,] -2.002379e-05
## [38,] -3.526917e-05
## [39,]  5.141687e-05
## [40,]  5.227499e-06
## [41,]  1.436152e-05
## [42,] -1.503019e-05
## [43,] -2.856057e-05
## [44,]  1.015384e-05
## [45,]  1.050813e-06
## [46,]  1.944443e-05
## [47,] -2.873298e-08
## [48,] -1.120314e-05
## [49,] -3.438269e-06
## 
## 
## $Lower
## $Lower$d2ltm2
##              d2ltm2
##  [1,]  1.221943e-02
##  [2,] -1.339063e-02
##  [3,] -4.130644e-03
##  [4,] -5.240421e-03
##  [5,] -6.206010e-03
##  [6,] -6.828475e-05
##  [7,] -5.274193e-03
##  [8,] -1.056421e-03
##  [9,] -4.072804e-03
## [10,] -5.778940e-03
## [11,] -2.021828e-03
## [12,] -3.150514e-03
## [13,] -1.886841e-04
## [14,] -2.268099e-03
## [15,] -3.385013e-03
## [16,] -1.909974e-03
## [17,] -2.360762e-03
## [18,] -6.414076e-04
## [19,] -1.457529e-03
## [20,] -1.652383e-03
## [21,] -1.663370e-03
## [22,] -2.153104e-03
## [23,] -1.004170e-03
## [24,] -1.062585e-03
## [25,] -8.973052e-04
## [26,] -1.010707e-03
## [27,] -1.398264e-03
## [28,] -9.015619e-04
## [29,] -1.015711e-03
## [30,] -5.649598e-04
## [31,] -4.041557e-04
## [32,] -7.403786e-04
## [33,] -9.547766e-04
## [34,] -8.605394e-04
## [35,] -4.948691e-04
## [36,] -4.000353e-04
## [37,] -3.889820e-04
## [38,] -4.650566e-04
## [39,] -5.494471e-04
## [40,] -4.663456e-04
## [41,] -4.252656e-04
## [42,] -2.238303e-04
## [43,] -2.989517e-04
## [44,] -3.300909e-04
## [45,] -4.106917e-04
## [46,] -3.503526e-04
## [47,] -2.308599e-04
## [48,] -2.629666e-04
## [49,] -1.875536e-04
## 
## $Lower$d2ltp
##              d2ltm2
##  [1,]  0.0000000000
##  [2,] -0.0049017664
##  [3,] -0.0054827807
##  [4,] -0.0041400165
##  [5,] -0.0001466215
##  [6,] -0.0086602935
##  [7,] -0.0034572244
##  [8,] -0.0045344368
##  [9,] -0.0024759683
## [10,] -0.0003387538
## [11,] -0.0047970410
## [12,] -0.0020399108
## [13,] -0.0033568047
## [14,] -0.0016428328
## [15,] -0.0015080839
## [16,] -0.0023986414
## [17,] -0.0009813404
## [18,] -0.0020856206
## [19,] -0.0015761333
## [20,] -0.0014485031
## [21,] -0.0015969778
## [22,] -0.0005413980
## [23,] -0.0011922311
## [24,] -0.0012106164
## [25,] -0.0009921302
## [26,] -0.0010287256
## [27,] -0.0004772107
## [28,] -0.0007323587
## [29,] -0.0006297370
## [30,] -0.0009186609
## [31,] -0.0007788669
## [32,] -0.0004711794
## [33,] -0.0004713638
## [34,] -0.0002820824
## [35,] -0.0004649440
## [36,] -0.0005894338
## [37,] -0.0004848150
## [38,] -0.0003565495
## [39,] -0.0002918272
## [40,] -0.0001963185
## [41,] -0.0003407665
## [42,] -0.0004080174
## [43,] -0.0003507566
## [44,] -0.0002436705
## [45,] -0.0001675368
## [46,] -0.0001711248
## [47,] -0.0002402154
## [48,] -0.0002685992
## [49,] -0.0002472889
## 
## 
## $Upper
## $Upper$d2ltm2
##              d2ltm2
##  [1,]  0.0193598151
##  [2,] -0.0049772683
##  [3,]  0.0032250179
##  [4,]  0.0017050128
##  [5,]  0.0019141042
##  [6,]  0.0094665029
##  [7,]  0.0006951421
##  [8,]  0.0049028672
##  [9,]  0.0033104121
## [10,]  0.0001518885
## [11,]  0.0040982099
## [12,]  0.0020979874
## [13,]  0.0047763131
## [14,]  0.0025156137
## [15,]  0.0010041120
## [16,]  0.0019407630
## [17,]  0.0014922299
## [18,]  0.0026541028
## [19,]  0.0016246722
## [20,]  0.0014150160
## [21,]  0.0014223183
## [22,]  0.0004365412
## [23,]  0.0016165371
## [24,]  0.0013600147
## [25,]  0.0015658259
## [26,]  0.0014458306
## [27,]  0.0005724443
## [28,]  0.0007186555
## [29,]  0.0007458104
## [30,]  0.0012579970
## [31,]  0.0009270752
## [32,]  0.0004932179
## [33,]  0.0005089033
## [34,]  0.0003241775
## [35,]  0.0008109138
## [36,]  0.0008061272
## [37,]  0.0007546466
## [38,]  0.0003954265
## [39,]  0.0002904708
## [40,]  0.0003111601
## [41,]  0.0004907757
## [42,]  0.0006406910
## [43,]  0.0004331107
## [44,]  0.0002841047
## [45,]  0.0001849683
## [46,]  0.0002610544
## [47,]  0.0003654333
## [48,]  0.0002982458
## [49,]  0.0003338656
## 
## $Upper$d2ltp
##             d2ltm2
##  [1,] 0.0000000000
##  [2,] 0.0019716542
##  [3,] 0.0038716540
##  [4,] 0.0045015285
##  [5,] 0.0102444729
##  [6,] 0.0012256039
##  [7,] 0.0034775212
##  [8,] 0.0013996196
##  [9,] 0.0041733680
## [10,] 0.0054039258
## [11,] 0.0006908314
## [12,] 0.0033391481
## [13,] 0.0007608864
## [14,] 0.0023322720
## [15,] 0.0028962386
## [16,] 0.0012535081
## [17,] 0.0026498464
## [18,] 0.0008786890
## [19,] 0.0018800272
## [20,] 0.0014686026
## [21,] 0.0013438492
## [22,] 0.0021318437
## [23,] 0.0008559807
## [24,] 0.0010008234
## [25,] 0.0007679997
## [26,] 0.0007127552
## [27,] 0.0012417075
## [28,] 0.0007948627
## [29,] 0.0006498553
## [30,] 0.0005656160
## [31,] 0.0006264902
## [32,] 0.0007441963
## [33,] 0.0006815542
## [34,] 0.0004567317
## [35,] 0.0003814260
## [36,] 0.0003512290
## [37,] 0.0004345245
## [38,] 0.0003816308
## [39,] 0.0004450275
## [40,] 0.0003607298
## [41,] 0.0003459298
## [42,] 0.0003674770
## [43,] 0.0001594761
## [44,] 0.0002543777
## [45,] 0.0003161383
## [46,] 0.0002444793
## [47,] 0.0002150098
## [48,] 0.0001594937
## [49,] 0.0001203317
## 
## 
## $response
## [1] "d2ltm2"
## 
## $impulse
## [1] "d2ltm2" "d2ltp" 
## 
## $ortho
## [1] TRUE
plot(var1_irflm2)

De los anteriores graficos, se puede observar que ante un shock de la misma liquidez causa sobre la inflacion un impacto positivo y al sexto mes el impacto se desvanece retornando a su equilibrio estacionario, al igual que ante un shock de la liquidez del sistema financiero, impacta en promedio positivamente sobre el IPC del Peru y tiene una duracion de 15 meses, la cual es mas provechosa para la politica monetaria.

Por último, se utiliza el siguiente código para obtener el análisis de la descomposición de varianza que se presenta en las Tabla 13 y 14.

var1_fevd_d2lp<-fevd(var1, n.ahead=50)$d2ltp
var1_fevd_d2lp
##           d2ltm2     d2ltp
##  [1,] 0.02586873 0.9741313
##  [2,] 0.08100855 0.9189915
##  [3,] 0.08100794 0.9189921
##  [4,] 0.15890154 0.8410985
##  [5,] 0.15274834 0.8472517
##  [6,] 0.15931303 0.8406870
##  [7,] 0.17436329 0.8256367
##  [8,] 0.17436183 0.8256382
##  [9,] 0.19670701 0.8032930
## [10,] 0.19615056 0.8038494
## [11,] 0.19617844 0.8038216
## [12,] 0.19998014 0.8000199
## [13,] 0.19963883 0.8003612
## [14,] 0.20126771 0.7987323
## [15,] 0.20126530 0.7987347
## [16,] 0.20136782 0.7986322
## [17,] 0.20154957 0.7984504
## [18,] 0.20152740 0.7984726
## [19,] 0.20155443 0.7984456
## [20,] 0.20161721 0.7983828
## [21,] 0.20193804 0.7980620
## [22,] 0.20195933 0.7980407
## [23,] 0.20195418 0.7980458
## [24,] 0.20205336 0.7979466
## [25,] 0.20214321 0.7978568
## [26,] 0.20218942 0.7978106
## [27,] 0.20221118 0.7977888
## [28,] 0.20223590 0.7977641
## [29,] 0.20224568 0.7977543
## [30,] 0.20227489 0.7977251
## [31,] 0.20227501 0.7977250
## [32,] 0.20227459 0.7977254
## [33,] 0.20228872 0.7977113
## [34,] 0.20228944 0.7977106
## [35,] 0.20229029 0.7977097
## [36,] 0.20229237 0.7977076
## [37,] 0.20229559 0.7977044
## [38,] 0.20229668 0.7977033
## [39,] 0.20229808 0.7977019
## [40,] 0.20229902 0.7977010
## [41,] 0.20229911 0.7977009
## [42,] 0.20230101 0.7976990
## [43,] 0.20230112 0.7976989
## [44,] 0.20230115 0.7976988
## [45,] 0.20230191 0.7976981
## [46,] 0.20230206 0.7976979
## [47,] 0.20230219 0.7976978
## [48,] 0.20230236 0.7976976
## [49,] 0.20230249 0.7976975
## [50,] 0.20230254 0.7976975
var1_fevd_d2lm2<-fevd(var1, n.ahead=50)$d2ltm2
var1_fevd_d2lm2
##          d2ltm2       d2ltp
##  [1,] 1.0000000 0.000000000
##  [2,] 0.9940917 0.005908262
##  [3,] 0.9939374 0.006062551
##  [4,] 0.9939776 0.006022384
##  [5,] 0.9243293 0.075670672
##  [6,] 0.8898566 0.110143356
##  [7,] 0.8909855 0.109014506
##  [8,] 0.8875755 0.112424532
##  [9,] 0.8862641 0.113735880
## [10,] 0.8734237 0.126576326
## [11,] 0.8665166 0.133483387
## [12,] 0.8659070 0.134092998
## [13,] 0.8641870 0.135813040
## [14,] 0.8640154 0.135984586
## [15,] 0.8630621 0.136937876
## [16,] 0.8626255 0.137374462
## [17,] 0.8616469 0.138353132
## [18,] 0.8611648 0.138835205
## [19,] 0.8611739 0.138826081
## [20,] 0.8611734 0.138826644
## [21,] 0.8611538 0.138846178
## [22,] 0.8606699 0.139330080
## [23,] 0.8606026 0.139397374
## [24,] 0.8605998 0.139400175
## [25,] 0.8605555 0.139444496
## [26,] 0.8605356 0.139464357
## [27,] 0.8604415 0.139558460
## [28,] 0.8604400 0.139560027
## [29,] 0.8604239 0.139576081
## [30,] 0.8604092 0.139590800
## [31,] 0.8604026 0.139597374
## [32,] 0.8603989 0.139601127
## [33,] 0.8603986 0.139601423
## [34,] 0.8603867 0.139613257
## [35,] 0.8603858 0.139614197
## [36,] 0.8603855 0.139614453
## [37,] 0.8603859 0.139614066
## [38,] 0.8603841 0.139615889
## [39,] 0.8603812 0.139618794
## [40,] 0.8603813 0.139618706
## [41,] 0.8603811 0.139618945
## [42,] 0.8603810 0.139618993
## [43,] 0.8603801 0.139619937
## [44,] 0.8603799 0.139620091
## [45,] 0.8603799 0.139620061
## [46,] 0.8603796 0.139620415
## [47,] 0.8603796 0.139620415
## [48,] 0.8603795 0.139620547
## [49,] 0.8603795 0.139620524
## [50,] 0.8603794 0.139620581
plot(var1_fevd_d2lm2)