SPSS command: SPSS PARTIAL CORR

Partial correlation in your browser

A partial correlation is the Pearson correlation between two variables after the linear influence of one or more control variables has been removed from both.

Free · No account · Files stay on your device · Updated 18 October 2026

What it tells you

Crosstabs runs SPSS PARTIAL CORR on your device and can print the zero-order correlations next to the partial ones, so you can see how much of an association a confounder explains.

  • The correlation between each pair of analysis variables with the control variables held constant.
  • Whether that partial correlation differs from zero, using df = N − 2 − (number of controls).
  • With Zero-order correlations ticked, the plain Pearson correlations among all analysis and control variables on the same cases, for a before/after comparison.

When to use it

Use it when

  • Checking whether an association survives once an obvious common cause (age, income, temperature, company size) is controlled.
  • Separating the link between two survey scales from a general response tendency measured by a third scale.
  • A quick, symmetric alternative to regression when you care about association rather than prediction.

Use something else when

  • Ordinal or heavily skewed variables: the partial coefficient is Pearson-based, so rank or transform the variables first.
  • A categorical control variable with more than two levels: enter it as dummy variables in a linear regression instead.
  • You want to know how much one predictor adds to an outcome model: use the R² change from hierarchical linear regression.

How to run it in Crosstabs

  1. 01

    Choose Partial correlations

    In Statistics mode open Correlate → Partial correlations (PARTIAL CORR). At least three numeric variables are needed.

  2. 02

    Tick the analysis variables

    Under Variables tick two or more variables whose relationships you want to examine.

  3. 03

    Set the control variables

    Under Controlling for tick one or more Control variables. A variable cannot be both an analysis and a control variable.

  4. 04

    Choose options and run

    Under Options choose Two-tailed or One-tailed, and tick Flag significant correlations and Zero-order correlations as needed. Click Run correlations.

Worked example

Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.

Try with example data

Data

36 synthetic summer days with ice-cream sales, public-pool visits and the day's maximum temperature. Both sales and visits are generated from temperature plus independent noise, so they have no direct link of their own.

Correlations — Control Variables: -none-
Itemice_creampool_visitstemperature
ice_cream — Correlation1.0000.8030.881
ice_cream — Sig. (2-tailed)<.001<.001
ice_cream — df03434
pool_visits — Correlation0.8031.0000.907
pool_visits — Sig. (2-tailed)<.001<.001
pool_visits — df34034
temperature — Correlation0.8810.9071.000
temperature — Sig. (2-tailed)<.001<.001
temperature — df34340

Cells contain zero-order (Pearson) correlations.

Correlations — Control Variables: temperature
Itemice_creampool_visits
ice_cream — Correlation1.0000.018
ice_cream — Sig. (2-tailed).919
ice_cream — df033

Listwise deletion: 36 cases used.

How to read it

Before adjustment, ice-cream sales and pool visits look strongly related (r = 0.80, p < .001). Holding temperature constant, the partial correlation drops to 0.02 on 33 degrees of freedom (p = .919): the shared driver, not a direct link, produced most of the raw association.

Output tables explained

Correlations — Control Variables: -none-
Shown when Zero-order correlations is ticked: Pearson correlations, significance and df among every analysis and control variable, on the same listwise cases as the partial table.
Correlations — Control Variables
The partial correlations among the analysis variables controlling for the listed variables, with significance and df = N − 2 − q, where q is the number of controls.

Assumptions and notes

  • Relationships with the control variables are linear; a curved effect of the control is not removed.
  • Cases are independent and the variables are roughly normal for the significance test to hold.
  • Cases with a missing value on any analysis or control variable are excluded listwise; the footnote reports how many cases were used.
  • Under a sampling weight only weighted partial coefficients are shown, without significance tests.

How the results are validated

Partial correlations are tested against independent reference values computed with SciPy 1.18.1, statsmodels 0.15.0, pingouin 0.7.0 and scikit-posthocs 0.17.1: coefficients and p-values controlling for two variables match pingouin.partial_corr within 1e-9 (relative to the larger of 1 and the reference value), and the frequency-weighted result matches pingouin run on the replicated cases. Validation evidence

Questions

How is a partial correlation different from a regression coefficient?

A partial correlation is symmetric and unit-free: it is the correlation of the two residuals left after regressing each variable on the controls. A regression slope is directional and in the outcome's units.

Why are the degrees of freedom smaller than for the zero-order correlations?

Each control variable uses up one degree of freedom, so df = N − 2 − q. With many controls and few cases the test loses power quickly.

Can I get a Spearman partial correlation?

Not directly: this procedure is Pearson-based, as in SPSS. Rank the variables first with Rank Cases, then run the partial correlation on the ranks.

What does it mean when the partial correlation is close to zero but the raw one is large?

Most of the raw association runs through the control variable, as when temperature drives both ice-cream sales and pool visits. It does not prove the control is a cause, only that it accounts for the shared variation.

Run Partial Correlation on your own data

Open a .sav, CSV or Excel file. Everything runs in your browser; the file never leaves your device.

Open the workspace

SPSS is a trademark of IBM Corp. Crosstabs is not affiliated with or endorsed by IBM.