Learn with Phoebe ยท Data Science

Learn Bayesian with Phoebe

Halloway Bakeries' smallest outlet redeemed one voucher in eighteen. Its true redemption rate is 0.192, the highest in the chain. Head office's sensible prior, worth a hundred pseudo-observations, pulled the estimate to 0.110 with an interval that did not contain the truth; a prior learned from the other eleven outlets got it to 0.124 and saved the site from closure. Everything that follows comes from the gap between those numbers: what a prior is worth and what it costs, why small data give you a distribution rather than a point, how eleven outlets can lend the twelfth their evidence, and when a probability becomes a decision. Six leader sessions with no code, ten practitioner sessions on PyMC 6 as it is in 2026, and three benches on a world whose truth is written down so every method can be scored.

16sessions, two tracks
12outlets with known true rates
4priors on the bench
89percent, equal-tailed, the 2026 default
45min per session

Leader track ๐ŸŽฒ ยท six sessions, no code

For whoever signs off a number from small data. What a prior costs, why eighteen observations give you a distribution and not a point, how to borrow strength across units, how to read a posterior in a meeting, the argument about priors the field has not settled, and what to require in writing.

Practitioner track ๐Ÿงช ยท ten sessions, hands on

For the people who build the models. Conjugate updates by hand, the posterior as a distribution, MCMC and its diagnostics, PyMC 6 with nutpie and DataTree, hierarchical models, Bayesian A/B by expected loss, predictive checks, the executive sentence, and a capstone bench scored against the truth.

โœ๏ธ Practitioner session 1 ยท start here

Beta-Binomial by hand

Conjugacy: a plus y, b plus n minus y. The posterior mean as a weighted average, and why that makes the prior legible.

โ–ถ Start here
๐ŸŽš๏ธ Practitioner session 2

Four priors

Flat, weak, informed, wrong on the same eighteen customers. Pseudo-observations, and the interval that misses.

๐Ÿ“ˆ Practitioner session 3

The posterior is a distribution

Grid, then sampling. Summaries as quantiles, and why 89 percent equal-tailed is the default now.

๐Ÿ”— Practitioner session 4

MCMC and its diagnostics

Why sample at all. Chains, R-hat, effective sample size, divergences, and the rank plot that replaced the trace.

๐Ÿ Practitioner session 5

PyMC, the first model

PyMC 6.3, nutpie by default, a DataTree instead of InferenceData. Westfield end to end, as the tools are in 2026.

๐Ÿงฉ Practitioner session 6

Hierarchical models

Partial pooling with a known truth. kappa as learned pooling strength, and where shrinkage costs you.

โšก Practitioner session 7

Bayesian A/B decisions

P(B beats A), expected loss, ROPE. The rule stops at n = 100 and is wrong 2 times in 200, counted.

๐Ÿ”ฌ Practitioner session 8

Checking the model

Prior and posterior predictive checks. What a check can catch, what it cannot, and where LOO fits.

๐Ÿ—ฃ๏ธ Practitioner session 9

Saying it to executives

The sentence, the interval with its kind and level, the probability of a difference, and the stake.

๐Ÿงช Practitioner session 10

The pooling bench

Three live benches on a world whose truth is written down. Priors, pooling, and the A/B rule, all scored.

Foundations Working depth Advanced Hardest

The whole thing on one page

Every idea in the course and the session that owns it. Click any node to jump there.

Three ways through

Everyone starts at session 1 of their track. These are the shortest useful routes if you cannot take all sixteen.

I sign off small-data numbers What a prior costsโ†’ Borrowing strengthโ†’ Reading a posteriorโ†’ Commissioning
I build the models By handโ†’ MCMCโ†’ PyMC 6โ†’ Hierarchicalโ†’ The bench
I run A/B tests Four priorsโ†’ A/B decisionsโ†’ Saying itโ†’ The bench

What is real here

Nothing on the benches is a stored result.

The worldTwelve outlets from a model written out in assets/bayes-live.js, fixed seed, every true rate visible
Every posteriorAn exact conjugate update, summarised by 20,000 draws at the ArviZ 1.x default of 89 percent equal-tailed
Partial poolingAn empirical-Bayes fit that maximises the marginal likelihood across outlets, so the pooling strength is learned, not set
The decision ruleExpected loss over 20,000 paired draws, and a wrong-stop rate counted over 200 replays rather than promised