Estimation of hierarchical Bayesian vector autoregressive models following Kuschnig & Vashold (2021). Implements hierarchical prior selection for conjugate priors in the fashion of Giannone, Lenza & Primiceri (2015). Functions to calculate forecasts, and compute and identify impulse responses and forecast error variance decompositions are available. Several methods to print, plot and summarise results facilitate analysis.

**BVAR** is available on CRAN. The development version can be installed from GitHub.

The main function to perform hierarchical Bayesian VAR estimation is `bvar()`

. Calls can be customised with regard to the sampling (e.g. via `n_draw`

, or see `bv_mh()`

) or with regard to the priors (see `bv_priors()`

). Forecasts and impulse responses can be computed at runtime, or afterwards (see `predict()`

and `irf()`

). Identification of sign restrictions can be achieved recursively, via sign restrictions, or via zero and sign restrictions.

Analysis is facilitated by a variety of standard methods. The default `plot()`

method provides trace and density plots of hyperparameters and optionally coefficients. Impulse responses and forecasts can easily be assessed with the provided `plot()`

methods. Other available methods include `summary()`

, `fitted()`

, `residuals()`

, `coef()`

, `vcov()`

and `density()`

. Note that **BVAR** generates draws from the posterior – all methods include functionality to access this distributional information. Information can be obtained directly or more conveniently using the **BVARverse** package.

**BVAR** comes with the FRED-MD and FRED-QD datasets (McCracken and Ng, 2016). They can be accessed using `data("fred_md")`

or `data("fred_qd")`

respectively. The dataset is licensed under a modified ODC-BY 1.0 license, that is available in the provided *LICENSE* file.

```
# Load the package
library("BVAR")
# Access a subset of the fred_qd dataset
data <- fred_qd[, c("GDPC1", "CPIAUCSL", "UNRATE", "FEDFUNDS")]
# Transform it to be stationary
data <- fred_transform(data, codes = c(5, 5, 5, 1), lag = 4)
# Estimate using default priors and MH step
x <- bvar(data, lags = 1)
# Check convergence via trace and density plots
plot(x)
# Calculate and store forecasts and impulse responses
predict(x) <- predict(x, horizon = 20)
irf(x) <- irf(x, horizon = 20, identification = TRUE)
# Plot forecasts and impulse responses
plot(predict(x))
plot(irf(x))
```

Nikolas Kuschnig and Lukas Vashold (2021). BVAR: Bayesian Vector Autoregressions with Hierarchical Prior Selection in R. *Journal of Statistical Software*, 14, 1-27, DOI: 10.18637/jss.v100.i14.

Domenico Giannone, Michele Lenza and Giorgio E. Primiceri (2015). Prior Selection for Vector Autoregressions. *The Review of Economics and Statistics*, 97:2, 436-451, DOI: 10.1162/REST_a_00483.

Michael W. McCracken and Serena Ng (2016). FRED-MD: A Monthly Database for Macroeconomic Research. *Journal of Business & Economic Statistics*, 34:4, 574-589, DOI: 10.1080/07350015.2015.1086655.