Cajo Ter Braak just published this paper in Statistics and Computing. It’s an automatic Metropolis-like algorithm that seems to automatically work to perform adaptive jumps. Perhaps could be useful in a Umacs or Bugs-like setting? Here’s the abstract:
Differential Evolution (DE) is a simple genetic algorithm
for numerical optimization in real parameter spaces.
In a statistical context one would not just want the optimum
but also its uncertainty. The uncertainty distribution can be
obtained by a Bayesian analysis (after specifying prior and
likelihood) using Markov Chain Monte Carlo (MCMC) simulation.
This paper integrates the essential ideas of DE and
MCMC, resulting in Differential Evolution Markov Chain
(DE-MC). DE-MC is a population MCMC algorithm, in
which multiple chains are run in parallel. DE-MC solves
an important problem in MCMC, namely that of choosing an
appropriate scale and orientation for the jumping distribution.
In DE-MC the jumps are simply a fixed multiple of the
differences of two random parameter vectors that are currently
in the population. The selection process of DE-MC
works via the usual Metropolis ratio which defines the probability
with which a proposal is accepted. In tests with known
uncertainty distributions, the efficiency of DE-MC with respect
to random walk Metropolis with optimal multivariate
Normal jumps ranged from 68% for small population sizes
to 100% for large population sizes and even to 500% for
the 97.5% point of a variable from a 50-dimensional Student
distribution. Two Bayesian examples illustrate the potential
of DE-MC in practice. DE-MC is shown to facilitate multidimensional
updates in a multi-chain “Metropolis-within-
Gibbs” sampling approach. The advantage of DE-MC over
conventionalMCMCare simplicity, speed of calculation and
convergence, even for nearly collinear parameters and multimodal
I’d appreciate anyone’s thoughts on this.