Statistical Methods Atlas
Atlas › Predict & Explain › Moderation Analysis

Moderation Analysis

Tests whether the strength or direction of an X→Y relationship depends on a third variable W — e.g., does supervisor support buffer the stress→burnout link?

Predict & ExplainMultivariate also known as: Interaction analysis, Moderated regression

✓ When to use

  • Theory says an effect is conditional: 'X matters more when W is high/low'.
  • Boundary-condition questions that make research contributions ('for whom / when does it hold?').
  • Any combination of continuous/categorical X and W with a continuous outcome.

✗ When NOT to use

  • The third variable is supposed to transmit (not condition) the effect — that is mediation.
  • Median-splitting continuous moderators to run subgroup ANOVAs — keep them continuous.
  • Underpowered samples: interaction effects are notoriously small; N in the several hundreds is often needed.
  • Binary outcomes — moderated logistic regression instead (same logic, different model).

Data requirements

Dependent / outcome variableOne continuous outcome.
Independent / grouping variableFocal predictor X, moderator W (continuous or categorical), and their product X×W.
DesignOne sample; all variables measured per case.
Sample size guidanceLarge — detecting f² ≈ .02 for an interaction at power .80 needs N ≈ 400; plan accordingly.

Assumptions

Hypotheses

H₀ — The interaction coefficient is zero (β₃ = 0): the X→Y slope is constant across W.
H₁ — β₃ ≠ 0: the X→Y slope changes with W.

The concept

Estimate Y = b₀ + b₁X + b₂W + b₃(X×W). The interaction coefficient b₃ is the change in X's slope per one-unit increase in W. Mean-centering X and W before forming the product makes b₁ interpretable as the X effect at the average W (it does not change b₃ or its test).

A significant b₃ is only the beginning: probe it. Simple-slopes analysis re-estimates the X→Y slope at chosen W values (mean ± 1 SD, or meaningful values); the Johnson–Neyman technique finds the exact W range where the X effect is significant. Plot the simple slopes — reviewers and readers understand pictures of interactions far better than coefficients.

Worked example

Does supervisor support (W) buffer the effect of workload (X) on burnout (Y)? N = 385 nurses; X and W mean-centered.

Result: b₃ = −0.14, SE = 0.05, p = .004, ΔR² = .018. Simple slopes: at low support (−1 SD) workload → burnout b = 0.48 (p < .001); at high support (+1 SD) b = 0.20 (p = .03) — support significantly weakens the workload–burnout link.

How to run it

df$Xc <- scale(df$workload, scale = FALSE)   # mean-center
df$Wc <- scale(df$support,  scale = FALSE)

model <- lm(burnout ~ Xc * Wc, data = df)     # * adds product term
summary(model)

library(interactions)
sim_slopes(model, pred = Xc, modx = Wc)        # simple slopes + J-N
interact_plot(model, pred = Xc, modx = Wc)     # the picture

Interpreting the output

APA-style reporting

The workload × support interaction was significant, b = −0.14, SE = 0.05, p = .004, ΔR² = .018. Simple-slopes analysis indicated that workload predicted burnout more strongly at low support (−1 SD; b = 0.48, p < .001) than at high support (+1 SD; b = 0.20, p = .031), consistent with a buffering effect.

Common mistakes

Related methods

Hierarchical RegressionStandard testing frameworkTwo-Way ANOVABoth variables categoricalMediation AnalysisTransmission instead of conditioningMultiple Linear RegressionUnderlying model
← Hierarchical RegressionMediation Analysis →