liveBook · Manning

Backdoor identification

As explained in Causal AI

Backdoor adjustment is a causal inference technique that estimates an intervention effect by conditioning on variables that block all noncausal backdoor paths between treatment and outcome.

When observational data are used to answer an intervention question, backdoor identification separates causal reasoning from statistical estimation. It derives an estimand whose value can be computed from the observed joint distribution, provided the causal assumptions hold. section 10.2.3 section 10.3

The adjustment set contains variables that block every noncausal backdoor path between treatment and outcome. For treatment E, outcome I, and common cause G, the intervention query can become the backdoor estimand ∑g P(I = i | E = “high”, G = g)P(G = g), replacing an intervention-level quantity with an operation on P(E, I, G). section 10.3

A practical workflow treats identification and estimation as distinct:

  • Represent treatment, outcome, and candidate confounders in a DAG, then determine whether the proposed adjustment set identifies the causal query. section 10.3
  • Estimate the identified quantity with statistical or machine-learning methods; double machine learning models the outcome and treatment from the adjustment set before a final causal-effect stage. section 11.4.3
  • Check sensitivity to omitted confounders, because an unblocked major confounder can create, reverse, or substantially distort an estimated average treatment effect. section 11.5.5

Gaming intervention

Suppose high engagement and in-game purchases share the observed cause guild membership. Adjusting for guild membership yields an estimand for the effect of high engagement when the adjustment set blocks the relevant backdoor path. If the common cause is unobserved, full identification may fail; randomized assignment can instead provide partial-identification bounds. section 10.3 section 10.9

Listing 11.10 Double ML with DoWhy, EconML, and sklearn
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LassoCV
from sklearn.ensemble import GradientBoostingRegressor

featurizer = PolynomialFeatures(degree=1, include_bias=False)
gb_estimate = model.estimate_effect(
    identified_estimand,
    method_name = "backdoor.econml.dml.DML",     #1
    control_value = 0,
    treatment_value = 1,
    method_params={
        "init_params":{
            'model_y': GradientBoostingRegressor(),    #2
            'model_t': GradientBoostingRegressor(),    #3
            'model_final': LassoCV(fit_intercept=False),     #4
            'featurizer': featurizer 
        },
        "fit_params":{}
    }
)
print(gb_estimate)

Inspect a DoWhy and EconML double-machine-learning implementation using gradient boosting, LassoCV, and a final effect model. section 11.4.3

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)

Inspect a DoWhy refutation that adds an unobserved common cause and evaluates how the estimated effect changes. section 11.5.5

How Causal AI covers it

How deep it goes
Derives the adjustment estimand, connects it to DAG assumptions and estimators, and stops short when unobserved confounding prevents full identification.
Examples
Uses online gaming variables, DoWhy identification code, double machine learning, meta-learners, and unobserved-confounder sensitivity heatmaps.
What it assumes
Assumes DAG-based causal assumptions and observed adjustment variables while separating those assumptions from statistical modeling choices.
What you can do after
Apply it via DoWhy and EconML to identify and estimate effects, then diagnose sensitivity to omitted common causes.
How it connects
Connects causal queries, DAGs, estimands, estimators, confounders, double machine learning, meta-learners, and partial identification.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Causal AI. The section links point to the parts of the book it draws on.