**PREV****Contents****INDEX**

### Chapter 2 Markov Chain Simulation

### Section 1 Introduction to the Markov Chain Monte Carlo approach in Bayesian Anaylsis

The reference for this chapter is
Bayesian Data Analysis (chapter 11) by Gelman et al.
The Markov chain Monte Carlo method (MCMC) is a method for approximating the
posterior distribution for parameters of interest in the Bayesian framework.
This option is invoked by using the command line option -mcmc N
where N is the number of simulations performed. You will proabably also
want to include the option -mcscale which dynamically scales the
covariance matrix until a reasonable acceptance rate is observed.
You may also want to use the -mcmult n option which scales the initial
covariances matrix if the initial values are so large that arithmetic
errors occur.
One advantage of AD Model Builder over some other implementations of MCMC is that
the mode of the posterior distribution together with the hessian at
the mode is available to use for the MCMC routine. This information
is used to implement a version of the Hastings-Metropolis algorithm.
Another advantage is that
with AD Model Builder it is possible to calculate the profile likelihood for a parameter
of interest and compare the distribution to the MCMC distribution for that
parameter. A large discrepancy may indicate that one or both estimates
are inadequate. If you wish to do more simulations (and to carry on from where
the last one ended use the -mcr option.
The following figure compares the profile likelihood for the projected
biomass
to the estimates produced by the MCMC method for different sample sizes
(25,000 and 2,500,000 samples) for the catage example.

A report containing the observed distributions is produced in the file
root.hst. All objects of type sdreport i.e number,
vector or matrix are included.
It is possible to save the results of every n'th simulation by
using the -mcsave n option. afterwords these values can be used by
running the model with the -mceval option which will evaluate the
userfunction once for every saved simulation value. At this time
the function mceval_phase() will return the value true and can be
used as a switch to perform desired calculations.

**NEXT**