Web Resources for Bayesian Model Averaging (BMA):
Software and Introductions
This page is intended to provide an overview for newcomers to BMA applications - in particular where to find introductory material and software.
What this page is not: The information below aims precisely NOT to be an academic reference.
It focuses on 'standard' BMA with linear models and model sampling and does hardly consider the rarer variants of BMA.
Moreover the lists below are certainly not exhaustive. Please contact us if you feel we have omitted an important resource.
Contents:
- Free Bayesian Model Averaging Software
- Introductory Material for BMA Newbies
- Personal Sites with Useful Information
Free Bayesian Model Averaging Software
The following provides a tentative overview over linear BMA computer code that is available online.
- R packages:
- The R package BMS from this website allows for linear regression BMA with a good choice of priors and MC3 samplers, as well as post-processing functions. The tutorials on this webpage provide some illustrative introductions.
- The R package BAS, published in 2008, is the most direct competitor/equivalent to BMS: It also concentrates on linear regression, and offers modern samplers and more or less a prior and post-processing choice that is similar to BMS. Montgomery & Nyhan provide a nice BMA introduction using BAS.
- The package BMA was developed around 2000. It allows for more general fitting methods such as generalized linear models or survival models. However, it is perceived to be rather slow and quite peculiar in model sampling.
Note the article by Amini and Parmeter that compares the three R packages.
- Other R Code:
- Montgomery and Nyhan have developed an R package that applies and extends the R package BAS
- Shuai Huang has some BMA-related code extending the functionality of the R package BMA
- Matlab (Octave / SciLab):
- The BMS toolbox for Matlab provides a free interface to use the BMS package from within Matlab without 'seeing' R. Still in its beta stage and limited to Windows users.
- The Econometrics Toolbox by James P. LeSage includes a
bma_gfunction that provides some basic BMA functionality - The Grocer toolbox by E.Dubois & E.Michaux (originally written for SciLab) includes BMA functionality tailored for applications and priors as in Fernández, Ley and Steel (2001).
- The matlab code
chapter11.mfrom Gary Koop's book 'Bayesian Econometrics' implements the application of Fernández, Ley and Steel (2001): Model uncertainty in cross-country growth regressions (JAE) in Matlab. Note that his code is tailored to this single application, but its shortness provides a useful starting point for extending the routine. - Magnus, Powell and Prüfer provide Matlab code for FLS 'benchmark' BMA. However, their implementation does not provide for MCMC sampling and is therefore not suitable for cases with more than 15 variables. (Note that BMS toolbox for Matlab can emulate their routine 'bma_est'.) Moreover Magnus, Powell and Prüfer provide a routine for 'weighted-average least squares'. This method is related to BMA but differs from most other implementations in theory and practice.
- Gauss:
- Though not BMA in a strict sense, the 'BACE paper' Determinants of Long-Term Growth: A Bayesian Averaging of Classical Estimates (BACE) Approach by Sala-i-Martin, Doppelhofer and Miller (AER 2004) is based on GAUSS code, provided on Gernot Doppelhofer's website
- Fortran:
- Mark Steel provides a lot of BMA code for his publications on his webpage. The code developed by Fernández, Ley and Steel for their cross-country growth paper seems particularly popular. Note that all of this code is written for f77 and needs to be compiled before execution. Moreover note that the GNU Fortran compiler may experience some problems adapting to this f77 code.
- Stata:
- To our knowledge, there is no Stata code so far that implements BMA in a 'genuine', linear sense as the above routines do. However, Paul Millar published a Stata module that seems to do classical averaging via the BIC. Moreover, Enrique Moral has some Stata code on BMA with panels.
- Other Software:
- Gernot Doppelhofer and Melvyn Weeks are currently developing a BMA package for OxMetrics. However it is not available to the general public yet.
- Apparently there is some functionality for Bayesian combination of individual models in SAS, RATS, and in particular WinBUGS - but to our knowledge, these are limited to averaging over a handful of models, thus not allowing for large-scale BMA as the routines mentioned above.
Jennifer Hoeting lists software for BMA with more general model classes in Methodology for Bayesian Model Averaging: An Update
Introductory Material for BMA Newbies
- The most popular introduction to BMA is the brief and concise 1999 article Bayesian Model Averaging: A Tutorial, by Hoeting, Madigan, Raftery and Volinsky. It reviews the basic concept in a very accessible manner. Note there is a tutorial to reproduce the 'body fat' exercise in this article with BMS.
- The chapter on BMA in Gary Koop's book 'Bayesian Econometrics' is a very brief and illustrative introduction. The online resources for this book provide, inter alia, Matlab code for a simple BMA illustration.
- The 2001 articles by Fernández, Ley and Steel are frequently used as a reference: Model uncertainty in cross-country growth regressions (Journal of Applied Econometrics) can be regarded as a well-crafted exercise in BMA - a tutorial replicates this example with BMS in HTML or as a video tutorial.
The article Benchmark priors for Bayesian model averaging (Journal of Econometrics 100) is a more detailed research paper but its accessibility renders it popular as an introduction to BMA. - Montgomery and Nyhan: "Bayesian Model Averaging: Theoretical developments and practical applications" is a nice introduction with illustrative examples, using the R package BAS
- The tutorial Bayesian Model Averaging with BMS introduces the features of BMS together with a brief reiteration of BMA concepts. It mainly targets students with limited knowledge of BMA.
- The presentation "A brief overview of Bayesian Model Averaging" provides another introduction based on the article by Hoeting, Madigan, Raftery and Volinsky
Personal Sites with Useful Information
- Chris Volinsky's BMA homepage is the most established overview over some BMA software and articles. However, it concentrates mainly on the state of BMA on the web as it was several years ago.
- Mark Steel's webpage provides all of his BMA articles as well as the corresponding Fortran code
- Merlise Clyde provides all of her papers at her webpage
- Adrian E. Raftery provides some BMA software and code and his BMA-related papers on his website
- Gernot Doppelhofer provides his papers and some GAUSS code