A general-purpose approximate Bayesian calculation
Project description
Approximate Bayesian calculation (ABC)
This package conducts ABC on a given model and parameters. Basically, ABayesianC does the following:
-
Sample uniformly from the n-dimensional space of the free parameters
-
Create a parameter set for each of sample set
-
Run the given model for each parameter set and collect the error value
-
Choose the best fits by the rejection algorithm
Getting started
Quick start
pip install --upgrade ABayesianC
# inside your script, e.g. test.py
from ABayesianC import tools
obj = tools.ABC(settings = settings, free_params = free_params)
obj.sample()
obj.run()
obj.postprocess()
More on it
The module receives two inputs from users. First, the free parameters' list that is a python dictionary containing the names and bounds (min and max) of each free parameter, as shown below:
free_params = {
'p_name_1': [1.1,4.3], # [min,max]/ Prior
'p_name_2': [6.4,23.1]
}
Second, the settings variable that is another python dictionary containing:
settings = {
"MPI_flag": True, # whether to use MPI or not
"sample_n": 10000, # Sample number
"top_n": 100, # Number of top selected samples, i.e. posterior
"output_path": "outputs", # Relative output directory to save the results
"replica_n":3 # number of replica run for each param set
"model": Model # the model that receives the parameter set and returns the error value
}
The provided model
must:
- receive a parameter set as argument
- has a function named
run
- the
run
function runs the model and returns back the error/fitness value
Parallel run
To run the constructed script, e.g. test.py
, in parallel, commain in terminal,
mpiexec -n available_cpu_core python test.py
available_cpu_core
is the CPU core number that user intend to allocate for this process. For more info, see MPI for Python.
Outputs
Among the library outputs are:
samples.txt
: the samples in the n-dimensional space of the free parametersdistances.txt
: the distances/errors/fitness values obtained for each parameter setbest_distances.txt
: the best n distances. n is defined in the settingsposterior.json
: the posteriors extracted for each free parameter using top n best fitmedians.json
: the medians of the posteriors for each free parameter. These values can be considered as inferred values.
Install
Using pip manager:
pip install --upgrade ABayesianC
Or, download the package and in the root folder, command:
python3 setup.py install
Authors
- Jalil Nourisa
Useful links
Contributing to ABayesianC
In case of encountering a problem, pls report it as an issue or contant the author (jalil.nourisa@gmail.com)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ABayesianC-1.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a79bf64dca2e3da95fa04ebfc5512a9ff2b206a3d36066d6dc57b05b5901d56a |
|
MD5 | 229a6c560581d3a5577f376a3a5d4e9b |
|
BLAKE2b-256 | aadb817a6ef1c092b6ba92e1a49552511ed8608e315425173d0a16068037ac17 |