BOA is an R/S-PLUS program for carrying out convergence diagnostics and statistical and graphical analysis of Monte Carlo sampling output. It can be used as an output processor for the BUGS software or for any other program which produces sampling output.


Wednesday, March 23, 2005

Version 1.1.5 of BOA is available.  This is a maintenance release that fixes an error in the calculation of the Brooks and Gelman multivariate potential scale reduction factor.

Wednesday, February 2, 2005

Version 1.1.4 of BOA is available as an R package.  This updated resolves the differences between CODA and BOA in results of the Geweke diagnostic and Heidelberger & Welch diagnostic.  The discrepancy arose in porting code from Splus to R, and was due to differences in the spec.pgram function in Splus versus R.  It affected the calculation of the "MC error"  and the diagnostics that depended on it.

Saturday, January 8, 2005

Version 1.1.3 of BOA is available as an R package.  Most changes are under-the-hood and will be transparent to the user.  Some error checking and handling was added to make the menu system less prone to crash if supplied with erroneous input.

Saturday, April 30, 2004

Version 1.1.2 of BOA is available as an R or S-PLUS package.  Axis labels have been reformatted.  Plot legends and titles are reformatted and may now be turned off.  The menu has been reorganized slightly, which may take some getting used to for current users.

Thursday, January 9, 2003

BOA version 1.0.1 is available. Just a few minor changes in the logic used to create new parameters and delete existing parameters.

Reinventing CODA

BOA is based on the Convergence Diagnosis and Output Analysis Software for Gibbs sampling output (CODA) developed by Nicky Best, Kate Cowles, and Karen Vines. My first experience with CODA was on a homework assignment in our Bayesian Statistics course. The first thing I discovered was that changes in S-PLUS 5.0 broke the CODA program. I patched up the code a bit and eventually fixed the problem. Through my work with the program, I became very familiar with the code and realized that any further modifications would be extremely difficult. The second thing I discovered was that CODA exhausted the memory resources of our computers while processing large MCMC sequences. As a results, I decided to rewrite the program as my homework dictated. The project quickly evolved into the full-fledged Bayesian Output Analysis Program.

BOA includes all of the analysis options found in CODA, plus a few others. It is designed to be faster, more efficient, and offer more flexible data management than CODA. BOA can be used at the command-line or with the supplied menu-driven interface. Either way, the program enables the user to focus on the analysis at hand rather than on the manipulation of data.

Speed and efficiency were the initial objectives in creating BOA. All analysis results have been checked for correctness against the CODA program. The printed output is not quite as fancy as that from CODA... I had to leave something to do for the upcoming versions. The plots, however, do look just as good. If you decide to use the program, I would certainly welcome any feedback. Feel free to email me with your comments, questions, suggestions, stock tips, job offers, donations, etc.

Brian Smith, Ph.D.
Department of Biostatistics
The University of Iowa College of Public Health


User Interface

Flexible menu-driven interface
Stand-alone library of functions

Flexible Data Management

Import MCMC sequences of varying lengths and numbers of parameters
Import BUGS output files, standard ASCII text files, or S-PLUS/R matrices
Add and remove sequences at any point in the analysis
Analyze any subset of the sequences
Create new parameters as functions of the existing parameters
Delete parameters
Restrict parameters to any interval; not just (0, 1) or (0, Inf)
Save and load all session data at any point in the analysis

Re-Engineered Code Base

Faster algorithms
Less memory usage
Modularized functions
Smaller code (~2200 lines) that is easier to modify and extend
Common code base for all platforms

Available Analyses

Summary statistics:

  • Means
  • Standard deviation
  • Naive standard error
  • MC error
  • Batch standard error
  • Lag-1 batch autocorrelation
  • Quantiles
  • Highest probability density intervals

Convergence Diagnostics:

  • Geweke
  • Gelman and Rubin
  • Brooks and Gelman multivariate shrink factor
  • Raftery and Lewis
  • Heidelberger and Welch


Lag autocorrelations
Density estimation
Gelman and Rubin shrink factors
Brooks and Gelman multivariate shrink factors
Geweke convergence diagnostics
Running Means
Trace histories


Convergence Diagnostics
Data Management
Descriptive Statistics
Cross- and Auto-Correlations
Main Menu and Import Filters



Most of the development for BOA is done in R.  The latest version is available, in library format, for R (all platforms).  The library may be downloaded and installed automatically by entering

> install.packages(“boa”)

at the R command line.  The S-PLUS files may be downloaded from the links provided in the table below.  Although BOA 1.1.2 and 1.0.1 have been successfully tested on S-PLUS for Microsoft Windows and UNIX, respectively, I do plan to support S-PLUS in future versions.  After downloading and installing the appropriate files, type

> library(boa)

to load the library.  See the User’s Manual for instructions on using BOA.




R Package for Windows

Install local zip file via the GUI

R Package Source



S-PLUS 6.1 for Windows

Extract to S-PLUS library directory

S-PLUS for UNIX/Linux


gzip -d <file> | tar xvf -
(See README file)

Line Example Sampler Output (Windows)
line.tar.gz (UNIX/Linux)

Extract files to local directory

Related Links

The Comprehensive R Archive Network
Insightful S-PLUS Site
Bayesian inference Using Gibbs Sampling (BUGS) Software