Skip to main content

ba

Bayesian Association — a unified probabilistic framework for exploring associations in categorical data, with dedicated support for QCA and Association Rule Mining.

To install: pip install ba

Claude Code skills

ba ships with two Claude Code skills in .claude/skills/:

  • ba-user — For anyone using ba as a library: choosing priors, interpreting Bayes factors, writing QCA workflows, mining rules, handling small-sample warnings. Useful prompts that would trigger this skill automatically (if it's in scope):
    • "Analyze my DataFrame for pairwise associations with Bayesian credible intervals"
    • "What prior should I use for a dataset with only 15 cases?"
    • "Walk me through a QCA analysis with calibration and Boolean minimization"
  • ba-contributor — For developers modifying ba's source: adding measures to the registry, extending the Bayesian or QCA layers, writing tests, understanding the ContingencyTable hierarchy and Pot bridge.

You can invoke a skill explicitly via the slash command:

/ba-user Help me set up a prior sensitivity analysis for this 2×2 table

To make the skill available in another project, symlink it into that project's .claude/skills/ directory:

# Make ba-user available in a specific project
mkdir -p /path/to/my-project/.claude/skills
ln -s /path/to/ba/.claude/skills/ba-user /path/to/my-project/.claude/skills/ba-user

# Or make it globally available (triggers across all projects)
ln -s /path/to/ba/.claude/skills/ba-user ~/.claude/skills/ba-user

See the skills documentation for more on skill scoping, and the Claude Code configuration guide for managing project vs. user-level settings.

Quick start

import ba

# Analyze all pairwise associations in a DataFrame
result = ba.analyze(df, outcome="Y")
result.summary()  # metrics + Bayesian CIs for every pair
result.top_pairs(5)  # strongest, most certain associations

Single-pair analysis

ct = ba.contingency_table(a=10, b=5, c=3, d=12)
ct.odds_ratio  # 8.0
ct.phi  # 0.471
ct.metrics(["lift", "phi", "cramers_v"])

# Bayesian posterior
post = ba.bayesian.posterior(ct, prior="jeffreys")
post.credible_interval["risk_difference"]  # (0.12, 0.71)
post.prob_gt(0.0, "risk_difference")  # 0.996

Per-tradition APIs

# Bayesian
ba.bayesian.posterior(ct, prior="uniform")
ba.bayesian.bayes_factor(ct)
ba.bayesian.sensitivity(ct, priors=["jeffreys", "uniform", "beta(2,2)"])

# QCA
binary_df = ba.qca.calibrate(df, {"age": 30, "illness": "any_present"})
tt = ba.qca.truth_table(binary_df, outcome="Y", conditions=["A", "B", "C"])
solution = ba.qca.minimize(tt)
ba.qca.necessity(binary_df, "Y", ["A", "B"])

# Association Rule Mining
rules = ba.rules.mine(df, min_support=0.1, outcome="Y")

Key features

  • Categorical core, binary specialization. The core handles r×c contingency tables. Binary (2×2) is a specialization with extra metrics (OR, RR, phi, Yule's Q, QCA consistency/coverage).
  • Uncertainty first. Every metric comes with Bayesian credible intervals. Bayes factors replace p-values as the default evidence measure.
  • 22 built-in measures in an extensible registry — from support/lift to Cramér's V, mutual information, and Goodman-Kruskal gamma.
  • QCA pipeline: calibrate → truth table → Quine-McCluskey minimization → necessity/sufficiency analysis, all with Bayesian CIs.
  • Association rules with Bayesian augmentation, appearance constraints, and built-in brute-force mining (no mlxtend dependency required).
  • Progressive disclosure. ba.analyze() for one-liners; ba.bayesian/ba.rules/ba.qca for per-tradition control; ContingencyTable/MeasureRegistry for full access.

Metadata

Release files for ba 0.3.1

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

Source distribution (sdist)

Source distribution for ba 0.3.1
File Size Uploaded
ba-0.3.1.tar.gz 128.9 kB Details

Built distribution (wheel)

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

Total release size: 167.9 kB

Release files / ba-0.3.1.tar.gz

Download URL ba-0.3.1.tar.gz
Size 128.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c0eaad0519a0264712e10ce915bd972ef352e7656cd38a10651d9854161c85a4
BLAKE2b-256 checksum
How to use checksums
e93424855288ea0c7fb90a6789d8841f35c297211a1b1327df9cbec8423a0dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ba-0.3.1-py3-none-any.whl

Download URL ba-0.3.1-py3-none-any.whl
Size 39.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a54bdeb6a1e782b742430399d69144d2d45b7aa3e00bb155aa528b11a880215d
BLAKE2b-256 checksum
How to use checksums
3f4078bd077b70b3b64c00499b81d045c5ab72dd409b79451815316176322483
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.2.0

2 release files

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

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