Introduction
Contents
Intoduction to WinBUGS
Advice for new users
MCMC methods
How
WinBUGS
syntax differs from that of
Classic
BUGS
Changes from WinBUGS 1.3
Intoduction to WinBUGS
[top]
This manual describes the
WinBUGS
software - an interactive Windows version of the
BUGS
program for Bayesian analysis of complex statistical models using Markov chain Monte Carlo (MCMC) techniques.
WinBUGS
allows models to be described using a slightly amended version of the
BUGS
language, or as Doodles (graphical representations of models) which can, if desired, be translated to a text-based description. The
BUGS
language is more flexible than the Doodles.
Users are advised that this manual only concerns the syntax and functionality of
WinBUGS
, and does not deal with issues of Bayesian reasoning, prior distributions, statistical modelling, monitoring convergence, and so on.
If you are new to MCMC, you are strongly advised to use this software in conjunction with a course in which the strengths and weaknesses of this procedure are described. Please note the disclaimer at the beginning of this manual.
There is a large literature on Bayesian analysis and MCMC methods. For further reading, see, for example, Carlin and Louis (1996), Gelman et al (1995), Gilks, Richardson and Spiegelhalter (1996): Brooks (1998) provides an excellent introduction to MCMC. Chapter 9 of the
Classic
BUGS
manual, 'Topics in Modelling', discusses 'non-informative' priors, model criticism, ranking, measurement error, conditional likelihoods, parameterisation, spatial models and so on, while the
CODA
documentation considers convergence diagnostics. Congdon (2001) shows how to analyse a very wide range of models using
WinBUGS
. The
BUGS
website provides additional links to sites of interest, some of which provide extensive examples and tutorial material.
Note that
WinBUGS
simulates each node in turn: this can make convergence very slow and the program very inefficient for models with strongly related parameters, such as hidden-Markov and other time series structures.
Advice for new users
[top]
Although
WinBUGS
can be used without further reference to any of the
earlier BUGS
project, experience with using
Classic
BUGS
may be an advantage, and certainly the documentation on
BUGS
Version 0.5 and 0.6 (available from http://www.mrc-bsu.cam.ac.uk/bugs) contains examples and discussion on wider issues in modelling using MCMC methods. If you are using
WinBUGS
for the first time, the following stages might be reasonable:
1. Step through the
simple worked example
in the tutorial.
2. Try other examples provided with this release (see
Examples Volume 1
,
Examples Volume 2
and
Examples Volume 3
)
3. Edit the
BUGS
language to fit an example of your own.
If you are interested in using Doodles:
4. Try editing an existing Doodle (e.g. from
Examples Volume 1
), perhaps to fit a problem of your own.
5. Try constructing a Doodle from scratch.
Note that there are many features in the
BUGS
language that cannot be expressed with Doodles. If you wish to proceed to serious, non-educational use, you may want to dispense with
DoodleBUGS
entirely, or just use it for initially setting up a simplified model that can be elaborated later using the
BUGS
language. Unfortunately we do not have a program to back-translate from a text-based model description to a Doodle!
MCMC methods
[top]
Users should already be aware of the background to Bayesian Markov chain Monte Carlo methods: see for example Gilks
et al
(1996). Having specified the model as a full joint distribution on all quantities, whether parameters or observables, we wish to sample values of the unknown parameters from their conditional (posterior) distribution given those stochastic nodes that have been observed. The basic idea behind the Gibbs sampling algorithm is to successively sample from the conditional distribution of each node given all the others in the graph (these are known as full conditional distributions): the Metropolis-within-Gibbs algorithm is appropriate for difficult full conditional distributions and does not necessarily generate a new value at each iteration. It can be shown that under broad conditions this process eventually provides samples from the joint posterior distribution of the unknown quantities. Empirical summary statistics can be formed from these samples and used to draw inferences about their true values.
The sampling methods are used in the following hierarchies (in each case a method is only used if no previous method in the hierarchy is appropriate):
Continuous target distribution Method
Conjugate Direct sampling using standard algorithms
Log-concave Derivative-free adaptive rejection sampling
(Gilks, 1992)
Restricted range Slice sampling (Neal, 1997)
Unrestricted range Current point Metropolis
Discrete target distribution Method
Finite upper bound Inversion
Shifted Poisson Direct sampling using standard algorithm
In cases where the graph contains a
Generalized Linear Model
(GLM) component, it is possible to request (see
Updater options...
) that
WinBUGS
groups (or 'blocks') together the fixed-effect parameters and updates them via the multivariate sampling technique described in
Gamerman (1997)
. This is essentially a Metropolis-Hastings algorithm where at each iteration the proposal distribution is formed by performing one iteration, starting at the current point, of
Iterative Weighted Least Squares
(IWLS).
If WinBUGS is unable to classify the full conditional for a particular parameter (p, say) according to the above hierarchy, then an error message will be returned saying "Unable to choose update method for p".
Simulations are carried out univariately, except for explicitly defined multivariate nodes and, if requested, blocks of fixed-effect parameters in GLMs (see
above
). There is also the option of using ordered over-relaxation (Neal, 1998), which generates multiple samples at each iteration and then selects one that is negatively correlated
with the current value. The time per iteration will be increased, but the within-chain correlations should be reduced and hence fewer iterations may be necessary. However, this method is not always effective and should be used with caution.
A slice-sampling algorithm is used for non log-concave densities on a restricted range. This has a default adaptive phase of 500 iterations which will be discarded from all summary statistics.
The current Metropolis MCMC algorithm is based on a symmetric normal proposal distribution, whose standard deviation is tuned over the first 4000 iterations in order to get an acceptance rate of between 20% and 40%. All summary statistics for the model will ignore information from this adapting phase.
It is possible for the user to change some aspects of the various available MCMC updating algorithms, such as the length of an adaptive phase - please see
Update options...
for details. It is also now possible to change the sampling methods for certain classes of distribution, although this is delicate and should be done carefully - see
Changing MCMC Defaults (advanced users only)
for details.
The shifted Poisson distribution occurs when a Poisson prior is placed on the order of a single binomial observation.
How
WinBUGS
syntax differs from that of
Classic BUGS
[top]
Changes to the
BUGS
syntax have been kept, as far as possible, to simplifications. There is now:
- No need for constants (these are declared as part of the data).
- No need for variable declaration (but all names used to declare data must appear in the model).
- No need to specify files for data and initial values.
- No limitation on dimensionality of arrays.
- No limitation on size of problems (except those dictated by hardware).
- No need for semi-colons at end of statements (these were never necessary anyway!)
A major change from the
Classic BUGS
syntax is that when defining multivariate nodes, the range of the variable must be explicitly defined: for example
x[1:K] ~ dmnorm(mu[], tau[,])
must be used instead of x[] ~ dmnorm(mu[], tau[,]), and for precision matrices you must write, say
tau[1:K, 1:K] ~ dwish(R[,], 3)
rather than tau[,] ~ dwish(R[,], 3).
The following format must now be used to invert a matrix:
sigma[1:K, 1:K] <- inverse(tau[,])
Note that inverse(.) is now a vector-valued function as opposed to the relatively inefficient component-wise evaluation required in previous versions of the software.
To convert
Classic
BUGS
files to run under
WinBUGS
:
a) Open the .bug file as a text file, delete unnecessary declarations, and save as an .odc document.
b) Open .dat files: data has to be formatted as described in
Formatting of data
: eg
* matrices in data files need to have the full '.structure' format
* all data in datafile need to be described in the model
* need data list of constants and file sizes
* need column headings on rectangular arrays
The data can be copied into the .odc file, or kept as a separate file.
c) Copy the contents of the .in file into the .odc file.
Changes from WinBUGS 1.3
[top]
- modular on-line manual;
-
ability to run in batch-mode using scripts
;
- running of default
script
on start-up to allow calling from other programs;
- new graphics (see
here
, for example) and
editing of graphics
-
note that graphics from previous versions of the software will be incompatible with this version (2.0)
;
-
missing data
and
range constraints
allowed for multivariate normal;
- new distributions:
negative binomial
,
generalized gamma
,
multivariate Student-t
;
-
DIC menu option
for model comparison;
-
Options menu
, for advanced control of MCMC algorithms, for example;
-
new syntax
for (more efficient) 'inverse' function;
-
"interp.lin"
interpolation function,
"cut"
function;
- recursively- (and thus efficiently-) calculated
running quantiles
;
- MCMC algorithms: block updating of fixed effects - see
here
and/or
here
for details;
-
non-integer binomial and Poisson data
;
-
Poisson as prior for continuous quantity
;
-
'coverage' of random number generator
;
- additional restrictions:
END key word
for rectangular arrays;
- spatial (CAR) models moved to GeoBUGS;
-
new display options
;
-
now possible to print out posterior correlation coefficients for monitored variables
;
- new manual sections:
Batch-mode: Scripts
,
Tricks
,
WinBUGS Graphics
,
Tutorial
, and
Changing MCMC Defaults
.