Large Bayesian VAR
Python · R · Part 3 of the VAR arc
Overview
Part 3 of the VAR arc: scale. Parts 1–2 kept the VAR small (3–5 variables) so every coefficient could be read — but macroeconomists rarely believe the world is 3-dimensional, and a small VAR that omits relevant variables can mistake an omitted-variable correlation for a structural one (part of Part 2's price puzzle). The natural fix — add more variables — runs into over-parameterization: an -variable VAR with lags has coefficients, growing with the square of . The 20-variable, 4-lag FRED-QD system here has 1,620 coefficients against ~240 observations. This example reproduces Bańbura, Giannone & Reichlin's (2010) result — that the same bvar.py Minnesota shrinkage, tightened as the system grows, turns an unusable large VAR into a competitive one.
Why the big VAR needs shrinkage
The failure of a big unrestricted VAR is a bias–variance problem, not a "curse of dimensionality" (that term is reserved for costs growing exponentially in the dimension; here the coefficient count grows only quadratically, and OLS stays estimable and consistent). Least squares can fit 1,620 coefficients, but each is mostly estimation noise — and the macro series are highly collinear and near-unit-root, so the regressor matrix is badly conditioned and the noise compounds through the forecast iteration. The fix is to shrink harder as grows: the BGR rule sets the overall Minnesota tightness so that the large model's in-sample fit matches a fixed small benchmark. The R cross-check instead chooses by maximising the marginal likelihood (the fully-Bayesian route) — a completely different mechanism that lands on the same shrink-with-size pattern, confirming it is real.
Results
Unrestricted OLS breaks down as the system grows — the 20-variable OLS VAR is the worst forecaster everywhere, 1.3–1.9× the AR(4) benchmark for output and prices and a catastrophic 2.5× for the funds rate (worst exactly on the one target whose dynamics differ from the near-random-walk crowd, where the ill-conditioning bites hardest). The same 20 variables under shrinkage are competitive: swapping OLS for the BGR-tightened Minnesota prior — nothing else changes — collapses the relative RMSE to 1.0–1.4, right back into the pack with the small models. The lesson: the 1,620 coefficients are a liability or an asset depending entirely on whether they are disciplined — shrinkage, not the variable count, is what matters. Trained only through 2004, the large BVAR then tracks GDP, the deflator, and the funds rate within its 68% bands over the next two years. Cross-checked in R (the BVAR package, by marginal likelihood).
Notebooks
Downloads
References
- Bańbura, M., Giannone, D. & Reichlin, L. (2010). Large Bayesian vector auto regressions. Journal of Applied Econometrics 25(1), 71–92. — the shrink-with-size result reproduced here
- De Mol, C., Giannone, D. & Reichlin, L. (2008). Forecasting using a large number of predictors: is Bayesian shrinkage a valid alternative to principal components? Journal of Econometrics 146(2), 318–328. — shrinkage vs. factor models in high dimensions
- Koop, G. (2013). Forecasting with medium and large Bayesian VARs. Journal of Applied Econometrics 28(2), 177–203. — large-BVAR forecasting evidence
- Giannone, D., Lenza, M. & Primiceri, G. E. (2015). Prior selection for vector autoregressions. Review of Economics and Statistics 97(2), 436–451. — the marginal-likelihood tightness selection used in the R cross-check
- McCracken, M. W. & Ng, S. (2020). FRED-QD: a quarterly database for macroeconomic research. Federal Reserve Bank of St. Louis Review 103(1), 1–44. — the FRED-QD data panel