Skip to main content

PyPi version Build Status codecov Code style: black

BAyesian Model-Building Interface in Python

Overview

Bambi is a high-level Bayesian model-building interface written in Python. It's built on top of the PyMC probabilistic programming framework, and is designed to make it extremely easy to fit mixed-effects models common in social sciences settings using a Bayesian approach.

Installation

Bambi requires a working Python interpreter (3.8+). We recommend installing Python and key numerical libraries using the Anaconda Distribution, which has one-click installers available on all major platforms.

Assuming a standard Python environment is installed on your machine (including pip), Bambi itself can be installed in one line using pip:

pip install bambi

Alternatively, if you want the bleeding edge version of the package you can install from GitHub:

pip install git+https://github.com/bambinos/bambi.git

Dependencies

Bambi requires working versions of ArviZ, formulae, NumPy, pandas and PyMC. Dependencies are listed in requirements.txt, and should all be installed by the Bambi installer; no further action should be required.

Example

In the following two examples we assume the following basic setup

import bambi as bmb
import numpy as np
import pandas as pd

data = pd.DataFrame({
    "y": np.random.normal(size=50),
    "g": np.random.choice(["Yes", "No"], size=50),
    "x1": np.random.normal(size=50),
    "x2": np.random.normal(size=50)
})

Linear regression

model = bmb.Model("y ~ x1 + x2", data)
fitted = model.fit()

In the first line we create and build a Bambi Model. The second line tells the sampler to start running and it returns an InferenceData object, which can be passed to several ArviZ functions such as az.summary() to get a summary of the parameters distribution and sample diagnostics or az.plot_traces() to visualize them.

Logistic regression

Here we just add the family argument set to "bernoulli" to tell Bambi we are modelling a binary response. By default, it uses a logit link. We can also use some syntax sugar to specify which event we want to model. We just say g['Yes'] and Bambi will understand we want to model the probability of a "Yes" response. But this notation is not mandatory. If we use "g ~ x1 + x2", Bambi will pick one of the events to model and will inform us which one it picked.

model = bmb.Model("g['Yes'] ~ x1 + x2", data, family="bernoulli")
fitted = model.fit()

Documentation

The Bambi documentation can be found in the official docs

Citation

If you use Bambi and want to cite it please use

@article{Capretto2022,
 title={Bambi: A Simple Interface for Fitting Bayesian Linear Models in Python},
 volume={103},
 url={https://www.jstatsoft.org/index.php/jss/article/view/v103i15},
 doi={10.18637/jss.v103.i15},
 number={15},
 journal={Journal of Statistical Software},
 author={Capretto, Tomás and Piho, Camen and Kumar, Ravin and Westfall, Jacob and Yarkoni, Tal and Martin, Osvaldo A},
 year={2022},
 pages={1–29}
}

Contributions

Bambi is a community project and welcomes contributions. Additional information can be found in the Contributing Readme.

For a list of contributors see the GitHub contributor page

Donations

If you want to support Bambi financially, you can make a donation to our sister project PyMC.

Code of Conduct

Bambi wishes to maintain a positive community. Additional details can be found in the Code of Conduct

License

MIT License

Release files for bambi 0.9.2

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

Source distribution (sdist)

Source distribution for bambi 0.9.2
File Size Uploaded
bambi-0.9.2.tar.gz 57.0 kB Details

Built distribution (wheel)

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

Total release size: 112.9 kB

Release files / bambi-0.9.2.tar.gz

Download URL bambi-0.9.2.tar.gz
Size 57.0 kB
Tags Source
SHA-256 checksum
How to use checksums
53ad37836dd7ca91b86da05c0f149e96e48fa29598ef01d9c8a5d6c300b8f973
BLAKE2b-256 checksum
How to use checksums
0cd2235d619f8b3535affa8355356b700996afb18ca5f0a26e5bc9b6866d93d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.15

Release files / bambi-0.9.2-py3-none-any.whl

Download URL bambi-0.9.2-py3-none-any.whl
Size 56.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
837efa2e24bfde1c8219975c04179cd7c7e7aa5ce70badf551f227ca148d5da8
BLAKE2b-256 checksum
How to use checksums
8905be12155cb69b3445ea9bb1f2254334ba60908a6a3b3e6643532307b8074b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.15

Release history Release notifications | RSS feed

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.2

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.3

2 release files

This release

0.9.2 This release

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.1

1 release file

0.1.0

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

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