a <- VARselect(uschange[,c(2,5)], lag.max=15,type="const")
a$selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 8 1 1 8
Luedo de varias pruebas, se toma el valor de parametro 5 para realizar el modelo, utilizando las variables 2(ingreso) y 5(desempleo) para la creación de dicho modelo.
modelo1<-VAR(uschange[,c(2,5)],p=5,type=c("const"))
Se realiza la Prueba de Granger para determinar la causalidad entre las variables del modelo.
GrangerIncome <-causality(modelo1, cause = 'Income')
GrangerIncome
## $Granger
##
## Granger causality H0: Income do not Granger-cause Unemployment
##
## data: VAR object modelo1
## F-Test = 2.8057, df1 = 5, df2 = 342, p-value = 0.01687
##
##
## $Instant
##
## H0: No instantaneous causality between: Income and Unemployment
##
## data: VAR object modelo1
## Chi-squared = 6.7734, df = 1, p-value = 0.009253
GrangerUnemployment <-causality(modelo1, cause = 'Unemployment')
GrangerUnemployment
## $Granger
##
## Granger causality H0: Unemployment do not Granger-cause Income
##
## data: VAR object modelo1
## F-Test = 3.7264, df1 = 5, df2 = 342, p-value = 0.002681
##
##
## $Instant
##
## H0: No instantaneous causality between: Unemployment and Income
##
## data: VAR object modelo1
## Chi-squared = 6.7734, df = 1, p-value = 0.009253
Income y Unemployment presentan la mejor pareja de variables para formar un modelo funcional y pronosticable, esto determinado a partir de la Prueba de Granger, ya que los p-valor son menores a 0.05
serial.test(modelo1, lags.pt=10, type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 31.773, df = 20, p-value = 0.04577
Luego de realizar el Test de PortManteu, se determinó que no existe Autocorrelación en el modelo ya que el p-valor es menor a 0.05
normality.test(modelo1, multivariate.only=FALSE)
## $Income
##
## JB-Test (univariate)
##
## data: Residual of Income equation
## Chi-squared = 195.51, df = 2, p-value < 2.2e-16
##
##
## $Unemployment
##
## JB-Test (univariate)
##
## data: Residual of Unemployment equation
## Chi-squared = 33.197, df = 2, p-value = 6.184e-08
##
##
## $JB
##
## JB-Test (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 216.79, df = 4, p-value < 2.2e-16
##
##
## $Skewness
##
## Skewness only (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 7.8916, df = 2, p-value = 0.01934
##
##
## $Kurtosis
##
## Kurtosis only (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 208.9, df = 2, p-value < 2.2e-16
Con la prueba de Jarque Bera se determina que el modelo planteado posee normalidad ya que los p-valor son menores a 0.05
arch<-arch.test(modelo1, lags.multi = 12, multivariate.only = FALSE)
arch
## $Income
##
## ARCH test (univariate)
##
## data: Residual of Income equation
## Chi-squared = 11.621, df = 16, p-value = 0.7697
##
##
## $Unemployment
##
## ARCH test (univariate)
##
## data: Residual of Unemployment equation
## Chi-squared = 21.391, df = 16, p-value = 0.164
##
##
##
## ARCH (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 121.69, df = 108, p-value = 0.1737
Al realizar la prueba de heteroscedasticidad se determina que el modelo no posee heteroscedasticidad ya que los valores p son mayores a 0.05
stab<-stability(modelo1, type = "OLS-CUSUM")
par(mar=c(1,1,1,1))
plot(stab)
UnemploymentIRF <- irf(modelo1, impulse = "Income", response="Unemployment", n.ahead = 30, boot = T )
plot(UnemploymentIRF, ylab = "Unemployment", main = "Shock desde Income")
Se puede observar en la gráfica que al realizar una prueba de impulso al Desempleo desde la variable Ingreso, esta se estabiliza con el tiempo a partir del año 20.
IncomeIRF <- irf(modelo1, impulse = "Unemployment", response="Income", n.ahead = 30, boot = T )
plot(IncomeIRF, ylab = "Income", main = "Shock desde Unemployment")
Se puede observar en la gráfica que al realizar una prueba de impulso al Ingreso desde la variable Desempleo, esta se estabiliza con el tiempo a partir del año 20.
FEVD1 <- fevd(modelo1, n.ahead = 10)
plot(FEVD1)
Al realizar la predicción del modelo a un nivel de confianza de 95% se obtiene que presenta un pronostico adaptado al modelo y que representa la probabilidad dedl comportamiento de las variables estudiadas en un plazo futuro.
fore<-predict(modelo1, n.ahead = 10, ci=0.95)
fanchart(fore)
Se puede observar en ambos gráficos el comportamiento predictivo del modelo VAR.
autoplot(forecast(modelo1))