Learn R Programming

MSBVAR (version 0.7-0)

forecast: Generate forecasts for fitted VAR objects

Description

Forecasting for VAR/BVAR/BSVAR objects with structural (endogenous) and exogenous shocks.

Usage

forecast(varobj, nsteps, A0=t(chol(varobj$mean.S)),
         shocks=matrix(0, nrow=nsteps, ncol=dim(varobj$ar.coefs)[1]),
         exog.fut=matrix(0, nrow=nsteps, ncol=nrow(varobj$exog.coefs)),
         N1, N2)

Arguments

Value

For VAR, BVAR, and BSVAR models: A matrix time series object, $((T + nsteps) \times m)$ of the original series and forecasts.

For MSBVAR models, a list of 4 elements:forecasts$N2 \times nsteps \times m$ array of the posterior forecasts.ss.samplebit compressed version of the MS state space. (can be summarized with plot.SS or mean.SS.)knumber of forecast steps, nstepshinteger, number of MS regimes used in the forecasts.

Details

VAR / BVAR / BSVAR models: This function computes forecasts for the classical and Bayesian VAR models that are estimated in the MSBVAR package. Users can specify shocks to the system over the forecast horizon (both structural and exogenous shocks) for VAR, BVAR, and BSVAR models. The forecasting model is that described by Waggoner and Zha (1999) and can be used to construct unconditional forecasts based on the structural shocks and the contemporaneous decomposition of the innovation variance, A0.

MSBVAR:

Generates a set of N2 draws from the posterior forecast density. Forecasts are constructed using data augmentation, so the forecasts account for both forecast and parameter uncertainty. The function for the MSBVAR model takes as arguments varobj, which is the posterior parameters from a call to gibbs.msbvar, and N1 and N2 to set the burnin and number of draws from the posterior. The posterior forecasts are based on the mixture over the $h$ regimes for the specified model.

References

Waggoner, Daniel F. and Tao Zha. 1999. "Conditional Forecasts in Dynamic Multivariate Models" Review of Economics and Statistics, 81(4):639-651.

See Also

reduced.form.var, szbvar and szbsvar for estimation methods that create the elements needed to forecast

Examples

Run this code
data(IsraelPalestineConflict)
Y.sample1 <- window(IsraelPalestineConflict, end=c(2002, 52))
Y.sample2 <- window(IsraelPalestineConflict, start=c(2003,1))

# Fit a BVAR model
fit.bvar <- szbvar(Y.sample1, p=6, lambda0=0.6, lambda1=0.1, lambda3=2,
                   lambda4=0.25, lambda5=0, mu5=0, mu6=0, prior=0)

# Forecast -- this gives back the sample PLUS the forecasts!

forecasts <- forecast(fit.bvar, nsteps=nrow(Y.sample2))
forecasts.only <- forecasts[(nrow(Y.sample1)+1):nrow(forecasts),]

# Plot forecasts and actual data
i2p <- ts(cbind(Y.sample2[,1], forecasts.only[,1]),
          start=c(2003,1), freq=52)

p2i <- ts(cbind(Y.sample2[,2], forecasts.only[,2]),
          start=c(2003,1), freq=52)

par(mfrow=c(2,1))
plot(i2p, plot.type=c("single"))
plot(p2i, plot.type=c("single"))

# Need an example here for MSBVAR forecasts

Run the code above in your browser using DataLab