A backdoor path is a path between a putative cause X and outcome Y that begins with an arrow into X. It represents association arriving through a common cause rather than through X’s causal effect on Y. Observational conditioning on X can therefore mix the causal path X → Y with noncausal paths such as X ← G → Y. section 10.3.1
To estimate an intervention such as P(Y|do(X=x)), choose an adjustment set that d-separates every backdoor path from X to Y and contains no descendants of X. Adjusting means summing over or integrating across those variables, removing their statistical signal from the estimate. section 10.3.1
Online gaming
Suppose E is time spent playing, I is in-game purchases, and G is a common cause. Observing high E provides information about I through both E → I and E ← G → I. Blocking the latter path by adjusting for G yields an estimand focused on the causal effect of E on I. section 10.3.1
Use backdoor paths as a practical causal-analysis checklist:
- Identify common causes that create paths entering the treatment or putative cause. section 10.3.1
- Select measured variables that block all such paths without adjusting for descendants of the treatment. section 10.3.1
- Check whether unmeasured confounders could leave a backdoor path open; a missed major confounder can reverse or create an apparent treatment effect. section 11.5.5
Listing 11.19 Adding an unobserved confounder
identified_estimand.set_identifier_method("backdoor")
res_unobserved = model.refute_estimate( #1
identified_estimand, #1
causal_estimate_fd, #1
method_name="add_unobserved_common_cause" #1
)
print(res_unobserved)
A DoWhy refutation adds an unobserved common cause and tests how the estimated effect changes as its influence on treatment and outcome varies. section 11.5.5
