Skip to main content

Hamiltonian sampling and analysis of sampled distributions

Project description

Package samppy implements Hamiltonian Markov-chain sampling and some additional analysis methods for multivariate probability distributions.

The probability distribution is represented only by an array of independent and identically distributed (i.i.d.) samples drawn from the distribution.

The package includes four modules:

  • Module hamiltonian_sampler implements Hamiltonian Markov-Chain sampling. A HamiltonianSampler instance can generate random samples of a multivariate probability distribution, defined only by an non-normalized log-likelihood function, and the gradient of that function.

    The generated batch of sample vectors is stored in a 2D numpy array, either as rows or as columns.

    Class HamiltonianSampler defines a standard isotropic sampler. Class HamiltonianBoundedSampler is a subclass also allowing one- or two-sided interval limits for all vector elements.

  • Module credibility includes functions to estimate jointly credible differences and/or correlations between pairs of elements in a random vector with a multivariate probability distribution, represented only by samples.

  • A separate module credibility_pd has the same functionality, but operates on input data in Pandas DataFrame or Series format.

  • Module sample_entropy includes a function to estimate the differential entropy of a multivariate probability distribution, represented only by samples. The entropy is estimated by the Kozachenko-Leonenko nearest-neighbor approximation (Singh and Poczos, 2016).

Usage

This package was developed mainly for use by another project. It is distributed separately because it may be useful for other purposes.

The Hamiltonian sampler code was inspired by the LAHMC project by Jasha Sohlstein. The present implementation includes some safety features to facilitate its use. The present sampler does not include sampling within a general subspace manifold, but it allows bounded ranges for vector elements.

Requirements

The package requires recent versions of Numpy and Scipy. These are automatically installed. Pandas is not installed automatically, because the module requiring Pandas input will only be called from a program that already uses Pandas.

References

R M Neal (2011): MCMC using Hamiltonian dynamics. Ch. 5 in Brooks et al. (eds) Handbook of Markov Chain Monte Carlo. Chapman and Hall / CRC Press.

A. Leijon, G. E. Henter, and M. Dahlquist (2016): Bayesian analysis of phoneme confusion matrices. IEEE Transactions on Audio, Speech, and Language Processing 24(3):469–482. (Describes an application of credible-difference calculation.)

A. Leijon, P. von Gablenz, I. Holube, J. Taghia, and K. Smeds (2023). Bayesian analysis of ecological momentary assessment (EMA) data collected in adults before and after hearing rehabilitation. Frontiers in Digital Health, 5(1100705). download

F Perez-Cruz (2008): Estimation of Information Theoretic Measures for Continuous Random Variables. Advances in Neural Information Processing Systems 21 (NIPS 2008).

S Singh and B Poczos (2016): Analysis of k-nearest neighbor distances with application to entropy estimation. arXiv:1603.08578 [math.ST].

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

samppy-1.3.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

samppy-1.3.0-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file samppy-1.3.0.tar.gz.

File metadata

  • Download URL: samppy-1.3.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for samppy-1.3.0.tar.gz
Algorithm Hash digest
SHA256 f852d0c84c7166a928821b066b8a16dfdc5e6ad6e56618be5228a3ec38ef8ef3
MD5 08b92a606af7b8a9a7639435f9c76e92
BLAKE2b-256 510bfaf7ac6a53081880fd8727c838460c987793e8a594ae8ff6f86070e9935c

See more details on using hashes here.

File details

Details for the file samppy-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: samppy-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for samppy-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ea1b305263a2817b4080445bb93155ae129f0096b3de33be12038a0b0df226ec
MD5 f5d087395f53834ca8690306fb65c054
BLAKE2b-256 d7c4c8ca65584d44b9b85de071858e9d6baff6840d2aae0a0c9b0461da33a4fa

See more details on using hashes here.

Supported by

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