Atlas
statminds
GLM (Within-Subjects Design)The underlying model family class (e.g. GLM, linear model, categorical matrix, log-linear).Parametric ReferenceStatistical methods that assume a specific probability distribution family (typically normal).12-stage workflow

One-Way Repeated Measures ANOVA

The engine for Pure Temporal Discovery. This model audits how a single group evolves across multiple timepoints, using each participant as their own baseline control.

Model familyGLM (Within-Subjects Design)
Hypothesisomnibus
AliasesWithin-Subjects ANOVA · One-Factor Repeated Measures · Temporal Omnibus Test
G1
Temporal Trend Audit
Isolate the pure effect of time on a continuous outcome.
G2
Variance Self-Correction
Remove between-person noise by using participants as their own reference.
G3
Efficiency Maximization
Achieve high statistical power with significantly smaller sample sizes.
Visual Overview Dashboard
1

What is it?

One-Way Repeated Measures ANOVA compares means across three or more conditions where the same subjects are tested at every condition.

2

When to use it

  • 1 Within Factor: Same subjects under 3+ conditions/timepoints.
  • 1 Outcome: Continuous scale variable.
  • No Between-Subjects Factor: Single cohort design.
3

Core Idea

Each participant acts as their own control. By subtracting subject-to-subject baseline variance from the error term, statistical power increases dramatically:

Trial 1Trial 2Trial 3Connected trajectories show change

Even if subjects vary widely in baseline scores, the trend (slope) remains clear. Repeated measures ANOVA isolates and removes this baseline spread.

4

Hypotheses

H₀: μ₁ = μ₂ = μ₃ (All condition means equal)
Hₐ: At least one condition mean differs
5

How it works

Subtracts **Between-Subjects Variance** (SS_Subjects) from the denominator of the F-ratio: F = MS_Conditions / MS_Residual_Error

6

Assumptions

📈 Normality: Normality within each condition.
🔮 Sphericity: Homogeneous variances of differences.
🔄 Order Independence: Counterbalanced treatments.
7

Important Note

If sphericity fails, we adjust using the Greenhouse-Geisser epsilon. Alternatively, pivot to a Multivariate ANOVA (MANOVA) approach.

8

Quick Example

SubjectBaseline3 Months6 Months
Subj 145.062.174.5
Subj 221.438.052.3
Interactive Sandbox

One-Way RM ANOVA Live Laboratory

Change condition means and baseline subject spread to visualize the power of removing individual intercepts.

Presets
Mean Trial 1 (μ_1)45
Mean Trial 2 (μ_2)50
Mean Trial 3 (μ_3)65
Subject baseline Spread12
Residual Noise (σ)6
Subject Trajectories (Lines track individual participants)Y-Axis: Outcome Score
20406080AVERAGE TRENDCondition 1Condition 2Condition 3
One-Way RM ANOVA Calculations Table
SourceSSdfMSFp-value
Conditions (Within)1280.72640.426.10< 0.001
Subjects (Removed)3502.09389.1--
Residual Error441.71824.5--
Statistical Verdict
✅ Reject H₀ (Significant)
Condition differences are statistically significant (p = < 0.001). Notice that high baseline subject-to-subject spread did NOT inflate our error term.
The 12-Stage Precision Workflow
01Time-Point Parity
Hypotheses
We test if the means across all timepoints are equal, hunting for the moment of significant clinical shift.
02Sphericity Threshold
Assumptions
The most critical hurdle: ensuring the variance of differences between all timepoint pairs is consistent.
03Epsilon Forensics
Diagnostics
Calculating Greenhouse-Geisser and Huynh-Feldt epsilon values to determine the level of 'Temporal Correction' required.
04Recovery Curves
Examples
Tracking a single group of FlowMotion practitioners from baseline to 1, 3, and 6 months to map the duration of effect.
05Friedman Pivot
Alternatives
Knowing when to abandon the mean for the Friedman Test if temporal outliers or non-normality degrade the model.
06Temporal Pairwise
Post-hoc
Executing 'Trend Analysis' or pairwise strikes to find exactly which week the intervention 'broke through'.
07Partial η²
Effect Size
Isolating the percentage of 'within-person' variance explained solely by the passage of time.
08ICC Multiplier
Sample Size
Leveraging high correlations between repeated measures to minimize the required N without sacrificing rigor.
09The Trend Narrative
Reporting
Translating within-subject F-statistics into a clear story of progressive improvement or stabilization.
10Sphericity Commands
Software
Executing 'Mauchly's Test' and the subsequent automated correction logic within the statistical environment.
11The Carryover Error
Common Mistakes
Identifying the 'Ghost of Past Treatment': failing to account for carryover effects in temporal designs.
12Design History
References
Connecting the model to the foundations of within-subjects experimental psychology and longitudinal biostatistics.
01Hypothesis test logic

Hypotheses

Pragmatic null and alternative hypotheses defined in mathematical notation.

We test the null hypothesis of equality to prove the alternative of distinction.
Logic Core
Null · H₀

H₀: μ₁ = μ₂ = μ₃ = ... = μₖ (all repeated measure means are equal)

Alternative · Hₐ

Hₐ: At least one time point/condition mean differs (∃ i,j: μᵢ ≠ μⱼ)

Why it matters omnibus

Tests within-subjects effects across conditions/time. Violation of sphericity affects F-test validity; use Greenhouse-Geisser (ε < .75) or Huynh-Feldt (ε > .75) correction when Mauchly's test p < .05.

02Model diagnostics

Assumptions

The core mathematical criteria needed to ensure that statistical testing remains unbiased and valid.

Variance homogeneity is a key assumption, though ANOVA is robust to moderate inequality when group sizes are equal. Severe inequality requires Welch's adjustment to prevent distorted p-values.
Integrity Shield
6
Assumptions
4
Critical / High Severity
How to check
Quick
Inspect variable type; verify measurements are not discrete categories but truly continuous (e.g., reaction time in ms, symptom scores, performance metrics)
Rigorous
Confirm measurement units are interval/ratio with equal distances between values; verify scale has sufficient resolution (not just 3-5 ordered categories)
If violated
If ordinal with limited categories (e.g., Likert 1-5) → use Friedman test (non-parametric alternative) + Conover post-hoc. If binary outcomes → use Cochran's Q test. If truly categorical → use chi-square test for repeated measures (McNemar-Bowker). If many ordinal levels (7+) → may proceed cautiously with RM-ANOVA
friedmancochran q test
How to check
Quick
Design review: verify each subject ID has measurements at all timepoints/conditions. Check data structure is in long format with subject ID variable and condition/time variable
Rigorous
Cross-tabulate subject IDs by condition/time; verify no missing cells (complete data for all subjects at all timepoints). Calculate intraclass correlation (ICC) to confirm within-subject correlation > 0
If violated
If independent groups (different participants per condition) → use one-way between-subjects ANOVA or Kruskal-Wallis. If mixed design (some factors within, some between) → use mixed ANOVA. If missing data present → use linear mixed model (LMM) which handles missing values via maximum likelihood
one way anovamixed anovalinear mixed model
How to check
Quick
Count missing values per subject and timepoint; verify each subject has complete data. Create missingness pattern table
Rigorous
Test if data is missing completely at random (MCAR) using Little's MCAR test. Examine missingness patterns and correlates of missingness
If violated
If < 5% missing and MCAR → listwise deletion acceptable but reduces power. If > 5% missing or non-random missingness: (1) BEST: Use linear mixed model (LMM/multilevel model) with maximum likelihood estimation (handles missing data without deletion); (2) Multiple imputation with mice or Amelia, then pool results; (3) Last observation carried forward (LOCF) only if justified theoretically. NEVER use pairwise deletion in RM-ANOVA
linear mixed model
How to check
Quick
Calculate all pairwise difference scores (e.g., Time2-Time1, Time3-Time1, Time3-Time2). Create Q-Q plots and histograms for each set of differences. Visual inspection for severe skewness or outliers
Rigorous
Shapiro-Wilk test on each set of difference scores (p > .05 indicates normality). Check skewness (< |2|) and kurtosis (< |7|) for difference scores. Anderson-Darling test for small samples
If violated
If mild violation with n ≥ 30: RM-ANOVA is robust via Central Limit Theorem, proceed. If notable violation: (1) Transform DV (log, sqrt, or rank-based) and recompute differences; (2) Use Friedman test (non-parametric, rank-based) + Conover or Nemenyi post-hoc; (3) Permutation RM-ANOVA (resampling-based); (4) LMM with robust SEs; (5) Bootstrap confidence intervals for pairwise differences
friedmanlinear mixed model
How to check
Quick
Mauchly's test of sphericity (included in RM-ANOVA output): p > .05 indicates sphericity assumption met. Greenhouse-Geisser epsilon (ε): values close to 1.0 indicate sphericity met
Rigorous
Examine variance-covariance matrix of repeated measures. Calculate all pairwise difference variances and compare. Epsilon values: ε < .75 (moderate violation), ε < .50 (severe violation)
If violated
Sphericity violation is COMMON with ≥3 conditions. If Mauchly's p < .05: (1) BEST: Apply Greenhouse-Geisser correction if ε < .75 (conservative, reduces df); (2) Apply Huynh-Feldt correction if ε > .75 (less conservative); (3) Use multivariate approach (MANOVA with Pillai's trace, no sphericity assumption but requires larger n); (4) Use LMM with unstructured covariance (models actual correlation pattern). NEVER ignore sphericity violation - invalidates F-test
linear mixed model
How to check
Quick
Boxplots of each timepoint/condition; identify values > 1.5 IQR beyond quartiles. Boxplots of pairwise difference scores. Check for extreme z-scores (|z| > 3) within each condition
Rigorous
Calculate standardized residuals from RM-ANOVA model (|r| > 3 suspect). Mahalanobis distance for multivariate outliers across all timepoints. Influence diagnostics: Cook's D > 4/n suggests influential case
If violated
First: verify data entry errors and correct if found. If legitimate outliers: (1) Report results with and without outliers (sensitivity analysis); (2) Winsorize extreme values to 5th/95th percentiles (pre-specify threshold); (3) Use robust RM-ANOVA with trimmed means or M-estimators; (4) Use Friedman test (rank-based, resistant to outliers); (5) Bootstrap CIs. For longitudinal data, outliers may indicate clinically meaningful events - consider modeling explicitly (e.g., change-point analysis)
friedman
03Residual Forensics

Diagnostics

Checking residual plots and indices to examine model deviations and ensure standard error integrity.

Trust, but verify. Outliers can reveal critical data quality issues or genuine subgroup effects that averages obscure.
System Health
Essential checks
  1. Mauchly's test of sphericity (p > .05 indicates sphericity met)
  2. Greenhouse-Geisser epsilon (ε) value to quantify sphericity violation
  3. Q-Q plots of difference scores to assess normality
  4. Boxplots at each timepoint to identify outliers
Recommended checks
  1. Shapiro-Wilk test on difference scores (if n < 50)
  2. Profile plot (means across time/conditions) to visualize trends
  3. Within-subject variability plot
  4. Variance-covariance matrix inspection
  5. Intraclass correlation coefficient (ICC) to quantify within-subject correlation
  6. Residual vs fitted plot
  7. Descriptive statistics (M, SD, n) per condition/timepoint
04Live Instances

Applied Minds

Review concrete study examples, data layout guidelines, and copy executable syntax scripts.

Theory is the map. Practice is the terrain. Simulation bridges the gap.
Applied Wisdom
Example 01

Mindfulness Meditation and Cortisol Levels Across Day (4 Timepoints)

Research question: Does mindfulness meditation training affect diurnal cortisol rhythm? Design: 8-week mindfulness intervention (n=40 adults with chronic stress). Outcome: Salivary cortisol (μg/dL) measured at 4 timepoints (awakening, +30min, noon, bedtime) pre-intervention and post-intervention. We analyze POST-intervention data only (4 within-subject timepoints).

DesignWithin-subjects, 4 repeated measures per subject
Total n160
Outcome ScaleSalivary cortisol concentration (μg/dL, continuous)
# One-way Repeated Measures ANOVA: Cortisol across 4 daily timepoints
# Based on diurnal cortisol patterns in mindfulness research

library(tidyverse)   # Data manipulation
library(ez)          # For ezANOVA (comprehensive RM-ANOVA)
library(rstatix)     # For get_summary_stats, anova_test
library(effectsize)  # For effect sizes
library(ggpubr)      # For ggqqplot

# Simulate realistic cortisol data (or load: data <- read.csv("cortisol.csv"))
set.seed(2025)
subject_ids <- rep(1:40, each=4)
timepoint <- rep(c("Awakening", "30min", "Noon", "Bedtime"), 40)

# Realistic cortisol pattern: high at awakening, peak at +30min, decline by bedtime
data_wide <- data.frame(
  subject = 1:40,
  Awakening = rnorm(40, mean=0.52, sd=0.12),
  ThirtyMin = rnorm(40, mean=0.68, sd=0.15),  # +30% awakening response
  Noon = rnorm(40, mean=0.24, sd=0.08),
  Bedtime = rnorm(40, mean=0.08, sd=0.04)
)

# Convert to long format (required for RM-ANOVA)
data_long <- data_wide %>%
  pivot_longer(cols = c(Awakening, ThirtyMin, Noon, Bedtime),
               names_to = "timepoint",
               values_to = "cortisol") %>%
  mutate(timepoint = factor(timepoint, 
                            levels=c("Awakening", "ThirtyMin", "Noon", "Bedtime")))

# === STEP 1: Check Assumptions ===

# 1. Descriptive statistics per timepoint
data_long %>%
  group_by(timepoint) %>%
  get_summary_stats(cortisol, type = "mean_sd")

# 2. Visualize: Profile plot (means across time)
data_long %>%
  group_by(timepoint) %>%
  summarise(M = mean(cortisol), SE = sd(cortisol)/sqrt(n())) %>%
  ggplot(aes(x=timepoint, y=M, group=1)) +
  geom_line(color="steelblue", size=1.2) +
  geom_point(size=3) +
  geom_errorbar(aes(ymin=M-SE, ymax=M+SE), width=0.2) +
  labs(title="Diurnal Cortisol Pattern(Post-Intervention)",
       x="Time of Day", y="Mean Cortisol(μg/dL) ± SE") +
  theme_classic()

# 3. Check outliers (boxplots per timepoint)
ggboxplot(data_long, x="timepoint", y="cortisol", add="jitter",
          title="Cortisol by Timepoint", xlab="Time", ylab="Cortisol(μg/dL)")

# 4. Check normality of DIFFERENCE SCORES
diff_data <- data_wide %>%
  mutate(
    diff_Awk_30min = ThirtyMin - Awakening,
    diff_Awk_Noon = Noon - Awakening,
    diff_Awk_Bed = Bedtime - Awakening,
    diff_30min_Noon = Noon - ThirtyMin,
    diff_30min_Bed = Bedtime - ThirtyMin,
    diff_Noon_Bed = Bedtime - Noon
  )

# Q-Q plots for key differences
par(mfrow=c(2,3))
for (diff_var in c("diff_Awk_30min", "diff_Awk_Noon", "diff_Awk_Bed",
                   "diff_30min_Noon", "diff_30min_Bed", "diff_Noon_Bed")) {
  qqnorm(diff_data[[diff_var]], main=diff_var)
  qqline(diff_data[[diff_var]])
}

# Shapiro-Wilk on difference scores
shapiro.test(diff_data$diff_Awk_30min)  # p > .05 OK
shapiro.test(diff_data$diff_Awk_Noon)   # p > .05 OK

# === STEP 2: Run One-way RM-ANOVA ===

# Method 1: Using ez::ezANOVA (comprehensive output)
rm_anova <- ezANOVA(
  data = data_long,
  dv = cortisol,
  wid = subject,
  within = timepoint,
  detailed = TRUE,
  type = 3
)

print(rm_anova)

# Output includes:
# - ANOVA table with F, p-value, generalized eta squared (ges)
# - Mauchly's test of sphericity
# - Greenhouse-Geisser and Huynh-Feldt corrections (if sphericity violated)

# Method 2: Using rstatix (tidy output)
rm_anova2 <- anova_test(
  data = data_long,
  dv = cortisol,
  wid = subject,
  within = timepoint
)

get_anova_table(rm_anova2)

# === STEP 3: Check Sphericity ===
cat("\n=== Mauchly's Test of Sphericity ===")
print(rm_anova$`Mauchly's Test for Sphericity`)

# If p < .05 (sphericity violated), use corrected results:
cat("\n=== Sphericity Corrections ===")
print(rm_anova$`Sphericity Corrections`)

# Interpretation:
# - If Mauchly's p > .05: use uncorrected ANOVA results
# - If Mauchly's p < .05 and GG epsilon < .75: use Greenhouse-Geisser correction
# - If Mauchly's p < .05 and GG epsilon > .75: use Huynh-Feldt correction

# === STEP 4: Effect Size ===
eta_squared(rm_anova2$ANOVA, partial=TRUE)
# partial η² for within-subjects factor

# === STEP 5: Post-hoc Pairwise Comparisons (if p < .05) ===
posthoc <- data_long %>%
  pairwise_t_test(
    cortisol ~ timepoint,
    paired = TRUE,
    p.adjust.method = "bonferroni"  # or "holm"
  )

print(posthoc)

# Compact display
posthoc %>%
  select(group1, group2, p.adj, p.adj.signif) %>%
  arrange(p.adj)

# === STEP 6: Visualize Results ===
# Bar plot with error bars
data_summary <- data_long %>%
  group_by(timepoint) %>%
  summarise(
    M = mean(cortisol),
    SE = sd(cortisol)/sqrt(n())
  )

ggplot(data_summary, aes(x=timepoint, y=M, fill=timepoint)) +
  geom_bar(stat="identity", width=0.6, alpha=0.8) +
  geom_errorbar(aes(ymin=M-1.96*SE, ymax=M+1.96*SE), width=0.2) +
  labs(title="Diurnal Cortisol Pattern After Mindfulness Training",
       x="Time of Day", y="Mean Cortisol(μg/dL) ± 95% CI") +
  scale_fill_brewer(palette="Blues") +
  theme_classic() +
  theme(legend.position="none")

# === APA-Style Reporting ===
cat("\n=== APA Results ===")
cat("
A one-way repeated measures ANOVA was conducted to examine diurnal cortisol
patterns following 8 weeks of mindfulness training(N=40). Mauchly's test 
indicated that the assumption of sphericity was met, χ²(5) = 8.32, p = .14.
There was a significant effect of time of day on cortisol levels, 
F(3, 117) = 287.45, p < .001, partial η² = .88 (large effect).

Post-hoc pairwise comparisons with Bonferroni correction revealed:
- Cortisol significantly increased from awakening(M=0.52, SD=0.12) to 
  +30 minutes(M=0.68, SD=0.15), p < .001 (cortisol awakening response).
- Cortisol then declined significantly from +30min to noon(M=0.24, SD=0.08), 
  p < .001.
- Bedtime cortisol(M=0.08, SD=0.04) was significantly lower than all other 
  timepoints, all p < .001.

These results demonstrate a normal diurnal cortisol rhythm with expected
awakening response and evening nadir, consistent with healthy HPA axis
function following mindfulness training.
")
Interpretation Blueprint

F(3, 117) = 287.45, p < .001, partial η² = .88 (very large effect). Significant main effect of time of day on cortisol. Post-hoc tests show classic diurnal pattern: awakening response (+31% from awakening to +30min, p < .001), then progressive decline to bedtime nadir (p < .001 for all comparisons). Results consistent with Matousek et al. (2010) showing mindfulness preserves healthy HPA axis function.

05Tactical Pivots

Alternatives

Structured fallback pathways for choosing alternative tests when normality or slopes requirements fail.

When the path is blocked, pivot. Rigor is not rigidity; it is the intelligent adaptation to reality.
Adaptive Strategy
Measurement Precision Ladder Ideal · Ratio / Interval
Ratio
Maintain RM ANOVA. Captures pure temporal change with maximum within-subject power.
Peak Signal
Interval
Ideal for Longitudinal Scales. Ensure the 'Internal Standard' remains constant for each participant.
Standard Precision
Ordinal
Pivot to Friedman Test to audit rank-based temporal shifts while neutralizing outlier noise.
Rank Compression
Nominal
Abandon ANOVA. Use McNemar's Test to model binary 'Flipping' across temporal thresholds.
Information Suicide
Temporal Trajectory Audit Pure Within-Subjects
Repeated
Short-term follow-up.
Stay with One-Way RM ANOVA. Optimal for small-scale longitudinal discovery.
Massive-T
50+ observations.
Pivot to Time-Series Analysis (ARIMA) to account for complex autoregressive dependencies.
Varying-Lag
Unequal time gaps.
Pivot to Linear Mixed Models (LMM) to model time as a continuous, weighted slope.
Adaptive Technical Safeguards · adaptive safeguards
sphericity
  • Greenhouse-Geisser Correction — The mandatory safeguard when Mauchly's strike is significant.
  • MANOVA Profile Analysis — Treat timepoints as independent outcomes to bypass the sphericity mandate.
Non-normal residuals
  • Friedman Test — The rank-based equivalent for non-normal temporal distributions.
  • Bootstrap RM Strike — Generate robust CIs for the temporal mean-shift.
06Adjusted Comparisons

Post-hoc

Group mean comparisons and correction controls (e.g. Tukey HSD, Bonferroni) to protect against Family-Wise Error Rates.

The omnibus test opens the door; post-hoc analysis explores the room.
Forensic Detail
Adjusted Comparisons

Post-hoc pairwise tests defined for this model.

Interpretation Guidelines

No specific guidelines provided.

07Standardized scale impact

Effect Size

Understanding effect sizes (e.g., Cohen's d, Partial Eta-Squared) and clinical impact benchmarks.

Eta-squared tells you the 'ownership' of variance. How much of the outcome does your treatment actually control?
Impact Magnitude

Proportion of variance in DV explained by IV after removing variance from other factors. Small: .01, Medium: .06, Large: .14 (Cohen, 1988)

Comparable across different designs (within vs between). Small: .02, Medium: .13, Large: .26 (Bakeman, 2005)

For pairwise comparisons. Calculated on difference scores. Small: 0.2, Medium: 0.5, Large: 0.8

Coefficient of concordance (0-1). Measures effect size for Friedman test (non-parametric alternative)

Recommended Metric: partial_eta_squared for omnibus test; Cohen's d for pairwise comparisons (based on difference scores)
Small
0.2
Medium
0.5
Large
0.8
0.50
partial_eta_squared for omnibus test; Cohen's d for pairwise comparisons (based on difference scores)
Recommended Measure
4
Available Metrics
ReportUse partial_eta_squared for omnibus test; Cohen's d for pairwise comparisons (based on difference scores) to represent clinical impact magnitude.
08Statistical Power

Sample Size

Guidelines for minimum sample requirements and power analysis parameters.

An underpowered study is an ethical failure. Respect the data by collecting enough of it.
Power Protocol
Floor Requirements

The 'Self-Control' Minimum: A minimum of 15 participants is required for a pure within-subjects discovery, provided the temporal measurements are highly reliable.

Effect SizeParametersRequired n
Small Effectf=.10 (Small)n ≈ 120 total
Medium Effectf=.25 (Medium)n ≈ 28 total
Large Effectf=.40 (Large)n ≈ 15 total
Key considerations

Sphericity is the gatekeeper. If the correlation between timepoints is not uniform, the Greenhouse-Geisser correction will 'deflate' your power. Always recruit 20% more than the power target to account for 'Drop-out' at late-stage timepoints.

G*Power StrategyBenchmark: F-tests → ANOVA: Repeated measures, within factors. Parameters: 3 measurements, α = .05, Power = .80, Correlation = 0.5. The 'Efficiency Engine': Within-subject designs neutralize between-person noise, maximizing signal detection.
09APA narrative blueprint

Reporting

How to compile statistical results into publication prose matching APA and journal style guides.

Report the F-statistic as the signal-to-noise ratio, showing how much of the variance is driven by treatment differences versus background noise.
Narrative Arc
Worked APA paragraph example
A one-way repeated measures ANOVA was conducted to examine diurnal cortisol patterns following 8 weeks of mindfulness training (N = 40). Data met the assumption of normality for difference scores (Shapiro-Wilk p > .05). Mauchly's test indicated that the assumption of sphericity was met, χ²(5) = 8.32, p = .14. There was a significant effect of time of day on cortisol levels, F(3, 117) = 287.45, p < .001, partial η² = .88, indicating a very large effect. Post-hoc pairwise comparisons using Bonferroni correction revealed significant differences between all timepoints (all p < .001), demonstrating the expected diurnal pattern: cortisol increased from awakening (M = 0.52, SD = 0.12) to +30 minutes (M = 0.68, SD = 0.15), then declined progressively to noon (M = 0.24, SD = 0.08) and bedtime (M = 0.08, SD = 0.04). These results confirm a healthy cortisol rhythm following mindfulness intervention, with a robust awakening response and appropriate evening nadir.
Reusable template

A one-way repeated measures ANOVA was conducted to examine brief description, e.g., 'changes in anxiety across 5 CBT sessions'. State sample: 'N = X participants completed assessments at k timepoints'. Assumption checks: 'Mauchly's test indicated that the assumption of sphericity was [met/violated, χ²(df) = X.XX, p = .XXX. If violated: Therefore, Greenhouse-Geisser/Huynh-Feldt corrected results are reported (ε = X.XX)'.] There was a significant/non-significant effect of IV on DV, F(df1, df2) = X.XX, p = .XXX, partial η² = .XX interpret: small/medium/large effect. If significant: Post-hoc pairwise comparisons using Bonferroni/Holm correction indicated describe key differences with means, SDs, and p-values. Conclude with interpretation in context.

Essential statistics to report
  • F-statistic with degrees of freedom (report corrected df if sphericity violated)
  • p-value (corrected if sphericity violated)
  • Effect size (partial η² or generalized η²)
  • Mauchly's test result (W statistic, df, p-value)
  • Greenhouse-Geisser or Huynh-Feldt epsilon if sphericity violated
  • Descriptive statistics per condition/timepoint (M, SD, n)
  • Post-hoc pairwise results if significant (p-values, effect sizes)
  • Statement about assumption checks
10Exhibit Builder

Manuscript Lab

Copy standard summary tables and forensic reporting grids to outline analysis details.

Table 1: One-Way Repeated Measures ANOVA for Recovery across 3 Timepoints
SourceSSdfMSFpηp²
Time (Within)112.41.4279.1518.45< .001.19
Error (Within)654.2112.185.83
Total766.6113.6
Note. Greenhouse-Geisser correction applied to account for sphericity violations. N = 80.
df (1.42)The fractional df confirms a Greenhouse-Geisser adjustment. This protects the result from the 'Sphericity Trap' which often inflates Type I error.
F (18.45)This high ratio proves a dominant recovery pulse—subjects changed significantly more than random drift would predict.
Header glossary

The primary factor auditing internal change within the same subjects over multiple intervals.

Adjusted degrees of freedom. In RM-ANOVA, we reduce the df (using GG or HF) to penalize the model for correlated errors across time.

Purified Variance. Standardized estimate of signal strength per temporal unit.

The Temporal Pulse. Measures how much stronger the 'Recovery Signal' is than random internal variation.

The Chance Probability. Likelihood that the observed trajectory occurred by fluke. Target < .05.

Trajectory Ownership. The percentage of internal variance accounted for solely by the passage of time.

11Algorithmic Logic

Command Center

Syntax libraries and function parameters for executing calculations in stats packages.

Code is the modern laboratory. Clean execution ensures reproducible discovery.
Execution Engine
# 1. Execute RM-ANOVA with automatic Sphericity checks
model <- afex::aov_ez(id = 'subject_id', dv = 'score', data = df, within = 'timepoint')
summary(model)

# 2. Extract Pairwise Temporal Contrasts
emmeans(model, pairwise ~ timepoint, adjust = 'bonferroni')
Library stack
R
afexemmeansggplot2
Python
pingouinpandas
Elite Forensic Strike

Instantly identify if your temporal data requires a Greenhouse-Geisser shield or a pivot to LMM.

# Execute Sphericity and Variance Audit
performance::check_sphericity(model)

# Generate APA Narrative including GG epsilon values
report::report(model)
12The Over-adjustment Trap

Common Mistakes

Analytical caveats and corrections to maintain modeling integrity.

Wisdom is learning from the failures of others. Anticipate the error before it occurs.
Defensive Logic
Why it's wrong
Between-subjects ANOVA treats all observations as independent, violating the independence assumption when the same subjects are measured multiple times. This inflates Type I error rates and ignores within-subject correlation, losing statistical power. The error term is incorrect (uses between-subject variability instead of within-subject variability).
The correction
Use one-way repeated measures ANOVA (or linear mixed model) for within-subjects designs. RM-ANOVA partitions variance into between-subjects and within-subjects components, using the correct error term and accounting for correlation among repeated measures. This increases power (smaller standard errors) and controls Type I error.
Why it's wrong
Sphericity violation means the variances of pairwise differences are unequal, invalidating the F-test. Using uncorrected results inflates Type I error (liberal test, too many false positives). The uncorrected F-test assumes compound symmetry (equal variances and covariances), which is often unrealistic with ≥3 timepoints.
The correction
Always check Mauchly's test. If p < .05 (sphericity violated): (1) Use Greenhouse-Geisser correction if ε < .75 (conservative); (2) Use Huynh-Feldt if ε > .75; (3) Use multivariate approach (MANOVA); or (4) Use LMM with unstructured covariance. Report corrected df and p-values. NEVER ignore sphericity violation.
Why it's wrong
Listwise deletion (removing any subject with ≥1 missing timepoint) drastically reduces sample size and statistical power. If data are not missing completely at random (MCAR), it introduces bias. Even with MCAR, it's inefficient—you discard valid data from incomplete cases.
The correction
Use linear mixed models (LMM) which handle missing data via maximum likelihood—no case deletion needed. LMM is unbiased under MAR (missing at random) and more powerful. Alternatively, use multiple imputation. Only use listwise deletion if missingness is <5% and clearly MCAR.
Why it's wrong
RM-ANOVA assumes normality of the pairwise difference scores (e.g., Time2-Time1, Time3-Time1), NOT normality at each timepoint separately. Data can be normal at each timepoint but have non-normal differences, or vice versa. Checking only marginal distributions misses the key assumption.
The correction
Calculate all pairwise differences and assess normality of these difference scores using Q-Q plots and Shapiro-Wilk tests. If difference scores are notably non-normal, use Friedman test (non-parametric) or transform the DV before computing differences.
Why it's wrong
The omnibus F-test only tells you that at least one mean differs—it doesn't identify which specific timepoints/conditions differ. Without post-hoc tests or planned contrasts, you can't interpret the pattern of change (e.g., linear trend, early vs late gains, pairwise differences).
The correction
If omnibus p < .05, always conduct post-hoc pairwise comparisons (with Bonferroni or Holm correction) or planned contrasts (e.g., polynomial contrasts for trend analysis). Report specific pairwise p-values and effect sizes (Cohen's d for differences) to show where changes occur.
Why it's wrong
With k timepoints, there are k(k-1)/2 pairwise comparisons. Testing each at α = .05 inflates familywise error rate dramatically. E.g., with 4 timepoints (6 comparisons), familywise error ≈ 26% instead of 5%.
The correction
Apply multiple comparison corrections: Bonferroni (α/m), Holm (sequential), or use post-hoc procedures embedded in RM-ANOVA software. These control familywise error rate at α = .05 across all comparisons.
Why it's wrong
Repeated measures designs do not automatically imply causation, especially in observational studies without experimental manipulation or control groups. Observed changes over time could be due to maturation, regression to the mean, history effects, or other confounds.
The correction
For causal claims, use experimental designs with random assignment and control groups (e.g., pre-post RCT with control). In observational studies, be explicit about limitations: report 'changes over time' or 'associations', not 'effects'. Consider confounders and alternative explanations.
13Academic Lineage

References

Scholarly lineage and citation keys grounding the statistical framework.

We stand on the shoulders of giants. Honor the source of the method.
Academic Lineage
[1]
Matousek, R. H., Dobkin, P. L., & Pruessner, J. (2010). Cortisol as a marker for improvement in mindfulness-based stress reduction. Complementary Therapies in Clinical Practice, 16(1), 13-19.
Mindfulness meditation alters cortisol awakening response and diurnal rhythm. Basis for Example 1.
doi: 10.1016/j.ctcp.2009.06.004
[2]
Torgesen, J. K., Alexander, A. W., Wagner, R. K., Rashotte, C. A., Voeller, K. K., & Conway, T. (2001). Intensive remedial instruction for children with severe reading disabilities: Immediate and long-term outcomes from two instructional approaches. Journal of Learning Disabilities, 34(1), 33-58.
Phonics intervention produces large gains in reading fluency (d = 0.9-1.2). Basis for Example 2.
doi: 10.1177/002221940103400104
[3]
Hofmann, S. G., & Smits, J. A. (2008). Cognitive-behavioral therapy for adult anxiety disorders: A meta-analysis of randomized placebo-controlled trials. Journal of Clinical Psychiatry, 69(4), 621-632.
CBT for anxiety disorders shows large effect sizes (d = 0.7-1.0). Basis for Example 3.
doi: 10.4088/jcp.v69n0415
[4]
Bakeman, R. (2005). Recommended effect size statistics for repeated measures designs. Behavior Research Methods, 37(3), 379-384.
Generalized eta squared (ηG²) is recommended for RM-ANOVA as it's comparable across designs. Small: .02, Medium: .13, Large: .26.
doi: 10.3758/BF03192707
[5]
Mauchly, J. W. (1940). Significance test for sphericity of a normal n-variate distribution. Annals of Mathematical Statistics, 11(2), 204-209.
Original paper on Mauchly's test of sphericity, the standard diagnostic for RM-ANOVA assumption testing.
doi: 10.1214/aoms/1177731915
[6]
Greenhouse, S. W., & Geisser, S. (1959). On methods in the analysis of profile data. Psychometrika, 24(2), 95-112.
Greenhouse-Geisser correction for sphericity violation. Use when epsilon < .75 (conservative correction).
doi: 10.1007/BF02289823
[7]
Field, A. (2024). Discovering Statistics Using R (6th ed.). Sage Publications.
Comprehensive textbook on RM-ANOVA assumptions, sphericity corrections, effect sizes, and LMM alternatives. Chapter 14: Repeated Measures Designs.
When each participant is their own control, the noise of individual differences is silenced. Listen carefully to the signal that remains.
The Interpretive Rigor Directive
statminds · One-WayMind reference · v2.2 · updated 2026-01-1715 of 15 sections