astroABC
Author: Elise Jennings
Astronomy and Computing DOI:10.1016/j.ascom.2017.01.001
astroABC is a Python implementation of an Approximate Bayesian Computation Sequential Monte Carlo (ABC SMC) sampler for parameter estimation.
Mor et al. at the University of Barcelona have used astroABC to analyze data from the Gaia satellite. Nature Research Highlight:
The cosmic drama that helped to build the Milky Way
- Parallel sampling using MPI or multiprocessing
- MPI communicator can be split so both the sampler, and simulation launched by each particle, can run in parallel
- A Sequential Monte Carlo sampler (see e.g. [Toni et al. 2009], [Beaumont et al. 2009], [Sisson & Fan 2010]) [Toni et al. 2009]:https://arxiv.org/abs/0901.1925 [Sisson & Fan 2010]:http://arxiv.org/abs/1001.2058 [Beaumont et al. 2009]:https://arxiv.org/abs/0805.2256
- A method for iterative adapting tolerance levels using the qth quantile of the distance for t iterations ([Turner & Van Zandt (2012)])
- Scikit-learn covariance matrix estimation using [Ledoit-Wolf shrinkage] for singular matrices [Ledoit-Wolf shrinkage]:http://scikit-learn.org/stable/modules/covariance.html
- A module for specifying particle covariance using method proposed by [Turner & Van Zandt (2012)], optimal covariance matrix for a multivariate normal perturbation kernel, local covariance estimate using scikit-learn KDTree method for nearest neighbours ([Filippi et al 2013]) and a weighted covariance (Beaumont et al 2009) [Turner & Van Zandt (2012)]:http://link.springer.com/article/10.1007/s11336-013-9381-x [Filippi et al 2013]:https://arxiv.org/abs/1106.6280
- Restart files output frequently so an interrupted run can be resumed at any iteration
- Output and restart files are backed up every iteration
- User defined distance metric and simulation methods
- A class for specifying heterogeneous parameter priors
- Methods for drawing from any non-standard prior PDF e.g using Planck/WMAP chains
- A module for specifying a constant, linear, log or exponential tolerance level
- Well-documented examples and sample scripts
For more information please read the wiki.
Install astroABC using pip
$ pip install astroabc
or git clone the repository using the url above. Check the dependencies listed in the next section are installed.
- numpy
- scipy
- mpi4py
- multiprocessing
- sklearn
Python distributions like Anaconda have most of what is needed. You can then conda install or pip install all of the required dependencies.
$ conda install numpy scipy scikit-learn mpi4py
$ pip install numpy scipy scikit-learn mpi4py
Copyright 2016 Elise Jennings
astroABC is free software made available under the MIT License. For details see the LICENSE.txt file.