forecast function

Forecasting using Structural Vector Autoregression

Forecasting using Structural Vector Autoregression

Samples from the joint predictive density of all of the dependent variables for models from packages bsvars, bsvarSIGNs or bvarPANELs at forecast horizons from 1 to horizon specified as an argument of the function.

forecast(posterior, horizon = 1, exogenous_forecast, conditional_forecast)

Arguments

  • posterior: posterior estimation outcome obtained by running the estimate function.
  • horizon: a positive integer, specifying the forecasting horizon.
  • exogenous_forecast: forecasted values of the exogenous variables.
  • conditional_forecast: forecasted values for selected variables.

Returns

A list of class Forecasts containing the draws from the predictive density and for heteroskedastic models the draws from the predictive density of structural shocks conditional standard deviations and data. The output elements include:

  • forecasts: an NxTxS array with the draws from predictive density
  • forecasts_sigma: provided only for heteroskedastic models, an NxTxS array with the draws from the predictive density of structural shocks conditional standard deviations
  • Y: an NxTNxT matrix with the data on dependent variables

Examples

# upload data data(us_fiscal_lsuw) # specify the model and set seed set.seed(123) specification = specify_bsvar$new(us_fiscal_lsuw, p = 1) # run the burn-in burn_in = estimate(specification, 5) # estimate the model posterior = estimate(burn_in, 10) # sample from predictive density 1 year ahead predictive = forecast(posterior, 4) # workflow with the pipe |> ############################################################ set.seed(123) us_fiscal_lsuw |> specify_bsvar$new(p = 1) |> estimate(S = 5) |> estimate(S = 10) |> forecast(horizon = 4) -> predictive # conditional forecasting using a model with exogenous variables ############################################################ data(us_fiscal_ex_forecasts) # upload exogenous variables future values data(us_fiscal_cond_forecasts) # upload a matrix with projected ttr #' set.seed(123) specification = specify_bsvar$new(us_fiscal_lsuw, p = 1, exogenous = us_fiscal_ex) burn_in = estimate(specification, 5) posterior = estimate(burn_in, 10) # forecast 2 years ahead predictive = forecast( posterior, horizon = 8, exogenous_forecast = us_fiscal_ex_forecasts, conditional_forecast = us_fiscal_cond_forecasts ) summary(predictive) # workflow with the pipe |> ############################################################ set.seed(123) us_fiscal_lsuw |> specify_bsvar$new(p = 1, exogenous = us_fiscal_ex) |> estimate(S = 5) |> estimate(S = 10) |> forecast( horizon = 8, exogenous_forecast = us_fiscal_ex_forecasts, conditional_forecast = us_fiscal_cond_forecasts ) |> plot()

Author(s)

Tomasz Woźniak wozniak.tom@pm.me

  • Maintainer: Tomasz Woźniak
  • License: GPL (>= 3)
  • Last published: 2024-10-24