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.
- Other R Code:
- Montgomery and Nyhan have developed an R package that applies and extends the R package BAS
- P. Hofmarcher and M. Moser have a nice BMS variant that includes tessalation and dilution model priors
- Matlab (Octave):
- 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_g
function that provides some basic BMA functionality - The matlab code
chapter11.m
from Gary Koop's book 'Bayesian Econometrics' provides a basic implementation in Matlab for the application in Fernández, Ley and Steel (2001): Model uncertainty in cross-country growth regressions (JAE) - Magnus, Powell and Prüfer provide Matlab code for their 'weighted-average least squares'. This method is related to BMA but differs from most other implementations in theory and practice.
- Gretl:
- A BMA package for Gretl (based on g-priors and MCMC, including jointness indicators) has been implemented by Marcin Blazejowski and Jacek Kwiatkowski.
- 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:
- Marcin Blazejowski discusses a BMA package for gretl.
- 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