One-Way ANOVA Calculator
Compare the means of three or more independent groups. Paste raw scores or enter each group's n, mean and SD to get the ANOVA table, F, p-value and η², Welch's ANOVA for unequal variances, Tukey HSD pairwise comparisons, and an APA 7 sentence — computed entirely in your browser.
| Statistic | Value |
|---|---|
| F | 30.52 |
| df | 2.00, 12.00 |
| p-value | 1.97e-5 |
| η² | .84 |
| ω² | .80 |
| Welch F | 32.40 (p < .001) |
APA report
F(2.00, 12.00) = 30.52, p < .001, η² = .84
Tukey HSD
- A − B: Δ = -8.00, p = 0.008
- A − C: Δ = 8.80, p = 0.004
- B − C: Δ = 16.80, p = 1.33e-5
Upload your dataset and generate a complete paper draft with statistics, figures, and references—free preview.
Generate paperHow to use the ANOVA calculator
1. **Choose an input mode.** - *Raw data:* paste one column per group, or load a CSV and pick the columns (or a group column plus a value column). - *Summary statistics:* enter the sample size, mean and standard deviation of each group — useful when you only have a table from a paper. 2. **Add at least two groups** (ANOVA is normally used for three or more; with exactly two it is equivalent to an independent-samples t test). 3. **Read the ANOVA table:** sums of squares, degrees of freedom, mean squares, F and the p-value, plus eta squared (η²) as the effect size. 4. **Check Welch's ANOVA** if group standard deviations or sample sizes differ noticeably. 5. **Look at Tukey HSD** to see which pairs of groups differ, with adjusted p-values and confidence intervals. 6. **Copy the APA 7 sentence.**
Your data stays on your device; the calculator runs entirely in the browser.
What one-way ANOVA tests
One-way analysis of variance (ANOVA) tests whether the means of several independent groups are all equal:
- H0: μ1 = μ2 = … = μk
- H1: at least one group mean differs
It does this by comparing the variation **between** group means with the variation **within** groups. If the group means are further apart than the within-group noise would lead you to expect, F is large and p is small.
Use it when you have **one categorical factor** with independent groups (three teaching methods, four fertiliser types, control vs two drug doses) and a **continuous outcome**. Running a separate t test for every pair inflates the chance of a false positive; ANOVA tests all groups at once, and a post hoc test such as Tukey HSD then controls the error rate across the pairwise comparisons.
If you have repeated measurements on the same participants, you need repeated-measures ANOVA instead. With two or more factors you need factorial ANOVA. Neither is covered here.
Assumptions
- **Independence:** each observation belongs to one group, and observations do not influence each other.
- **Normality:** the outcome is approximately normal within each group. ANOVA is fairly robust to mild departures, especially with similar group sizes of about 15 or more.
- **Homogeneity of variance:** groups have similar variances. A common rule of thumb is that the largest SD should be less than about twice the smallest. When this fails, especially with unequal group sizes, report **Welch's ANOVA**, which does not assume equal variances.
If the outcome is ordinal or strongly skewed with small groups, the Kruskal–Wallis test is the usual non-parametric alternative. For two groups, see the [Mann–Whitney U test calculator](/tools/mann-whitney-u-test-calculator).
Formulas
With k groups, group sizes n_i, group means ȳ_i, grand mean ȳ and total N:
`SS_between = Σ n_i (ȳ_i − ȳ)²`, df_between = k − 1
`SS_within = Σ Σ (y_ij − ȳ_i)² = Σ (n_i − 1) s_i²`, df_within = N − k
`MS = SS / df`
`F = MS_between / MS_within`, compared with the F distribution on (k − 1, N − k) df.
Effect size: `η² = SS_between / SS_total`.
Tukey HSD compares each pair with `q = |ȳ_i − ȳ_j| / √[ (MS_within / 2)(1/n_i + 1/n_j) ]` against the studentised range distribution.
Welch's ANOVA weights each group by `w_i = n_i / s_i²` and uses adjusted denominator degrees of freedom, so it remains valid when variances differ.
Worked example
A researcher compares exam scores under three teaching methods, five students per method:
| Method | Scores | Mean | SD | |---|---|---|---| | A (lecture) | 78, 82, 75, 80, 85 | 80.0 | 3.81 | | B (active learning) | 85, 88, 90, 84, 93 | 88.0 | 3.67 | | C (self-study) | 70, 72, 68, 75, 71 | 71.2 | 2.59 |
ANOVA table (verified with Python and SciPy):
| Source | SS | df | MS | F | p | |---|---|---|---|---|---| | Between groups | 706.13 | 2 | 353.07 | 30.52 | < .001 | | Within groups | 138.80 | 12 | 11.57 | | | | Total | 844.93 | 14 | | | |
- **F(2, 12) = 30.52, p < .001** (p = 0.00002)
- **η² = .84**: group membership accounts for about 84% of the variance in scores.
- Welch's ANOVA: F(2, 7.73) = 33.42, p < .001 — same conclusion.
Tukey HSD post hoc comparisons:
| Comparison | Mean difference | 95% CI | p (adj.) | |---|---|---|---| | B − A | 8.0 | [2.26, 13.74] | .008 | | A − C | 8.8 | [3.06, 14.54] | .004 | | B − C | 16.8 | [11.06, 22.54] | < .001 |
All three pairs differ: active learning scored highest, self-study lowest.
Interpreting the results
- **A significant F** says only that not all means are equal. It does not say which groups differ — that is what the post hoc test is for.
- **η² (eta squared)** is the proportion of total variance explained by the grouping. Rough benchmarks often cited from Cohen are .01 small, .06 medium and .14 large. In small samples η² overestimates the population effect; omega squared is a less biased alternative.
- **Welch vs classic F:** if they agree, you can report either (many journals now prefer Welch by default). If they disagree, trust Welch when variances are unequal.
- **Tukey HSD** controls the family-wise error rate across all pairwise comparisons and assumes equal variances. Read the adjusted p-values and the confidence intervals for each mean difference.
- **A non-significant F** does not prove the means are equal, especially with small groups.
For the standardised difference between two specific groups, the [effect size calculator](/tools/effect-size-calculator) gives Cohen's d.
Reporting ANOVA in APA 7 style
Give the test, the two degrees of freedom, F, the p-value and an effect size, then the post hoc results and the group means and SDs (often in a table):
> A one-way ANOVA showed that exam scores differed significantly across teaching methods, *F*(2, 12) = 30.52, *p* < .001, η² = .84. Tukey HSD tests indicated that active learning (*M* = 88.0, *SD* = 3.67) outperformed lecture (*M* = 80.0, *SD* = 3.81), *p* = .008, and self-study (*M* = 71.2, *SD* = 2.59), *p* < .001, and that lecture outperformed self-study, *p* = .004.
If you used Welch's ANOVA, report its fractional df, e.g. *F*(2, 7.73) = 33.42.
With a full dataset — several outcomes, covariates, demographics — Data2Paper's [Generate Paper](/generate-paper) can run the analysis and draft the complete paper, and you can preview the first half for free.
Common mistakes
- **Running multiple t tests** instead of ANOVA plus a post hoc test, which inflates the false-positive rate.
- **Stopping at a significant F** without saying which groups differ.
- **Running post hoc tests after a non-significant F** and reporting only the significant pairs.
- **Using one-way ANOVA for repeated measures** (the same participants in every condition).
- **Ignoring unequal variances**, especially when the smallest group has the largest SD. Use Welch.
- **Reporting only p.** Always include an effect size and the group means and SDs.
- **Treating a Likert item as continuous** without justification when groups are small and responses are bunched at one end.