forecast.PosteriorBSVARMIX {bsvars} | R Documentation |
Forecasting using Structural Vector Autoregression
Description
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.
Usage
## S3 method for class 'PosteriorBSVARMIX'
forecast(
posterior,
horizon = 1,
exogenous_forecast = NULL,
conditional_forecast = NULL
)
Arguments
posterior |
posterior estimation outcome - an object of class
|
horizon |
a positive integer, specifying the forecasting horizon. |
exogenous_forecast |
a matrix of dimension |
conditional_forecast |
a |
Value
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
NxT
matrix with the data on dependent variables
Author(s)
Tomasz Woźniak wozniak.tom@pm.me
Examples
# upload data
data(us_fiscal_lsuw)
# specify the model and set seed
set.seed(123)
specification = specify_bsvar_mix$new(us_fiscal_lsuw, p = 1, M = 2)
# run the burn-in
burn_in = estimate(specification, 10)
# estimate the model
posterior = estimate(burn_in, 20)
# sample from predictive density 1 year ahead
predictive = forecast(posterior, 4)
# workflow with the pipe |>
############################################################
set.seed(123)
us_fiscal_lsuw |>
specify_bsvar_mix$new(p = 1, M = 2) |>
estimate(S = 10) |>
estimate(S = 20) |>
forecast(horizon = 4) -> predictive
# conditional forecasting 2 quarters ahead conditioning on
# provided future values for the Gross Domestic Product
############################################################
cf = matrix(NA , 2, 3)
cf[,3] = tail(us_fiscal_lsuw, 1)[3] # conditional forecasts equal to the last gdp observation
predictive = forecast(posterior, 2, conditional_forecast = cf)
# workflow with the pipe |>
############################################################
set.seed(123)
us_fiscal_lsuw |>
specify_bsvar_mix$new(p = 1, M = 2) |>
estimate(S = 10) |>
estimate(S = 20) |>
forecast(horizon = 2, conditional_forecast = cf) -> predictive