Skip to main content

Python package for efficient Bayesian evidence computation

Project description

https://img.shields.io/badge/GitHub-harmonic-brightgreen.svg?style=flat https://github.com/astro-informatics/harmonic/actions/workflows/python.yml/badge.svg https://readthedocs.org/projects/ansicolortags/badge/?version=latest https://codecov.io/gh/astro-informatics/harmonic/branch/main/graph/badge.svg?token=1s4SATphHV https://img.shields.io/badge/License-GPL-blue.svg http://img.shields.io/badge/arXiv-2111.12720-orange.svg?style=flat http://img.shields.io/badge/arXiv-2207.04037-red.svg?style=flat http://img.shields.io/badge/arXiv-2307.00048-red.svg?style=flat

Python package to efficiently compute the learnt harmonic mean estimator of the Bayesian evidence

harmonic is an open source, well tested and documented Python implementation of the learnt harmonic mean estimator (McEwen et al. 2021) to compute the marginal likelihood (Bayesian evidence), required for Bayesian model selection.

While harmonic requires only posterior samples, and so is agnostic to the technique used to perform Markov chain Monte Carlo (MCMC) sampling, harmonic works exceptionally well with MCMC sampling techniques that naturally provide samples from multiple chains by their ensemble nature, such as affine invariant ensemble samplers. We therefore advocate use of harmonic with the popular emcee code implementing the affine invariant sampler of Goodman & Weare (2010).

Basic usage is highlighted in this interactive demo.

Documentation

Comprehensive documentation for harmonic is available.

Attribution

Please cite McEwen et al. (2021) if this code package has been of use in your project.

A BibTeX entry for the paper is:

@article{harmonic,
   author = {Jason~D.~McEwen and Christopher~G.~R.~Wallis and Matthew~A.~Price and Matthew~M.~Docherty},
    title = {Machine learning assisted {B}ayesian model comparison: learnt harmonic mean estimator},
  journal = {ArXiv},
   eprint = {arXiv:2111.12720},
     year = 2021
}

Please also cite Spurio Mancini et al. (2022) if this code has been of use in a simulation-based inference project.

A BibTeX entry for the paper is:

@article{spurio-mancini:harmonic_sbi,
   author   = {A.~Spurio Mancini and M.~M.~Docherty and M.~A.~Price and J.~D.~McEwen},
   doi      = {10.1093/rasti/rzad051},
   eprint   = {arXiv:2207.04037},
   journal  = {{RASTI}, in press},
   title    = {{B}ayesian model comparison for simulation-based inference},
   year     = {2023}
}
@inproceedings{polanska:harmonic_nfs_maxent,
   author    = {A.~Polanska and M.~A.~Price and A.~Spurio Mancini and J.~D.~McEwen},
   booktitle = {International Workshop on Bayesian Inference and Maximum Entropy Methods in Science and Engineering},
   eprint    = {arXiv:2307.00048},
   title     = {Learned harmonic mean estimation of the marginal likelihood with normalizing flows},
   year      = {2023}
}

License

harmonic is released under the GPL-3 license (see LICENSE.txt), subject to the non-commercial use condition (see LICENSE_EXT.txt)

harmonic
Copyright (C) 2021 Jason D. McEwen, Christopher G. R. Wallis,
Matthew A. Price, Matthew M. Docherty, Alessio Spurio Mancini,
Alicja Polanska & contributors

This program is released under the GPL-3 license (see LICENSE.txt),
subject to a non-commercial use condition (see LICENSE_EXT.txt).

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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

harmonic-1.2.2.tar.gz (203.7 kB view details)

Uploaded Source

Built Distributions

harmonic-1.2.2-cp311-cp311-macosx_11_0_arm64.whl (159.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

harmonic-1.2.2-cp310-cp310-macosx_11_0_arm64.whl (171.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

harmonic-1.2.2-cp39-cp39-macosx_11_0_arm64.whl (161.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file harmonic-1.2.2.tar.gz.

File metadata

  • Download URL: harmonic-1.2.2.tar.gz
  • Upload date:
  • Size: 203.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.0

File hashes

Hashes for harmonic-1.2.2.tar.gz
Algorithm Hash digest
SHA256 e91f55f572ad517719eaf4f94c34d770c938760a043b948986c07d7a4d3b9089
MD5 c18473c9eb7cb1ca80d815405145804c
BLAKE2b-256 892f393c5b0a8760e00470c6b7f26e838332fa389db6dbf7f561c694b1e5f61f

See more details on using hashes here.

File details

Details for the file harmonic-1.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonic-1.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f820452a7222d0a33cf1a48898e056de95b6350e0e7d943e2831955e2ba69a74
MD5 b125a1d119f241fd2c0f00f96aa7b4ca
BLAKE2b-256 7cf0392740f41d2f7f34430d2d512ac858c2391ae3084cd67514914210a39181

See more details on using hashes here.

File details

Details for the file harmonic-1.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonic-1.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d8b0b135f85781e84a5545b0fb60208d1d6e22c7d547f7afb5a26d5da958543
MD5 42a95d056cc766d7dbb7cd5e546169da
BLAKE2b-256 5b7c66f5ca008f43800f77c163f0fd691c2358ad792011d95ae5f649135753c1

See more details on using hashes here.

File details

Details for the file harmonic-1.2.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonic-1.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2e6362b0f11af97e4f5c78572ff2bffd73a5abdab1598d4e13e47f84d962e2e
MD5 c0d06a7a72efa60093758bf18f8496dd
BLAKE2b-256 4ca261e219d00294dbf9e7837bd57a459d577c7c14ed0a22e0847ddbb63851ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page