Forty students: daily revision minutes, exam mark, and a baseline assessment taken a year earlier. Revision and mark correlate +0.84202, which looks like an argument for revising. Hold the baseline score fixed and the partial correlation is −0.47910, p = 0.0020, with a confidence interval of −0.6903 to −0.1927 that does not come near zero. Among students who started at the same level, the ones who revised more scored lower. The raw correlation was picking up that stronger students both revise more and score higher; within a level, revision time is a marker of difficulty rather than a cause of success.
40 cases · 1 control held fixed
0.84202 becomes -0.47910 — the association reverses
Holding the controls fixed reverses the direction of the association, not merely its size. The partial correlation is -0.47910 with p = 0.00203 and an interval of -0.6903 to -0.1927. The raw and partial answers here are not two estimates of one quantity; they answer different questions.
Raw correlation
0.84202
nothing held fixed
Partial
-0.47910
1 control removed
Semi-partial
-0.16887
controls removed from x only
p-value
0.00203
t = -3.3201 on 37 df
What the controls took away
How much of each variable the controls explain, and the three correlations
Quantity
Value
Means
Controls explain revision minutes
87.58%
little independent variation is left
Controls explain exam mark
91.00%
little independent variation is left
Correlation before
0.84202
everything included
Correlation after
-0.47910
the association reverses
Change
-1.32112
across zero
When the controls explain most of both variables, the partial correlation is computed on a small residue and its interval is wide. 87.6% and 91.0% here, with an interval of -0.6903 to -0.1927.
The semi-partial removes the controls from the first variable only, leaving the second untouched. It is the one to quote when you want the share of the second variable that the first uniquely explains, and it is always the smaller of the two in magnitude — which the verification suite asserts on 150 generated datasets.
Holding a variable fixed statistically is not the same as holding it fixed in the world. If a control sits on the causal path between the two variables, removing it takes away part of the very effect being measured, and the partial correlation is then the wrong number rather than a better one.
Residual-based, not a shortcut Any number of controls Reduces to Pearson exactly Not a causal claim
What this tool shows
On the shipped preset a correlation of +0.84202 becomes −0.47910 once one variable is held fixed. Not weaker — reversed, with p = 0.0020 and an interval of −0.6903 to −0.1927 that stays well clear of zero. Students who revised more scored higher overall, and among students who started at the same level, the ones who revised more scored lower. Both statements are true of the same forty students, and only one of them is about revising.
Partial correlation with any number of controls, computed by residualising rather than by a two-variable shortcut
The semi-partial alongside it, which removes the controls from one variable only
A significance test with the right degrees of freedom, and a Fisher-transformed interval
How much of each variable the controls already explain, which is what makes a wide interval predictable
Presets where the association reverses, vanishes, appears, and stays put
Why adding an irrelevant control is not free
Residual-based Any number of controls Reduces to Pearson Raw value shown too
Holding a variable fixed in arithmetic is not holding it fixed in the world.
Updated 13 September 2026 · Works in any browser, no installation
A partial correlation is the association between two variables among cases that match on a set of controls — computed by removing what the controls explain from both variables and correlating what is left. It is not a corrected or cleaner version of the ordinary correlation. It is a different quantity answering a different question, and when the two disagree, which one you want depends entirely on what you were asking.
At a glance
Formula shown
Regress x on the controls and keep the residuals; do the same for y; the partial correlation is Pearson’s r between those two residual series. With one control that reduces to (r_xy − r_xz·r_yz)/√((1 − r_xz²)(1 − r_yz²)), but the residual form is the definition and generalises to any number of controls without a recursion. The test statistic is t = r√(df/(1 − r²)) on n − 2 − k degrees of freedom, where k is the number of controls.
Scenario support
Checking whether an observed association survives an obvious confounder, isolating the unique contribution of one predictor before building a model, disentangling variables that all move with size or time, and any analysis where a third variable plausibly drives both of the first two.
Educational estimate
Planning support from the values you enter — not professional advice.
A control can change an answer three ways
People expect controlling for a variable to shrink an association. It does that, and it also does two other things, and the presets on this page are chosen so all three are one click apart.
It can reverse. +0.84202 becomes −0.47910 on the first preset, p = 0.0020. The association is real in both directions and they are about different populations.
It can vanish. +0.89310 becomes −0.03558 on the second, p = 0.8392. Spend drove both variables; once it is fixed, one tells you nothing about the other.
It can appear. −0.19127 becomes +0.65780 on the third, p = 0.000032. That is suppression, and it is the direction routinely forgotten — a control can uncover a real effect as easily as it can dissolve a false one.
Which means “we controlled for it” is not a quality claim. The control set changes the question being answered, and the answer with it.
Computed from residuals, which is the definition
Most calculators use the recursive two-variable formula. This one regresses both variables on the controls and correlates the leftovers, and that choice matters beyond tidiness.
It generalises directly to any number of controls, with no recursion to unroll and no accumulating rounding from nested applications of a fraction.
It makes the mechanism visible. A partial correlation is what is left after the controls have taken what they can explain — and the page prints how much that was, for each variable.
It explains the wide intervals. When the controls explain 90% of both variables, the correlation is computed on a tenth of the original variation, and precision falls accordingly.
And with no controls at all it returns Pearson’s r bit-for-bit, which the verification suite asserts as exact equality on 150 generated datasets rather than as a tolerance.
Partial and semi-partial are different numbers
Both appear in the same output on this page because they are routinely confused, and the confusion changes what a reported figure means.
The partial removes the controls from both variables. It answers: among cases that match on the controls, how do these two move together?
The semi-partial removes them from one variable only. It answers: how much of the whole second variable does the unique part of the first explain?
The semi-partial is always smaller in magnitude, because its denominator keeps the full variance of the untouched variable — asserted on 150 generated datasets.
Regression output usually reports the semi-partial, sometimes as a “part correlation”. Squared, it is the R² a predictor adds when entered last, which is exactly the column a multiple correlation reports as a unique contribution.
The control that must not be included
Not every available variable belongs in the control set, and two kinds of variable actively damage the answer when included.
A mediator sits on the causal path. If training raises skill and skill raises output, controlling for skill removes most of training’s effect — and reports the remainder as though it were the whole.
A collider is caused by both variables. Controlling for one manufactures an association between things that were independent, which is the mechanism behind a good deal of published nonsense.
Neither shows up in the arithmetic. A collider-adjusted partial correlation looks exactly like a confounder-adjusted one, and the page cannot tell you which you have.
The control set has to be argued from what causes what, before the data is opened. Adding every variable that happens to be in the file is the failure mode this method invites.
An irrelevant control is not free
The fourth preset measures what the habit of controlling for everything actually costs, on a dataset where the extra control genuinely has nothing to do with anything.
With one control the partial is −0.07237 on 35 degrees of freedom. Adding a second, unrelated control gives −0.07954 on 34.
The estimate moves by 0.00717 and the interval widens by 0.00836. Small, because thirty-eight weeks is a comfortable sample for two controls.
The cost scales with the ratio of controls to cases. Six controls on twenty cases leaves twelve degrees of freedom, and the interval becomes wide enough to be useless.
And a control correlated with the predictor costs far more than this one, because it takes real variation away rather than noise — the same problem that shows up as variance inflation in a multiple correlation.
Reporting a partial correlation
Four items, and the first is the one most often left out — which is what allows a partial correlation to be read as a corrected version of something the reader never saw.
Give the raw correlation too. A partial of −0.48 means something very different when the raw value was +0.84 than when it was −0.52.
Name every control. “Adjusted” without a list is not a reportable claim, because the control set is the question.
Give the degrees of freedom. n − 2 − k, not n − 2. Using the wrong one is a common and quietly consequential error.
And say the controls were chosen in advance, if they were. If they were selected because they changed the answer, the interval and the p-value are both meaningless.
Sources and methodology
References for partial correlation and its interpretation.
Method. Both variables are regressed on the full control set by normal equations with a matrix inverse, and the partial correlation is Pearson’s r between the two residual series. That is the definition rather than the recursive two-variable shortcut, which keeps the arithmetic identical for one control and for six and avoids the rounding that nested applications accumulate. The verification suite asserts that with an empty control set the result is bit-for-bit identical to Pearson’s r — exact equality, not a tolerance — on 150 generated datasets, and that the semi-partial never exceeds the partial in magnitude on the same 150. The interval uses Fisher’s transformation with n − 3 − k in the standard error, and the test uses n − 2 − k degrees of freedom rather than the n − 2 that appears when a partial correlation is passed to an ordinary correlation test. That engine is verified on every change against 90 assertions. The count and the per-case breakdown are published on the formula verification page.
Related calculators
Where this goes next:
Multiple CorrelationMultiple R with adjusted R-squared, an F test, and a per-predictor table of simple, partial and unique contributions beside the variance inflation factors.
Correlation CoefficientReports Pearson, Spearman and Kendall together with the scatter plot, and ships Anscombe's quartet built in — four datasets with an identical r of 0.816 that Spearman tells apart.
Distance CorrelationDistance correlation with a permutation test and Pearson's r on the same data, detecting curved and variance-based dependence that a correlation scores as zero.
Covariance MatrixSample covariance and correlation matrices with eigenvalues, determinant and condition number, so redundancy spread across several variables cannot hide from a pairwise scan.
Linear RegressionThe least-squares line with r and r² — and the regression of x on y beside it, because those are two different lines rather than one line rearranged.
Coefficient of DeterminationR-squared across five models at once with adjusted R-squared beside it, because adding a term can never lower it and the value most tools report for a curve fit was computed in log space.
An educational tool. Holding a variable fixed in arithmetic is not holding it fixed in the world, and a partial correlation is not evidence of causation in either direction. Controlling for a mediator removes part of the effect being measured, and controlling for a collider manufactures an association that was not there — neither is visible in the output.