Bayesian model averaging | Vose Software

Bayesian model averaging

Bayesian Model Averaging (BMA) is a technique for amalgamating several plausible probability models fit to the same data set using Bayes Theorem .

For example , imagine one has the following observed random values:

{2.434, 2.814, 2.662, 1.419, 1.314, 3.954, 4.238, 2.521, 1.774, 1.237, 0.975}

Let’s say that we want to try fitting Lognormal and Normal distributions to these data, producing the following results in ModelRisk:


The fitted models are:



The joint likelihood (the product of the probability density of the fitted distribution evaluated for each data point) of observing these data from the fitted distributions are:

Normal: 1.09842E-07

Lognormal: 2.57535E-07

Thus the data are 2.34 times more likely to be observed from the Lognormal distribution than the Normal. Distribution fitting software usually forces the user to choose one distribution to use. However, one may not wish to eliminate the Normal distribution as a possible model. Using BMA we can weight the Lognormal as being 2.34 times more plausible than the Normal but still allow the Normal distribution as a plausible fit. This resultant BMA distribution is shown below, together with the fitted Normal and Lognormal distributions.



The above analysis assumes that we have an uninformed prior (meaning that before evaluating these data we had no preference for either distribution type). One could also incorporate a prior preference using prior weights. For example, a literature review might reveal seven occasions when a Normal distribution was used for this type of variable, and four occasions when a Lognormal variable was used. Thus, we might consider applying a weighting of {7,4} or, equivalently, {7/11, 4/11}. In fact a better, though less intuitive, prior in this case would be {(7+1)/(11+2), (4+1)/(11+2)}, using the mean of a Beta distribution applied in this fashion .

ModelRisk BMA functions

ModelRisk includes a range of BMA functions that will construct and simulate from BMA variables and includes the option to incorporate prior weightings. This model  provides some examples of their use. They are:

VoseBMA – simulates from a univariate BMA distribution

VoseBMAObject - defines a univariate BMA distribution

VoseBMAProb – calculates the (joint) relative or cumulative probability of value(s) for a univariate BMA distribution

VoseBMAProb10 – calculates log base 10 of the (joint) relative or cumulative probability of value(s) for a univariate BMA distribution

VoseCopulaBMA – simulates from a BMA copula

VoseCopulaBMAObject - defines a BMA copula

VoseTimeBMA – simulates from a BMA time series

VoseTimeBMAObject - defines a BMA time series