Skip to main content

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.

Metadata

Release files for adamet 2.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adamet 2.0.10
File Size Uploaded
adamet-2.0.10.tar.gz 17.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adamet 2.0.10
File Interpreter ABI Platform
adamet-2.0.10-py3-none-any.whl Python 3 none any Details

Total release size: 35.6 kB

Release files / adamet-2.0.10.tar.gz

Download URL adamet-2.0.10.tar.gz
Size 17.1 kB
Tags Source
SHA-256 checksum
How to use checksums
81d8bd800f9e166f10bcba3bb4df9ac1aecf6979d150232f93847306c136cb33
BLAKE2b-256 checksum
How to use checksums
5ea77286d2cd5f50c9f67d5b5f4f88923811f5be2460f919fda1e29b757959a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / adamet-2.0.10-py3-none-any.whl

Download URL adamet-2.0.10-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e17c4c0db7da4937e62e38ca132d7387c391c29cf939f4b035136df19b82ba4
BLAKE2b-256 checksum
How to use checksums
1c107e562994b07280e48a7a033fddb0babea41179c6e907c37ff5aa58a793ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

2.0.10 This release

2 release files

2.0.9

2 release files

2.0.8

1 release file

2.0.7

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page