bauer¶
Bayesian Estimation of Perceptual, Numerical and Risky Choice.
bauer is a PyMC-based Python library for fitting hierarchical Bayesian cognitive models to behavioural decision-making data. It covers magnitude comparison, psychometric functions, and risky choice — from simple Weber’s-law models to flexible noise curves and prospect-theory variants.
Key features¶
Ready-to-use model classes for magnitude comparison, psychometric functions, and risky choice — no need to hand-code PyMC models.
Hierarchical fitting by default: group mean + between-subject SD inferred jointly with subject-level parameters. Essential for typical trial counts (100–250 per condition).
Regression support via patsy formulas: e.g.
regressors={'nu': 'C(condition)'}to let any parameter vary by experimental condition.Posterior predictive checks with
model.ppc(data, idata).Full ArviZ integration: trace diagnostics, HDI plots, ELPD model comparison.
Included datasets: Garcia et al. (2022) magnitude/risk, de Hollander et al. (2024) dot-cloud and symbolic gambles.
Quick start¶
from bauer.models import MagnitudeComparisonModel
from bauer.utils.data import load_garcia2022
data = load_garcia2022(task='magnitude')
model = MagnitudeComparisonModel(paradigm=data, fit_seperate_evidence_sd=True)
model.build_estimation_model(data=data, hierarchical=True)
idata = model.sample(draws=1000, tune=1000)
Getting started
Tutorials
- Tutorials
- Lesson 1: An Introduction to Psychophysical Modelling
- Lesson 2: Risky Choice — Psychometric Functions and the Noise–Risk Link
- Lesson 3: Stake effects and presentation order — de Hollander et al. (2024, bioRxiv)
- Lesson 4: Flexible Noise Curves —
FlexibleNoiseComparisonModelandFlexibleNoiseRiskModel - Lesson 5: Why Hierarchical Modelling Beats Maximum Likelihood