Given the complexity of modern cosmological parameter inference where we are faced with non-Gaussian data and noise, correlated systematics and multi-probe correlated data sets, the Approximate Bayesian Computation (ABC) method is a promising alternative to traditional Markov Chain Monte Carlo approaches in the case where the Likelihood is intractable or unknown. The ABC method is called "Likelihood free" as it avoids explicit evaluation of the Likelihood by using a forward model simulation of the data which can include systematics. We introduce astroABC, an open source ABC Sequential Monte Carlo (SMC) sampler for parameter estimation. A key challenge in astrophysics is the efficient use of large multi-probe datasets to constrain high dimensional, possibly correlated parameter spaces. With this in mind astroABC allows for massive parallelization using MPI, a framework that handles spawning of jobs across multiple nodes. A key new feature of astroABC is the ability to create MPI groups with different communicators, one for the sampler and several others for the forward model simulation, which speeds up sampling time considerably. For smaller jobs the Python multiprocessing option is also available. Other key features include: a Sequential Monte Carlo sampler, a method for iteratively adapting tolerance levels, local covariance estimate using scikit-learn's KDTree, modules for specifying optimal covariance matrix for a component-wise or multivariate normal perturbation kernel, output and restart files are backed up every iteration, user defined metric and simulation methods, a module for specifying heterogeneous parameter priors including non-standard prior PDFs, a module for specifying a constant, linear, log or exponential tolerance level, well-documented examples and sample scripts. This code is hosted online at https://github.com/EliseJ/astroABC
↧