Skip to main content
v2026.11,772 entries · CC-BY 4.0

ANCOVA Assumptions: Homogeneity of Regression Slopes

ANCOVA adds two assumptions to ANOVA’s standard set: linearity and homogeneity of regression slopes. This guide tests the slopes assumption with a reproducible worked example and covers what to do — moderated regression, simple slopes, Johnson-Neyman regions — when it fails.

Ask CASRAI · included with Regulatory Radar

Ask about ANCOVA Assumptions: Homogeneity of Regression Slopes

Ask CASRAI answers research-administration questions and cites the passages behind every claim — and says so when the corpus does not cover something, instead of guessing. It comes with a Regulatory Radar subscription at $29 a month, alongside the daily digest of regulatory changes and the dashboard of what changed.

150 questions a day, on this site, over the API, or inside your own tools through the CASRAI MCP server.

Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.

Written and maintained by CASRAI Editorial Board

Last updated

ANCOVA inherits every one of ANOVA’s standard assumptions — independence of observations, normally distributed residuals, homogeneity of variance across groups — and adds two more that exist specifically because a covariate has entered the model: the covariate–outcome relationship has to be linear, and that relationship has to be the same slope in every group. The second one, homogeneity of regression slopes, is the assumption that actually determines whether an ANCOVA-adjusted group comparison means anything at all — and it is also the one most routinely skipped, because unlike homogeneity of variance it is not checked automatically by default in most statistical software. This guide covers exactly what the assumption states, why violating it invalidates the standard ANCOVA comparison, how to test for it with a reproducible worked example, and what to do when it fails.

What Homogeneity of Regression Slopes Actually States

ANCOVA compares group means on an outcome after adjusting for a covariate — typically a pre-test score, a baseline measurement, or some other continuous variable correlated with the outcome that the researcher wants to statistically control for rather than experimentally control. The adjustment works by fitting a single regression line relating the covariate to the outcome, using that line to predict what each group’s mean outcome would have been at the covariate’s grand mean, and comparing those predicted, or “adjusted,” means.

That entire procedure depends on one thing being true: the slope of the covariate–outcome relationship has to be the same in every group being compared. If Group A’s outcome rises 2 points for every 1-point increase in the covariate, but Group B’s rises 4 points for the same increase, there is no single line that correctly describes both groups — and no single “adjustment” that correctly moves both groups’ means to a common covariate value. This is exactly the same requirement, in different language, as saying the covariate does not interact with the grouping factor: standard ANCOVA is a model with no covariate-by-group interaction term, and homogeneity of regression slopes is simply the assumption that omitting that term was legitimate.

Why a Slopes Violation Invalidates the Adjusted Comparison

When slopes genuinely differ across groups, the size — and sometimes the direction — of the group difference in the outcome depends on where along the covariate’s range you evaluate it. Two groups might show no adjusted difference at the covariate’s low end, a large difference at its high end, and a reversed difference beyond the observed range if the lines happen to cross. Standard ANCOVA reports exactly one adjusted-mean difference, evaluated at the covariate’s grand mean, as if it applied everywhere. If the slopes aren’t actually parallel, that single number is not a summary of the group difference — it’s an artifact of the one covariate value chosen for the comparison, and a different (equally defensible) choice of evaluation point could tell a materially different story. This is the concrete, mechanical reason the assumption gets tested before, not after, interpreting the ANCOVA’s main result.

How to Test It: Fit the Covariate×Group Interaction

The test is a model comparison, not a separate diagnostic statistic:

  1. Fit the full model: outcome regressed on the covariate, the grouping factor, and the covariate×group interaction term.
  2. Fit the reduced model: the same model with the interaction term dropped — this is the standard ANCOVA model.
  3. Test whether the interaction term’s contribution is significant — an F-test comparing the two models’ residual sums of squares (equivalently, the F-test on the interaction term itself in the full model).

A significant covariate×group interaction means the slopes differ significantly across groups: the homogeneity assumption is violated, and the reduced (standard ANCOVA) model should not be used for the adjusted-means comparison. A non-significant interaction means the data are consistent with parallel slopes, and it is legitimate to drop the interaction term and proceed to the standard ANCOVA. Because this test requires fitting a model the standard ANCOVA procedure does not include by default, it has to be run as an explicit extra step — in SPSS’s Univariate GLM, that means building a Custom model that adds the covariate×factor term rather than accepting the Full Factorial default, which omits it; in R, it means comparing lm(y ~ x + group) against lm(y ~ x * group) with anova(), rather than fitting only the additive model.

Worked Example: Testing the Interaction Directly

The dataset below is a small, hand-constructed illustrative example built specifically to demonstrate a clear slopes violation — not real study data. Every number that follows was computed directly via ordinary least squares (normal equations, solved by Gauss–Jordan elimination) and an independently implemented regularized incomplete beta function for the F-distribution, run in a script kept alongside this page’s source; nothing here was estimated or eyeballed.

Three groups (A, B, C), n = 6 each, with a covariate X and outcome Y:

Group X Y
A 10, 12, 14, 16, 18, 20 22, 25, 27, 30, 31, 34
B 10, 12, 14, 16, 18, 20 24, 28, 31, 35, 38, 41
C 10, 12, 14, 16, 18, 20 18, 24, 31, 38, 45, 51

Reduced model (Y regressed on X and group, no interaction — the standard ANCOVA form): residual sum of squares = 186.10 (14 df).

Full model (adds the two X×group interaction terms, since group has 3 levels): residual sum of squares = 2.21 (12 df). The full model’s coefficients imply group-specific slopes of 1.16 for Group A, 1.70 for Group B, and 3.36 for Group C — visibly not parallel, and Group C’s slope is roughly triple Group A’s.

The homogeneity-of-regression-slopes F-test compares those two residual sums of squares:

F(2, 12) = [(186.10 − 2.21) / 2] / [2.21 / 12] = 499.34, p < .001

Against the standard critical values for 2 and 12 degrees of freedom — F.05(2,12) = 3.89, F.01(2,12) = 6.93, both independently computed the same way as the test statistic above — an F of 499.34 clears either threshold by a wide margin. The interaction is unambiguous: this dataset fails the homogeneity-of-regression-slopes assumption, and a standard ANCOVA adjusted-means comparison on it would not be a valid summary of the group differences.

What to Do When the Assumption Fails

A significant covariate×group interaction is not a dead end — it is itself a finding, and there are several legitimate ways to proceed once it appears:

  • Report the interaction as the result. If the covariate×group interaction is significant and substantively interpretable, that is often the more informative finding than the adjusted-means comparison would have been — it says the covariate’s effect on the outcome genuinely differs by group, which is itself worth reporting rather than a nuisance to remove.
  • Switch to moderated regression and probe simple slopes at specific covariate values. Rather than one adjusted-mean comparison, report the group difference at several meaningful, pre-specified points along the covariate’s range (e.g., its mean and ±1 SD), using the retained interaction model. This keeps the full interaction in the model instead of pretending it isn’t there, and it directly answers “does the group difference hold at low, typical, and high covariate values” instead of forcing a single number.
  • Use a Johnson–Neyman-style region of significance when available in your software, which identifies the specific range of the covariate over which the group difference is statistically significant, rather than picking a small number of spot-check values.
  • Reconsider the covariate itself. A slopes violation sometimes reflects a covariate that behaves differently by construction in each group (e.g., a baseline measure taken under different conditions per group) rather than a real substantive interaction — check whether a transformation, a different covariate, or a covariate measured more comparably across groups resolves it before concluding the interaction is genuine.
  • Do not silently drop the interaction term and report the standard ANCOVA anyway. This is the failure mode the whole assumption exists to prevent: reporting a single adjusted-mean difference that is only valid if slopes are parallel, on data where they demonstrably are not.

What doesn’t fix it: increasing the sample size, adding covariates unrelated to the interaction, or applying a different post hoc correction to the group comparison — none of those address a covariate×group relationship that genuinely differs, because the problem is in the model’s functional form, not in power or multiple comparisons.

Frequently Asked Questions

Is homogeneity of regression slopes the same as homogeneity of variance?

No. Homogeneity of variance (tested with Levene’s test) asks whether the outcome’s spread is similar across groups — it’s one of ANOVA’s standard assumptions and applies with or without a covariate. Homogeneity of regression slopes is specific to models that include a covariate: it asks whether the covariate–outcome relationship, not the outcome’s spread, is the same across groups. A dataset can satisfy one and fail the other.

Does SPSS test homogeneity of regression slopes automatically when I run ANCOVA?

No. The default Full Factorial model in Univariate GLM does not include the covariate×factor interaction term, so it never tests this assumption unless you explicitly build a Custom model that adds it, run that check first, then remove the term and re-run the standard model once you’ve confirmed the interaction isn’t significant.

What if I have more than one covariate?

Test each covariate’s interaction with the grouping factor separately (and consider whether covariate-by-covariate interactions matter for your question too) — homogeneity of regression slopes has to hold for every covariate in the model, not just checked once in aggregate.

Can a small, non-significant interaction still be a problem?

Yes, especially with a small sample, where the interaction test is underpowered. A non-significant test is evidence consistent with parallel slopes, not proof of it — if group-specific slope estimates look meaningfully different even without reaching significance, it’s worth reporting that alongside the ANCOVA result rather than treating “not significant” as a clean pass.

Is ANCOVA still worth using if I just drop the covariate instead?

That trades one problem for a different one: dropping the covariate removes the interaction issue but also removes the variance reduction and confounding control the covariate was there to provide in the first place. Whether that trade is worthwhile depends on why the covariate was included; a design that anticipated a real subgroup difference in the covariate’s effect may be better served by explicitly modeling the interaction than by removing the covariate.

Related CASRAI Resources

Follow CASRAI

Research-administration guidance, standards updates and independent tool reviews.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo

View CASRAI adoption →

Regulatory Radar

Stop finding out after the fact

$29/month, cancel anytime. Daily digest updates from our analysis, a dashboard holding the same items, and a cited assistant for everything they raise.

  • Federal Register, Federal Register+, Grants.gov, Regulations.gov, NSF News, UKRI, plus CASRAI’s own published content.
  • 72,264 indexed passages, and every answer cites the ones it drew on.