Repeated Measures ANOVA Calculator
A repeated measures ANOVA tests whether condition means differ in designs where the same subjects are measured under two or more conditions (or at several points in time). Pretest – posttest – follow-up measurements, different tasks attempted by the same participant, and repeated taste tests are typical examples. Because measurements taken from the same person are dependent, an independent groups ANOVA cannot be used here.
The strength of this design comes from separating the stable differences between people (some scoring high overall, others low) into a source of their own — the subject effect. This calculator splits the total sum of squares into between-subjects, condition, and error components; computes F, the degrees of freedom, the p-value, and partial eta squared; applies the Greenhouse–Geisser and Huynh–Feldt corrections for the sphericity assumption; and also reports the Friedman test as a nonparametric alternative.
Repeated Measures ANOVA Formulas
SS_total = Σᵢ Σⱼ (xᵢⱼ − x̄)² SS_subject = k · Σᵢ (x̄ᵢ. − x̄)² df = n − 1 SS_condition = n · Σⱼ (x̄.ⱼ − x̄)² df = k − 1 SS_error = SS_total − SS_subject − SS_condition df = (n − 1)(k − 1) MS = SS / df , F = MS_condition / MS_error Partial η² = SS_condition / (SS_condition + SS_error) Generalized η²_G = SS_condition / SS_total Sphericity correction: df′ = ε · df (Greenhouse–Geisser / Huynh–Feldt)
An independent groups ANOVA has a single error term; in a repeated measures design the stable differences between people are pulled out as SS_subject and removed from the error term, which markedly increases the power of the test. The corrections leave F unchanged: only the degrees of freedom are multiplied by ε and shrink, so the p-value grows.
How to Calculate
- Write the measurements of each subject across all conditions on a single row, in condition order; the number of rows must equal the number of subjects and the number of columns the number of conditions.
- Enter the condition names separated by commas; if the count does not match the number of columns, generic names are used.
- Choose the significance level (α) and inspect the ANOVA table to see how the sum of squares splits into subject, condition, and error components.
- Read F, the degrees of freedom, and the p-value; partial eta squared shows the size of the effect.
- Check the Greenhouse–Geisser ε: if it is below 0.75, the corrected degrees of freedom and the corrected p-value should be reported.
- Look at the subject profiles chart to confirm that a handful of subjects are not driving the whole pattern; compare with the Friedman test result if needed.
Worked Examples
A four-point follow-up measurement
For eight subjects measured at four points in time the condition means are 5.25, 7.00, 8.88, and 10.13. With SS_condition = 109.625, SS_error = 3.375, and MS_error = 0.161, the result is F(3, 21) = 227.370; p < 0.001. Partial eta squared of 0.970 indicates a very large effect; because the Greenhouse–Geisser ε = 0.618, the corrected result should be reported.
F statistic (condition effect): 227.370 · Degrees of freedom — condition (df₁): 3 · Degrees of freedom — error (df₂): 21
Two conditions — equivalent to a paired t-test
The seven participants have a pretest mean of 12.43 and a posttest mean of 15.57. With SS_condition = 34.571 and SS_error = 3.429, F(1, 6) = 60.500; p < 0.001, so the increase is significant. With two conditions sphericity holds automatically, so ε = 1.000, and F equals the square of the paired t-test statistic: t² = 60.500.
F statistic (condition effect): 60.500 · Degrees of freedom — condition (df₁): 1 · Degrees of freedom — error (df₂): 6
Three tasks, no significant difference
The six participants have means of 21.50, 21.50, and 21.83 across the three tasks. With SS_condition = 0.444 and SS_error = 8.889, F(2, 10) = 0.250; p = 0.784: there is no difference between the tasks. The subject effect, on the other hand, accounts for 92.0% of the total variability with SS_subject = 106.944 — the people differ greatly from one another, yet each performs similarly across the three tasks.
F statistic (condition effect): 0.250 · Degrees of freedom — condition (df₁): 2 · Degrees of freedom — error (df₂): 10