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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| bambi-0.9.2.tar.gz | 57.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|