Bell Statistics

What is propensity score matching?

Propensity score matching pairs treated units with untreated ones that had a similar predicted probability of being treated, then compares outcomes within those pairs. It approximates a randomised comparison using only the characteristics you were able to measure.

Also called
PSM, propensity matching, propensity score
Allon Korem

Written by Allon Korem

Chief Executive Officer

Last updated

In plain English

You want to know whether joining the loyalty programme increases spend. You cannot randomise it, because joining is voluntary, and joiners already differ from non-joiners in every way that matters. Propensity score matching attempts a repair: build a model predicting who joins from their observable characteristics, then compare each joiner with a non-joiner who had almost the same predicted probability of joining. Within those pairs, membership is at least not predictable from the variables you measured.

The idea that makes it practical is a dimension reduction. Matching directly on twenty covariates is hopeless — nobody has an exact twin on all of them — but Rosenbaum and Rubin showed that matching on a single number, the probability of treatment given those covariates, achieves the same balance. So the workflow is: fit a model for treatment, obtain each unit's propensity score, match on that score, and estimate the effect within the matched sample.

The critical assumption is that treatment is as good as random once you condition on the measured variables. In a loyalty example, this says two customers with the same age, tenure, prior spend and channel mix are equally likely to join for reasons unrelated to their future spending — which is almost certainly false, because the thing driving both joining and spending is enthusiasm, and enthusiasm is not in the table. There is no test for this. A confounding variable you never measured is invisible to every diagnostic the method offers.

What you must check is balance, and it is a genuine check rather than a formality. After matching, every covariate should be distributed similarly across the two groups; the standard summary is the standardised mean difference, and the conventional threshold is 0.1. If balance fails, the specification is wrong and the estimate is not usable — a routine outcome, and the reason a matching analysis should always report a before-and-after balance table. Also check overlap: treated units whose propensity scores fall outside the range of any untreated unit have no counterfactual and should be trimmed, which narrows the population your estimate describes.

Modern practice has largely moved past one-to-one matching. Inverse probability weighting uses the same scores to reweight the whole sample rather than discarding unmatched units. Doubly robust estimators combine a propensity model with an outcome model and remain consistent if either is correct, which is a genuine improvement. And matching on covariates directly, or on a coarsened version of them, avoids known pathologies of propensity matching. All of them share the same untestable assumption, which is why the honest framing is that this method buys its causal claim with an argument, while randomization buys it with design.

The formula

One model, one score, one comparison — plus the balance diagnostic that decides whether the whole thing worked.

The propensity score
e(X) = P( D = 1 | X )

The probability of being treated given the covariates. Usually a logistic regression; gradient-boosted models often achieve better balance.

The balancing property
D ⫫ X | e(X)

Rosenbaum and Rubin's result: matching on this one number balances the whole covariate vector, which is what makes the method tractable at all.

Standardised mean difference
SMD = ( x̄_treated − x̄_control ) / √( (s²_t + s²_c) / 2 )

Report it for every covariate before and after matching. Above 0.1 means the groups are still meaningfully different and the estimate should not be used.

Inverse probability weighting
w = D/e(X) + (1 − D)/(1 − e(X))

Reweights instead of discarding, keeping the whole sample. Extreme scores produce enormous weights, so trim or stabilise them — see the two-sample t-test calculator for the matched comparison.

Worked example

An analyst evaluates a loyalty programme. Members spend £412 a year against £268 for non-members. They fit a propensity model on age, tenure, acquisition channel, prior-year spend and category mix, match one-to-one on the score, and compare.

Raw difference
+£144
Max SMD before matching
0.74 (prior-year spend)
Max SMD after matching
0.06
Matched difference
+£47
Treated units off the common support
8%, trimmed
Sensitivity: Γ at which the result loses significance
1.3

The £144 gap falls to £47 once like is compared with like. The sensitivity analysis says a modest unmeasured confounder would overturn it.

The balance table is the part worth dwelling on. Prior-year spend differed by 0.74 standard deviations before matching, which means the raw comparison was mostly comparing high spenders with low spenders and calling the difference a programme effect. After matching it is 0.06, so the observable confounding has been dealt with properly. What remains is the question no diagnostic can answer, and the sensitivity figure quantifies it: an unmeasured variable that raised the odds of joining by only 30% would be enough to explain away the £47 entirely. Enthusiasm plausibly does much more than that. The defensible way to report this is £47 with the sensitivity attached — and the way to actually settle it is to randomise the programme invitation.

Common misconceptions

Propensity score matching makes an observational study as good as a randomised one.
It balances the variables you measured. Randomisation balances every variable, including the ones nobody thought of, and that difference is the entire reason experiments are worth their cost. Matching narrows the gap between observation and experiment; it does not close it, and no diagnostic can tell you how much remains.
The groups are balanced after matching, so the estimate is unbiased.
Balance is on observed covariates only — it is precisely what you optimised for, so achieving it is expected rather than reassuring about anything else. An unmeasured confounder leaves every balance statistic looking perfect. Report a sensitivity analysis alongside the estimate so the reader knows how fragile it is.
A better propensity model gives a better causal estimate.
A model that predicts treatment more accurately is not the goal — balance is. A very sharp model can push propensity scores towards zero and one, destroying overlap and leaving few comparable pairs. Judge the model by the balance table it produces, never by its AUC.

Frequently asked questions

Which variables should go in the propensity model?
Anything that plausibly affects both treatment and the outcome, measured before treatment. Include variables that affect only the outcome as well, since they improve precision at no cost to bias. Exclude anything measured after treatment, and exclude instruments that affect treatment but not the outcome — including those can amplify bias from unmeasured confounders rather than reduce it.
How do I know whether matching worked?
Report a balance table with the standardised mean difference for every covariate before and after matching, and keep them all below about 0.1. Compare the distributions rather than just the means, since matched groups can share a mean and differ in shape. Check overlap too: treated units whose scores lie outside the untreated range have no genuine counterfactual and should be trimmed, with the trimmed share reported.
Is there a better alternative to propensity score matching?
Usually, yes. Inverse probability weighting keeps the whole sample rather than discarding unmatched units, and doubly robust estimators combine a treatment model with an outcome model so that either one being correct is enough. Coarsened exact matching avoids some known pathologies. All of them share the same untestable assumption about unmeasured confounding, so the choice is about efficiency rather than credibility.

Related terms

  • Causal inference

    Estimating what an action caused by reconstructing what would have happened without it.

  • Confounding variable

    A common cause of both variables — the reason a strong, stable correlation can mean nothing.

  • Randomization

    The one mechanism that makes a comparison causal — and the four ways it silently fails.

  • Regression analysis

    Fit a line through the data — and the phrase 'holding everything else fixed' is where the trouble starts.

  • Selection bias

    When who ends up in the data is not who you meant to study — and more data makes it worse.

Calculate it

  • Two-sample t-test

    Compare the average of two independent groups — plan the sample size, then test the result.

  • Paired t-test

    Before-and-after or matched pairs — size the study on the difference SD, then test it.

  • Chi-square test

    Test a contingency table of counts for association — any number of rows and columns.

Knowing the term is the easy part

Applying it to a live measurement problem is the part that goes wrong. If you are designing an experiment, reading a result you do not trust, or trying to work out what your marketing actually caused, that is the work we do.