The correlation between two variables after statistically removing the influence of one or more control variables — e.g., autonomy and satisfaction controlling for tenure.
Test AssociationMultivariatealso known as: First-order correlation, Controlled correlation
✓ When to use
You suspect a third variable inflates or masks a bivariate correlation.
Testing whether an association survives controls (a first step toward ruling out confounding).
Sensitivity checks: does X–Y hold controlling for social desirability, tenure, firm size?
✗ When NOT to use
The control variable is a mediator on the causal path X → M → Y — partialling it removes the effect you care about.
The control is a collider (caused by both X and Y) — controlling it creates spurious association.
Many predictors with a directional question — multiple regression is the natural framework.
Two focal continuous variables plus one or more continuous (or dichotomous) control variables.
Independent / grouping variable
—
Design
One sample, all variables measured per case.
Sample size guidance
As for Pearson plus a few cases per control; df = n − 2 − k controls.
Assumptions
Independent observations.
Linearity among all variables involved.
Approximate (multivariate) normality for inference.
Controls measured reliably; theoretical justification that each control is a confounder, not a mediator or collider.
Hypotheses
H₀ — The partial correlation in the population is zero (ρxy·z = 0).
H₁ — The partial correlation differs from zero.
The concept
Regress X on the controls and take the residuals; regress Y on the controls and take the residuals; the partial correlation is the Pearson correlation between those two residual sets — the X–Y association left after the controls have explained what they can of each.
Comparing the zero-order r to the partial r is diagnostic: a large drop suggests the association routed through the control; an increase reveals suppression. The related semi-partial (part) correlation removes the control from only one variable and connects directly to regression's unique-variance logic.
Worked example
Autonomy and satisfaction correlate r = .42 (n = 156). Because senior employees have both more autonomy and higher satisfaction, tenure is controlled.
Result: partial r(153) = .35, p < .001 — the association weakens somewhat but clearly survives; it is not merely a tenure artifact.
How to run it
library(ppcor)
pcor.test(df$autonomy, df$satisfaction, df$tenure) # one control
# several controls:
pcor.test(df$autonomy, df$satisfaction, df[, c("tenure", "age")])
import pingouin as pg
print(pg.partial_corr(data=df, x="autonomy", y="satisfaction",
covar=["tenure", "age"]))
Analyze → Correlate → Partial.
Move the two focal variables into 'Variables' and the control(s) into 'Controlling for'.
Options: tick 'Zero-order correlations' to see before/after side by side.
Report the partial r, its df (n − 2 − k), and p, alongside the zero-order r.
Run two regressions with Data Analysis → Regression: X on controls (save residuals), Y on controls (save residuals).
Then =CORREL(residX_range, residY_range) is the partial correlation.
p-value: t = r*SQRT(df)/SQRT(1−r^2) with df = n − 2 − k; =T.DIST.2T(ABS(t), df).
Interpreting the output
Compare zero-order vs partial r: shrinkage = shared variance with the control; sign flips indicate suppression.
A surviving partial correlation is consistent with (not proof of) a direct association.
Report both coefficients and the controls used.
Remember: only measured, well-chosen confounders are controlled; unmeasured confounding remains.
APA-style reporting
The positive association between autonomy and job satisfaction remained significant after controlling for organizational tenure, partial r(153) = .35, p < .001 (zero-order r = .42).
Common mistakes
Controlling for mediators or colliders and calling the result 'more accurate'.
Interpreting a surviving partial correlation as causal proof.
Throwing in a kitchen-sink of controls without theory.
Forgetting the reduced degrees of freedom in reporting.