Skip to content

Add MEADS notebook (IRT + Radon) and fix RegimeSwitchingModel to NUTS#83

Merged
junpenglao merged 1 commit intomainfrom
feat/meads-irt-radon
Mar 30, 2026
Merged

Add MEADS notebook (IRT + Radon) and fix RegimeSwitchingModel to NUTS#83
junpenglao merged 1 commit intomainfrom
feat/meads-irt-radon

Conversation

@junpenglao
Copy link
Copy Markdown
Member

Summary

  • New book/algorithms/meads.md: demonstrates MEADS+GHMC adaptation on two benchmark posteriors from the MEADS paper — a 230-dimensional 2PL IRT model (100 students, 30 items) and an 89-dimensional Radon hierarchical model (85 counties). The notebook uses a clean meads_inference helper (MEADS-only) with a two-step initialization: single NUTS warmup to the typical set, collect a short trajectory, then spread ensemble starting positions using U(-1,1) jitter scaled by the per-coordinate posterior std. Both models achieve Rhat ≤ 1.05 (IRT) and Rhat ≤ 1.02 (Radon).

  • Fix book/models/RegimeSwitchingModel.md: the multi-modal regime-switching posterior (label switching, regime collapse) is unsuitable for MEADS — it was reverted to plain NUTS with blackjax.window_adaptation. Anchoring sigma = [log(3), log(10)] at initialization breaks regime symmetry and yields Rhat = 1.00 across all 8 chains.

  • book/_toc.yml: add algorithms/meads.md between mclmc and laps.

Test plan

  • book/algorithms/meads.md executes end-to-end without errors
  • IRT: max Rhat = 1.05 across all 160 parameters (theta, b, a)
  • Radon: max Rhat = 1.02 across all 89 parameters
  • book/models/RegimeSwitchingModel.md executes end-to-end with Rhat = 1.00

🤖 Generated with Claude Code

…NUTS

- New `book/algorithms/meads.md`: demonstrates MEADS+GHMC adaptation on a
  230-dimensional 2PL IRT model and an 89-dimensional Radon hierarchical model.
  Uses a clean `meads_inference` helper (MEADS-only) with a lightweight init
  strategy: single NUTS warmup to the typical set, collect a short trajectory,
  then spread n_chain starting positions using U(-1,1) jitter scaled by the
  per-coordinate posterior std from the seed positions.  Both models achieve
  Rhat <= 1.05 (IRT) and Rhat <= 1.02 (Radon).

- Fix `book/models/RegimeSwitchingModel.md`: the multi-modal regime-switching
  posterior (label switching, regime collapse) is unsuitable for MEADS; revert
  to NUTS with `blackjax.window_adaptation`.  Anchoring sigma=[log(3), log(10)]
  to break regime symmetry yields Rhat=1.00 across all chains.

- Update `book/_toc.yml` to add `algorithms/meads.md`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@junpenglao junpenglao merged commit a74f3b4 into main Mar 30, 2026
1 check passed
@junpenglao junpenglao deleted the feat/meads-irt-radon branch March 30, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant