bpvars bpvars website

An R package for Forecasting with Bayesian Panel Vector Autoregressions

R-CMD-check

Provides Bayesian estimation and forecasting of dynamic panel data using Bayesian Panel Vector Autoregressions with hierarchical prior distributions. The model includes country-specific VARs that share a global prior distribution. Under this prior expected value, each country’s system follows a global VAR with country-invariant parameters. Further flexibility is provided by the hierarchical prior structure that retains the Minnesota prior interpretation for the global VAR and features estimated prior covariance matrices, shrinkage, and persistence levels. Bayesian forecasting is developed for models including exogenous variables, allowing conditional forecasts given the future trajectories of some variables and restricted forecasts assuring that rates are forecasted to stay positive and less than 100. The package implements the model specification, estimation, and forecasting routines, facilitating coherent workflows and reproducibility. Beautiful plots, informative summary functions, and extensive documentation complement all this. An extraordinary computational speed is achieved thanks to employing frontier econometric and numerical techniques and algorithms written in C++. The bpvars package is aligned regarding objects, workflows, and code structure with the R packages bsvars by Woźniak (2024) and bsvarSIGNs by Wang & Woźniak (2024), and they constitute an integrated toolset.

bsvars.org website bsvars website bsvarSIGNs website bpvars website StealLikeBayes website

Features

Forecasting with Bayesian Panel Vector Autoregressions

       Yc = Xc A + Ec          (VAR equation)
  Ec | Xc ~ MN(0, I, S)        (error term normality)

Simple workflows

Fast and efficient computations

**************************************************|
bpvars: Forecasting with Bayesian Hierarchical    |
            Panel Vector Autoregressions          |
**************************************************|
 Progress of the MCMC simulation for 10000 draws
    Every draw is saved via MCMC thinning
 Press Esc to interrupt the computations
**************************************************|
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
*************************************

This beautiful logo can be reproduced in R using this file.

bpvars website

Resources

Start your Bayesian analysis of data

The beginnings are as easy as ABC:

library(bpvars)                                     # load the package

spec = specify_bvarPANEL$new(                           # specify the model
  ilo_dynamic_panel                                     # data
)

burn = estimate(spec, S = 10000)                        # run the burn-in
post = estimate(burn, S = 10000)                        # estimate the model

fore = forecast(                                        # forecast the model 
  post,                                                 # estimation output
  horizon = 6                                           # forecast horizon
)

plot(fore, "COL", main = "Forecasts for Colombia")
summary(fore, "COL")$variable2

post |>                                                 # estimation output
  compute_variance_decompositions(horizon = 6) |>       # compute variance decompositions
  plot(which_c = "COL")                                 # plot variance decompositions

The bpvars package supports a simplified workflow using the |> pipe:

ilo_dynamic_panel |>                                    # data
  specify_bvarPANEL$new() |>                            # specify the model
  estimate(S = 10000) |>                                # run the burn-in
  estimate(S = 10000) -> post                           # estimate the model

post |> forecast(                                       # forecast the model 
  horizon = 6                                           # forecast horizon
) |> plot("COL", main = "Forecasts for Colombia")

Now, you’re ready to analyse your model and forecasts!

Installation

The first time you install the package

You must have a cpp compiler. Follow the instructions from Section 1.3. by Eddelbuettel & François (2023). In short, for Windows: install RTools, for macOS: install Xcode Command Line Tools, and for Linux: install the standard development packages.

Once that’s done:

Just open your R and install the package by running:

instal.packages("bpvars")

To install the package from its developer’s repository just type:

devtools::install_github("bsvars/bpvars")

Development

The package is under intensive development. Your help is most welcome! Please, have a look at our issues to learn what we’re working on. Thank you!

About the author

Tomasz is a Bayesian econometrician and a Senior Lecturer at the University of Melbourne. He develops methodology for empirical macroeconomic analyses and programs in R and C++ using Rcpp.