One-way ANOVA tests whether ≥3 group means genuinely differ by comparing two variance estimates: how much the group means scatter around the grand mean (between-group), versus how much individual points scatter around their own group mean (within-group).
SSB = Σ nᵢ(x̄ᵢ − x̄)² dfB = k − 1
SSW = ΣΣ(xᵢⱼ − x̄ᵢ)² dfW = N − k
MSB = SSB / dfB
MSW = SSW / dfW
F = MSB / MSW ~ F(dfB, dfW) under H₀
η² = SSB / (SSB + SSW)
The top panel is a jittered strip plot: every dot is one sampled observation, positioned by group (column) and value (height). Each group's short colored tick is its sample mean; the dashed white line is the grand mean across all points. This is exactly how ANOVA data is drawn in practice — the 3D companion sim renders the same numbers as a spatial scene, but the plane biologists and analysts actually read is this one.
The bottom panel goes further than a single snapshot: every time you resample (manually or with auto-resample on), the resulting F-statistic is added to a running histogram. Under the null hypothesis this histogram should trace out the theoretical F(dfB, dfW) probability density (drawn as a curve) — that curve, not any single F value, is the actual object ANOVA theory makes claims about. Set the effect size to 0 and let auto-resample run to watch the histogram settle onto the F(dfB,dfW) curve with mean dfW/(dfW−2).
- Effect size slider — separates the true group means (in units of σ); at 0 all groups share one population and H₀ is exactly true.
- σ and n sliders — more within-group noise or fewer samples make the same true effect harder to detect (lower power).
- Clear F history — resets the histogram, useful right after changing k, n, effect or σ so old and new designs aren't mixed in the same distribution.
Real-world relevance: this is the exact test used to compare, e.g., crop yield across ≥3 fertilizer treatments, response time across ≥3 UI designs, or patient outcomes across ≥3 drug doses — anywhere you compare more than two group means at once instead of running many separate t-tests.