The Affine-Invariant Ensemble Sampler (AIES) is a Monte-Carlo method particularly popular in astrophysics. The paper describing its widely used Python implementation emcee is highly cited and the method is particularly popular because it has — aside from the number of walkers, i.e., the number of chains — no tunable parameters.
Huijser, Goodman, and Brewer recently highlighted some convergence problems in AIES. This is illustrated in the case of correlated Gaussians, specifically in the auto-regressive process of order 1, aka AR(1). This blog post sets out to test whether a simple convergence criterion can discover these problems.
The Autoregressive (1) Process¶
Huijser, Goodman, and Brewer use the so-called autoregressive process of order 1 (aka AR(1)) to highlight slow convergence of the AIES algorithm when the dimensionality of the problem exceeds a few and correlations between parameters exist. We start by reproducing their findings.
%matplotlib inline import numpy as np import matplotlib.pylab as plt import emcee import corner
We set up the covariance matrix for the AR(1) process in 10, 50, and 100 dimensions.
ndim_arr = [10, 50, 100] α = 0.9 cov_arr =  for ndim in ndim_arr: idx = np.repeat(np.arange(ndim), ndim).reshape(ndim, ndim) Σ = α**abs(idx - idx.T) cov_arr.append(Σ)
Let’s first illustrate the correlated distribution for the 10-dimensional case.
X = np.random.multivariate_normal(np.zeros(ndim_arr), cov_arr, 50000) figure = corner.corner(X)