Guided tour · start here
The project in three walkthroughs
Three short screen recordings of the main journeys, about 3 minutes in all: the beetle dose–response model and its LD50, a nominal against an ordinal model for coal miners' lung disease, and GEE for children's repeated wheeze. Each step is listed next to its video as a transcript; press a step to jump to it. Below them, screenshots of every key feature.
Walkthrough 1 of 3 · 1 min 0 s
Beetles: dose, LD50 and a test for curvature
From the landing page to the beetle dose–response lab: drag the dose and watch the fitted kill probability and its interval move, read the LD50 with its delta-method interval, switch to a quadratic predictor and test it, then see how much the LD50 interval depends on the interval method and on the mean model.
No sound; the caption banner is part of the recording. Download the MP4 or the captions (WebVTT).
Steps and transcript
- Data and settings
- Bliss (1935) data as published: 481 beetles in 8 dose groups. The dose starts at 1.800. The parametric bootstrap on /diagnostics uses B = 2,000 at seed 20230501 (computed at build time).
- Try it yourself
- Overview Dose–response Beetle checks
Walkthrough 2 of 3 · 52 s
Coal miners: nominal or ordinal severity?
Drag the years of exposure and compare a nominal (multinomial logit) and an ordinal (proportional-odds) model category by category, then check the assumption the 2023 choice rested on: are the cumulative logits parallel?
No sound; the caption banner is part of the recording. Download the MP4 or the captions (WebVTT).
Steps and transcript
- Data and settings
- Ashford (1959): 371 coal miners in 8 exposure groups. Exposure is dragged from 25 years up to about 50 and back down to about 11. Both models are fitted by Newton–Raphson, matching R's nnet::multinom and MASS::polr.
- Try it yourself
- Pneumoconiosis Proportional-odds checks
Walkthrough 3 of 3 · 54 s
Wheeze: GEE, working correlations and robust errors
Repeated binary outcomes from the same children: observed rates with Wilson intervals, the within-child correlation, naive against robust (sandwich) standard errors, the working correlation switched in the odds-ratio calculator, and the 2026 sensitivity checks.
No sound; the caption banner is part of the recording. Download the MP4 or the captions (WebVTT).
Steps and transcript
- Data and settings
- geepack::ohio: 537 children seen at ages 7 to 10. GEE with logit link; the cluster bootstrap on /diagnostics resamples children (B = 1,000 at seed 20230601, computed at build time).
- Try it yourself
- Wheeze (GEE) GEE checks
Key features
Screenshots
Desktop shots at 1440 × 900 in light mode (the landing page in dark mode too) and three phone shots. Select one to enlarge it, then use the arrow keys to move through them. The two AI shots show a mocked AI response for illustration: no key was entered and no provider was called.
Landing page. Six case studies, their key results and the GLM family, with the parity count. Landing page, dark mode. The same page in dark mode. Dose–response lab. Drag the dose: P(killed) with its 95% interval, the LD50 and its delta-method CI. Straight line or quadratic? Deviance and Pearson goodness of fit, and the likelihood-ratio test for curvature. Attitudes: six candidate models. Factors, interactions and a linear education trend compared side by side. Death penalty: log-linear models. Four independence hypotheses for a 2×2×2 table, and Simpson's paradox. Nominal vs ordinal. Multinomial and proportional-odds probabilities against years of exposure. Wheeze and GEE. Wilson intervals, robust bands, the within-child correlation and naive vs robust SEs. LD50 under four interval methods. Wald, profile likelihood, seeded bootstrap and quasi-binomial, then two mean models. Is proportional odds justified? Cumulative logits, the Brant test and an LR test against separate slopes. Does the working correlation matter? Independence, exchangeable and AR(1) GEE with QIC, a cluster bootstrap and a GLMM. Verification against R. Side-by-side R and TypeScript values with their relative differences. Methods. Data provenance, evaluation design, assumptions, limitations and what I'd change. Decision record DR-002. Ordinal or nominal: the decision first, then options, what happened and changes. Bring your own key. Optional AI settings: Anthropic by default, the key stays in this browser. AI explanation (mocked). Mocked AI response for illustration: labelled AI-generated, grounding-checked, awaiting review. AI audit log (mocked entry). Mocked AI response for illustration: the call, the reviewer's decision and JSON/CSV export.
On a phone (390 px wide)
Mobile: landing. The landing page at 390 px. Mobile: dose–response. The dose slider and the fitted curve on a phone. Mobile: wheeze. Naive and robust standard errors, one block per term.
How these were made
Every frame comes from a script, not a screen-capture session. A Playwright tour (web/e2e/showcase.spec.ts) drives the site in Google Chrome at 1280 × 800, adds the caption banner and the cursor highlight, and records the video. It also checks what it shows: the LD50 of 1.7712 and its delta-method interval, the quadratic likelihood-ratio test, both pneumoconiosis models' AIC, the Brant and likelihood-ratio tests of proportional odds, and the naive and robust standard errors for maternal smoking. A broken feature fails the tour rather than producing a misleading video.
The data are the published teaching sets and every simulation on the site is seeded at build time, so a rerun records the same numbers. No API key is entered anywhere: the AI settings dialog is only opened, and the AI explanation in the screenshots is a mocked reply served inside the test browser, labelled as such on screen.