Skip to main content

AdaMet: Adaptive Metropolis for Bayesian Analysis

Project description

The AdaMet Package

Adaptive Metropolis for Bayesian Analysis

https://img.shields.io/pypi/v/adamet.svg https://img.shields.io/badge/arXiv-1208.3522-orange.svg https://img.shields.io/badge/DOI-10.1093/mnras/stt562-green.svg

AdaMet is a well-tested Python implementation by Cappellari et al. (2013) of the Adaptive Metropolis algorithm by Haario H., Saksman E., Tamminen J. (2001). It was used in several published papers in the astrophysics literature.

Attribution

If you use this software for your research, please cite at least Cappellari et al. (2013) where the implementation was introduced. The BibTeX entry for the paper is:

@ARTICLE{Cappellari2013a,
    author = {{Cappellari}, M. and {Scott}, N. and {Alatalo}, K. and
        {Blitz}, L. and {Bois}, M. and {Bournaud}, F. and {Bureau}, M. and
        {Crocker}, A.~F. and {Davies}, R.~L. and {Davis}, T.~A. and {de Zeeuw},
        P.~T. and {Duc}, P.-A. and {Emsellem}, E. and {Khochfar}, S. and
        {Krajnovi{\'c}}, D. and {Kuntschner}, H. and {McDermid}, R.~M. and
        {Morganti}, R. and {Naab}, T. and {Oosterloo}, T. and {Sarzi}, M. and
        {Serra}, P. and {Weijmans}, A.-M. and {Young}, L.~M.},
    title = "{The ATLAS$^{3D}$ project - XV. Benchmark for early-type
        galaxies scaling relations from 260 dynamical models: mass-to-light
        ratio, dark matter, Fundamental Plane and Mass Plane}",
    journal = {MNRAS},
    eprint = {1208.3522},
    year = 2013,
    volume = 432,
    pages = {1709-1741},
    doi = {10.1093/mnras/stt562}
}

Installation

install with:

pip install adamet

Without writing access to the global site-packages directory, use:

pip install --user adamet

Documentation

The documentation is in the docstring of the file adamet.py or on PyPi.


AdaMet

AdaMet Purpose

This is the implementation by Cappellari et al. (2013) of the Adaptive Metropolis algorithm by Haario H., Saksman E., Tamminen J. (2001) for Bayesian analysis.

Usage Example

To learn how to use AdaMet run the example program in the adamet/examples directory, within the main package installation folder inside site-packages, and read the detailed documentation in the docstring of the file adamet.py or on PyPi.

Note: For dimensions = 1 to 6, the optimal acceptance rates are rate = [0.441, 0.352, 0.316, 0.279, 0.275, 0.266] and the asymptotic value for many parameters is 23%

Calling Sequence

pars, lnprob = adamet(lnprob_fun, pars, sigpars, bounds, nstep,
    fignum=None, inline=True, labels=None, labels_scaling=1,
    nprint=100, plot=True, quiet=False, seed=None, args=(), kwargs={}):

Parameters

lnprob_fun: callable

This function returns the natural logarithm of the conditional probability of the model, given the data. The probability does not need to be normalized as only relative probabilities matter. For this reason, inclusion of an arbitrary additive constant in lnprob_fun leaves the output of AdaMet unaffected:

P(model | data) ~ P(data | model)*P(model)
pars0: array_like, shape (n,)

vector with the mean of the multivariate Gaussian describing the proposal distribution from which samples are drawn. For maximum efficiency, this initial Gaussian should approximate the posterior distribution. This suggests adopting as pars0 an initial guess for the model best-fitting parameters.

sigpars0: array_like, shape (n,)

vector with the dispersion sigma of the multivariate Gaussian describing the proposal distribution. For maximum efficiency, this initial Gaussian should approximate the posterior distribution. This suggests adopting as sigpars an initial guess of the uncertainty in the model parameters pars.

bounds: 2-tuple of array_like

Lower and upper bounds on independent variables. Each array must match the size of pars. The model probability is set to zero outside the bounds. This keyword is also used to define the plotting ranges.

nsteps: integer

Number of attempted moves in the chain. Typical numbers are a few thousands nsteps.

Other Parameters

fignum: integer, optional

Specifies the figure number for the plot.

inline: boolean, optional

Specifies whether to show a plot of the results inline or in a window.

labels: array_like, shape (n,)

String labels for each parameter to be used in the corner_plot

labels_scaling: float

Relative scaling for the plotting labels.

nprint: integer

Specifies the frequency for the intermediate plots, in moves. A typical value could be nstep/10.

plot: boolean, optional

Specifies whether to show a plot of the results or not.

quiet: boolean, optional

Suppress the printing of the progress of the algorithm.

seed: integer

Seed for the random generator. Specify this value for a repeatable random sequence.

args, kwargs: tuple and dict, optional

Additional arguments passed to lnprob_fun. Both empty by default. The calling signature is lnprob_fun(x, *args, **kwargs).

Returns

pars: array_like, shape (nsteps, n)

Posterior distribution for the model parameters

lnprob: array_like, shape (nsteps, n)

Logarithm of the probbaility of the model, given the data, for each set of parameters in the posterior distribution pars.

License

Other/Proprietary License

Copyright (c) 2012-2025 Michele Cappellari

This software is provided as is with no warranty. You may use it for non-commercial purposes and modify it for personal or internal use, as long as you include this copyright and disclaimer in all copies. You may not redistribute the code.

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

adamet-2.0.10.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

adamet-2.0.10-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file adamet-2.0.10.tar.gz.

File metadata

  • Download URL: adamet-2.0.10.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for adamet-2.0.10.tar.gz
Algorithm Hash digest
SHA256 81d8bd800f9e166f10bcba3bb4df9ac1aecf6979d150232f93847306c136cb33
MD5 6b8b5c4d04310a42fb787487ffb2bc1e
BLAKE2b-256 5ea77286d2cd5f50c9f67d5b5f4f88923811f5be2460f919fda1e29b757959a5

See more details on using hashes here.

File details

Details for the file adamet-2.0.10-py3-none-any.whl.

File metadata

  • Download URL: adamet-2.0.10-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for adamet-2.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 2e17c4c0db7da4937e62e38ca132d7387c391c29cf939f4b035136df19b82ba4
MD5 340d6df9c7799ad0c25140502addf140
BLAKE2b-256 1c107e562994b07280e48a7a033fddb0babea41179c6e907c37ff5aa58a793ff

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