When treatment is not randomly assigned, propensity score methods support causal adjustment for the backdoor estimand. A propensity score represents the probability of receiving treatment given observed confounders; a broader machine-learning view learns a function that compresses their influence while making them conditionally independent of treatment. section 11.4.2
The practical payoff is dimensionality reduction: adjust for one score rather than every variable in the adjustment set. Matching pairs treated and untreated individuals with similar scores; stratification groups observations into score-based subsets; weighting adjusts through score-derived weights. section 11.4.2
A causal workflow makes the assumptions and implementation explicit:
- Identify potential confounders and represent their relationships in a causal DAG; correlation alone does not establish causation. section 13.1.1
- Estimate a propensity score, typically with logistic regression, or learn a more general propensity score function. section 11.4.2
- Choose matching, stratification, or weighting according to the adjustment procedure, then estimate the treatment effect and confidence interval. section 11.4.2
Listing 11.8 Propensity score matching
causal_estimate_match = model.estimate_effect(
identified_estimand,
method_name="backdoor.propensity_score_matching", #1
target_units="ate",
confidence_intervals=True
)
print(causal_estimate_match)
DoWhy implements propensity score matching by passing the backdoor estimand to its matching estimator and requesting an average treatment effect with confidence intervals. section 11.4.2
