Skip to main content

Bayesian Conjugate Models in Python

Project description

Conjugate Models

Ruff Tests PyPI version docs codecov

Bayesian conjugate models in Python

Installation

pip install conjugate-models

Features

Supported Models

Many likelihoods are supported including

  • Bernoulli / Binomial
  • Categorical / Multinomial
  • Poisson
  • Normal (including linear regression)
  • and many more

Basic Usage

  1. Define prior distribution from distributions module
  2. Pass data and prior into model from models modules
  3. Analytics with posterior and posterior predictive distributions
from conjugate.distributions import Beta, BetaBinomial
from conjugate.models import binomial_beta, binomial_beta_predictive

# Observed Data
x = 4
N = 10

# Analytics
prior = Beta(1, 1)
prior_predictive: BetaBinomial = binomial_beta_predictive(n=N, distribution=prior)

posterior: Beta = binomial_beta(n=N, x=x, prior=prior)
posterior_predictive: BetaBinomial = binomial_beta_predictive(
    n=N, distribution=posterior
)

From here, do any analysis you'd like!

# Figure
import matplotlib.pyplot as plt

fig, axes = plt.subplots(ncols=2)

ax = axes[0]
ax = posterior.plot_pdf(ax=ax, label="posterior")
prior.plot_pdf(ax=ax, label="prior")
ax.axvline(x=x / N, color="black", ymax=0.05, label="MLE")
ax.set_title("Success Rate")
ax.legend()

ax = axes[1]
posterior_predictive.plot_pmf(ax=ax, label="posterior predictive")
prior_predictive.plot_pmf(ax=ax, label="prior predictive")
ax.axvline(x=x, color="black", ymax=0.05, label="Sample")
ax.set_title("Number of Successes")
ax.legend()
plt.show()

More examples on in the documentation.

Contributing

If you are interested in contributing, check out the contributing guidelines

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

conjugate_models-0.13.1.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conjugate_models-0.13.1-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file conjugate_models-0.13.1.tar.gz.

File metadata

  • Download URL: conjugate_models-0.13.1.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.12

File hashes

Hashes for conjugate_models-0.13.1.tar.gz
Algorithm Hash digest
SHA256 0e4735bb83d7039fc95779f2bda068c62cdbd607baca28a192fd4b333e5b40f9
MD5 14ae4ef12d225670e97c73833a295ceb
BLAKE2b-256 111306d5e81172829a592c5a046523002408a681f7bdabb9e4e87b781d9edc79

See more details on using hashes here.

File details

Details for the file conjugate_models-0.13.1-py3-none-any.whl.

File metadata

File hashes

Hashes for conjugate_models-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 12c774297a410cd5cdb5e28a27ad9157cccad49add33754347619f55d9639a08
MD5 ac3bd1b165910c9776394a1a0a4f5021
BLAKE2b-256 125ed69e31e764aa46c388f3bc2385619724b24010d599260cf8d06c335b500b

See more details on using hashes here.

Supported by

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