Repeated Measures ANOVA
When you measure the same people under several conditions (the same patients before, during, and after treatment), you have a repeated-measures design. Just as the paired t-test beats the independent one, repeated-measures ANOVA has a superpower: it can subtract out the fact that people just differ from each other.
The problem with big individual differences
Suppose you test three conditions and people vary enormously to begin with: some always score high, some always low. In a between-subjects design, that person-to-person variability becomes noise that swamps the condition effect. You might have a perfectly real effect and still fail to find it, buried under "well, people are just different."
🎮 Removing the Individual Differences
Eight people, three conditions, and each line is one person. Crank up how different people are, then flip to the subject-centered view to see the condition pattern snap into focus.
The repeated-measures trick
Because every person is measured in every condition, each person serves as their own control. The analysis can split off a "subjects" chunk of variation and set it aside, leaving a much cleaner comparison of the conditions. In the subject-centered view above, where each person's own average is subtracted out, the tangle of lines collapses into a clear shared pattern. That's exactly what repeated-measures ANOVA does mathematically. It's also the reason the honest picture of a within-subjects result is one line per person rather than a row of bars: the chart chooser calls that a slopegraph, and Tables & Figures That Don't Lie shows what goes wrong when you draw the bars instead.
The payoff is power. By removing stable individual differences from the error term, a repeated-measures design can detect a real effect with far fewer participants than a between-subjects design would need. Fewer people, more sensitivity — that's why it's so popular.
The catch: sphericity
Repeated measures come with their own assumption, sphericity: roughly, that the differences between every pair of conditions have similar variance. When it's violated (common with time-based data, where adjacent timepoints correlate more than distant ones), the test becomes too liberal. Standard corrections (Greenhouse-Geisser, Huynh-Feldt) adjust the degrees of freedom to compensate.
What ε is, and what it costs
Both corrections work through a single number, epsilon, written ε. It measures how far the pattern of condition-to-condition differences has drifted from sphericity, and it runs from 1 down to a hard floor of 1/(k − 1). Perfect sphericity gives ε = 1. Three conditions can fall no lower than .5, four no lower than .33. Multiply both degrees of freedom by ε and re-read the F table; the F ratio itself never changes, only the distribution it is compared against.
Problem 16 of the practice problems hands you a case with 12 typists and 3 keyboard layouts, F = 5.84, and a Greenhouse-Geisser ε of .71. Four ways of reading the same ratio:
| Correction | ε | df | p |
|---|---|---|---|
| None (sphericity assumed) | 1.00 | 2, 22 | .009 |
| Huynh-Feldt | .785 | 1.57, 17.27 | .016 |
| Greenhouse-Geisser | .71 | 1.42, 15.62 | .020 |
| Lower-bound (the floor) | .50 | 1, 11 | .034 |
The correction more than doubles the p-value here without touching a single data point. Even the floor leaves this result standing, but a study reporting an uncorrected .04 would not survive the trip.
Greenhouse-Geisser is known to under-estimate ε when the violation is mild, so Huynh-Feldt applies a correction to the correction (that .785 is computed from the .71, not measured separately) and can reach 1, at which point software caps it. The convention most textbooks give: take Greenhouse-Geisser when its ε falls below .75 and Huynh-Feldt when it does not. Report which one you used and print the ε beside it, because fractional degrees of freedom tell a reader that something was corrected without telling them by how much. The assumption-checks sheet lists this one alongside every other check a comparison of means owes you.
There is also a more modern route. A mixed (multilevel) model treats each participant as a random effect and estimates the correlation structure directly, so it needs no sphericity correction, tolerates unequal spacing between timepoints, and keeps a participant who missed one session instead of dropping them from every condition. Repeated-measures ANOVA is still the clearer way to understand what within-subjects designs buy you, which is why it comes first. When the repeated outcome is a category rather than a number, the same reasoning arrives as McNemar's test: pair each person with themselves and count only the ones who changed.
Why it matters: within-subjects designs are everywhere in psychology, medicine, and UX research, anywhere you can measure the same unit repeatedly. Knowing that they trade a sphericity assumption for a big gain in power helps you design more efficient studies. Plan My Analysis will lay one out for you, assumptions and write-up included.
Problem 16 of the practice problems works the case above from the sums of squares up, so you build the F yourself before correcting it, and Problem 27 asks the prior question: whether a study is between, within, or neither.
Common questions
What is sphericity and why does it matter?
Sphericity is the assumption that the variance of the difference between every pair of conditions is roughly equal. When it fails (typical for time-based measurements, where neighboring timepoints correlate more than distant ones), the F-test's p-values come out too small, inflating false positives. Mauchly's test flags it, and corrections fix it.
Mauchly's test came back non-significant. Does that settle it?
Less than it looks. Mauchly's test is a hypothesis test like any other, so what it reports depends heavily on how many people you have. Simulated at 5,000 samples per row, with three conditions and a real violation of ε = .71, it rejects sphericity 53% of the time at 12 participants, 82% at 20 and 96% at 30. The damage the violation does is meanwhile flat: the uncorrected F ran between 6% and 7% false positives at every sample size tried, and the Greenhouse-Geisser correction returned it to 5% each time. Your sample size governs the test's verdict far more than the problem does. Since the correction costs almost nothing when sphericity does hold, the safer habit is to apply it from the estimated ε and report that value, rather than letting Mauchly decide.
What happens if a participant misses one condition?
A classical repeated-measures ANOVA drops that person from the analysis entirely, in every condition, because the computation needs a complete row per participant. Lose a handful of people that way and you can give back most of the power the design was chosen for. Two respectable routes out: a mixed model, which keeps every observation a person did provide, or a principled treatment of the missing values before the ANOVA. Substituting the person's own mean for the gap is not one of them, since it invents data with zero variance and shrinks your error term.