ABSTRACT

BUGS stands for Bayesian inference Using Gibbs Sampling, reflecting the basic computational technique originally adopted (see Chapter 4). The BUGS project began in 1989 and from the start was strongly influenced by developments in artificial intelligence in the 1980s. Briefly, these featured an explicit attempt to separate what was known as the “knowledge base,” encapsulating what was assumed about the state of the world, from the inference engine “used to draw conclusions” in specific circumstances. The knowledge base naturally makes use of a “declarative” form of programming, in which the structure of our “model” for the world is described using a series of local relationships that can often be conveniently expressed as a graph: see the next section for further discussion of interpretation and computation on graphs. As an essentially separate endeavour, one or more inference engines can be used to compute results on the basis of observations in particular contexts. This philosophy has been retained within the BUGS project, with a clear

separation between the BUGS language for specifying Bayesian models and the various programs that might be used for actually carrying out the computations. This book is primarily about the BUGS language and its power to describe almost arbitrarily complex models using a very limited syntax. This language has remained extremely stable over a long period. In contrast, programs to actually run BUGS models are in a state of constant development, and so are only described in the final chapter of this book.