compute_regime_probabilities {bsvars}R Documentation

Computes posterior draws of regime probabilities

Description

Each of the draws from the posterior estimation of a model is transformed into a draw from the posterior distribution of the regime probabilities. These represent either the realisations of the regime indicators, when type = "realized", filtered probabilities, when type = "filtered", forecasted regime probabilities, when type = "forecasted", or the smoothed probabilities, when type = "smoothed", .

Usage

compute_regime_probabilities(
  posterior,
  type = c("realized", "filtered", "forecasted", "smoothed")
)

Arguments

posterior

posterior estimation outcome of regime-dependent heteroskedastic models - an object of either of the classes: PosteriorBSVARMSH, or PosteriorBSVARMIX obtained by running the estimate function.

type

one of the values "realized", "filtered", "forecasted", or "smoothed" denoting the type of probabilities to be computed.

Value

An object of class PosteriorRegimePr, that is, an MxTxS array with attribute PosteriorRegimePr containing S draws of the regime probabilities.

Author(s)

Tomasz Woźniak wozniak.tom@pm.me

References

Song, Y., and Woźniak, T., (2021) Markov Switching. Oxford Research Encyclopedia of Economics and Finance, Oxford University Press, doi:10.1093/acrefore/9780190625979.013.174.

See Also

estimate, normalise_posterior

Examples

# upload data
data(us_fiscal_lsuw)

# specify the model and set seed
set.seed(123)
specification  = specify_bsvar_msh$new(us_fiscal_lsuw, p = 2, M = 2)

# run the burn-in
burn_in        = estimate(specification, 10)

# estimate the model
posterior      = estimate(burn_in, 50)

# compute the posterior draws of realized regime indicators
regimes        = compute_regime_probabilities(posterior)

# compute the posterior draws of filtered probabilities
filtered       = compute_regime_probabilities(posterior, "filtered")

# workflow with the pipe |>
############################################################
set.seed(123)
us_fiscal_lsuw |>
  specify_bsvar_msh$new(p = 1, M = 2) |>
  estimate(S = 10) |> 
  estimate(S = 50) -> posterior
regimes        = compute_regime_probabilities(posterior)
filtered       = compute_regime_probabilities(posterior, "filtered")


[Package bsvars version 2.1.0 Index]