library(fpp2)
library(TSA)

#Cargar datos
series<-uschange
autoplot(uschange[,c(2,5)])
series
#plot de serie de datos
ts.plot(series[,c(2,5)], xlab="Tiempo",col=c(1,2))

a <- VARselect(uschange[,c(2,5)], lag.max=15,type="const")
a$selection

modelo1<-VAR(uschange[,c(2,5)],p=5,type=c("const"))

summary(modelo1,equation="Income")
summary(modelo1,equation="Unemployment")

GrangerIncome <-causality(modelo1, cause = 'Income')
GrangerIncome
GrangerUnemployment <-causality(modelo1, cause = 'Unemployment')
GrangerUnemployment

serial.test(modelo1, lags.pt=10, type="PT.asymptotic")
normality.test(modelo1, multivariate.only=FALSE)
arch<-arch.test(modelo1, lags.multi = 12, multivariate.only = FALSE)
arch

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")

IncomeIRF <- irf(modelo1,  impulse = "Unemployment", response="Income", n.ahead = 30, boot = T )
plot(IncomeIRF, ylab = "Income", main = "Shock desde Unemployment")

FEVD1 <- fevd(modelo1, n.ahead = 10)
plot(FEVD1)

fore<-predict(modelo1, n.ahead = 10, ci=0.95)
fanchart(fore)

modelo1$varresult$Income$coefficients
modelo1$varresult$Unemployment$coefficients
autoplot(forecast(modelo1))


#El modelo generado VAR con p=5 y se llevo a cabo también pruebas de causalidad 
#de Granger para ambas variables,asimismo, se realizan pruebas de serialidad, normalidad 
#y heterocedasticidad para evaluar la validez del modelo.
#Los gráficos generados para poder visualizar la estabilidad del modelo y las funciones 
#de respuesta al impulso. se realizan pronósticos de 10 periodos con un 
#intervalo de confianza del 95%, se obtienen los coeficientes del modelo y se grafica 
#el pronóstico de la serie usando la función "autoplot".

#En conclusión, el análisis que se llevo a cabo muestra que el proceso de ajuste, evaluación y 
#pronóstico de un modelo VAR con dos variables. Los resultados que se lograron otener permiten 
#analizar la relación entre "Income" y "Unemployment" y realizar pronósticos de 
#corto plazo para ambas variables.