BAyesian Model Building Interface in Python
Project description
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.7+). 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
Here is the citation in BibTeX format
@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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bambi-0.9.1.tar.gz
.
File metadata
- Download URL: bambi-0.9.1.tar.gz
- Upload date:
- Size: 51.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f1e52cfa400bee4cb559b80db843f1f7bdd2c95357f3f3d2a8bdc9064638022 |
|
MD5 | 3b6184ca47b33f9cc5c37da937b7477a |
|
BLAKE2b-256 | 98bee2119f4b6a04d9cdd4a2eb4b64e00f5fdabca6f9a0c373795154288a6d44 |
File details
Details for the file bambi-0.9.1-py3-none-any.whl
.
File metadata
- Download URL: bambi-0.9.1-py3-none-any.whl
- Upload date:
- Size: 50.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd955ed5a5ba80b81a216f1efe7e0d3dc0b69f49df23852794265f24afd9aab6 |
|
MD5 | 1622b9a4b9af3d1b79fc8b7df5fdfabc |
|
BLAKE2b-256 | 7fafa3faa255b0fd3abec83fd4c9456819996f88fb7642b8fff27cbec5efd9b0 |