forecast: Generate forecasts for fitted VAR objects

Description Usage Arguments Details Value Note Author(s) References See Also Examples

Description

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

Usage

1
2
3
4
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

varobj

Fitted VAR model of the class VAR, BVAR, BSVAR, or MSBVAR produced by reduced.form.var, szbvar, szbsvar or gibbs.msbvar.

nsteps

Number of periods in the forecast horizon

A0

m x m matrix of the decomposition of the contemporaneous endogenous forecast innovations for BSVAR models.

shocks

Structural shocks to the VAR, BVAR, or BSVAR models. These must be scaled consistent with the structural identification in A(0).

exog.fut

nsteps x number of exogenous variables matrix of the future values of exogenous variable shocks. Only implemented for VAR, BVAR, and BSVAR models at present.

N1

integer, number of burnin draws for the MSBVAR forecasts.

N2

integer, number of final posterior draws for MSBVAR 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.

Value

For VAR, BVAR, and BSVAR models:

A matrix time series object, (T + nsteps) x m of the original series and forecasts.

For MSBVAR models, a list of 4 elements:

forecasts

N2 x nsteps x m array of the posterior forecasts.

ss.sample

bit compressed version of the MS state space. (can be summarized with plot.SS or mean.SS.)

k

number of forecast steps, nsteps

h

integer, number of MS regimes used in the forecasts.

Note

The forecasts can be plotted using the plot.forecast() command to select the appropriate sample-forecast horizon.

Author(s)

Patrick T. Brandt

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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"))


## Not run: 
# MSBVAR forecasts

# Fit model
m1 <- msbvar(Y.sample1, p=1, h=2, lambda0=0.8, lambda1=0.2,
             lambda3=1, lambda4=0.2, lambda5=0, mu5=0, mu6=0,
             qm=12, prior=0)

# Gibbs sampling
m1id <- gibbs.msbvar(m1, N1=1000, N2=10000, permute=FALSE, Sigma.idx=1)

# Forecast density estimation
msforc <- forecast(m1id, nsteps=nrow(Y.sample2), N1=1000, N2=10000)

# Summarize forecasts
apply(msforc$forecasts, c(2,3), mean)


## End(Not run)

MSBVAR documentation built on May 30, 2017, 1:23 a.m.

Related to forecast in MSBVAR...