The identification problem
Identification and estimation are two separate questions, and conflating them is the most common beginner mistake. Estimation asks: given a finite sample, how do I compute a number with small error? Identification asks something prior and deeper: even with infinite data from the observational distribution, is the causal quantity P(Y | do(X)) uniquely determined? If the answer is no, no estimator — however clever, however much data — can recover it. Identification is a property of your assumptions and graph, not of your sample size.
Confounders, colliders, and the flow of association
Association flows through paths in the DAG, and your job is to let the causal flow through while blocking the non-causal flow. Three junction types govern this. A chain X → M → Y passes association unless you condition on M. A fork X ← Z → Y is a confounder: Z creates association between X and Y that is not causal, blocked by conditioning on Z. A collider X → C ← Y is blocked by default but, treacherously, opens if you condition on C — conditioning on a common effect manufactures a spurious dependence.
d-separation in action: chains and forks transmit association that conditioning on the middle variable blocks, while a collider does the opposite — conditioning on C opens the path.
The backdoor criterion
The backdoor criterion is the workhorse of identification. A set of covariates Z satisfies the backdoor criterion relative to (X → Y) if Z blocks every "backdoor path" — every path from X to Y that starts with an arrow into X (the signature of confounding) — and Z contains no descendant of X. If such a Z exists, the causal effect is identified by the adjustment formula: average the conditional outcome over the distribution of Z.
# Backdoor adjustment for the ATE
# E[Y | do(X=1)] - E[Y | do(X=0)]
ATE = 0
for z in support(Z):
p_z = P(Z = z)
ATE += p_z * (E[Y | X=1, Z=z] - E[Y | X=0, Z=z])
# Valid ONLY if Z blocks all backdoor paths and adds no colliderThe backdoor adjustment formula: once Z blocks every backdoor path, the causal effect reduces to a covariate-weighted average of ordinary conditional probabilities.
When confounders are unobserved: frontdoor and instruments
The backdoor criterion needs you to measure the confounders. Often you cannot. Two classic escapes recover identification anyway. The frontdoor criterion works when a fully observed mediator M sits on the path X → M → Y, M is not itself confounded with X, and X's only route to Y is through M. You then chain two identified pieces — X's effect on M and M's effect on Y — to reach X's effect on Y, threading around an unobserved confounder of X and Y.
The frontdoor formula recovers the effect through a fully-mediating variable M, even when the X–Y confounder is never measured.
The other escape is an instrumental variable (IV): a variable that nudges X, affects Y only through X, and shares no confounder with Y. A valid instrument is like a natural lottery — randomness injected into treatment from outside the system. It identifies effects for the subpopulation whose treatment actually responds to the instrument. We will use instruments again in Guide 4 when natural experiments hand them to us for free.
The do-calculus as a complete decision procedure
Backdoor, frontdoor, and IV are special cases. The general engine is do-calculus: three algebraic rules for rewriting expressions containing the do-operator. Apply them to manipulate P(Y | do(X)) until every do disappears, leaving only observational quantities — and you have identified the effect, with an explicit formula as a bonus. Remarkably, do-calculus is complete: if a repeated application of the three rules cannot eliminate the do-operator, then the effect is provably not identifiable from observational data under that graph. There is no cleverer trick waiting to be found.
Rule 2 of do-calculus — action/observation exchange: an intervention do(z) may be swapped for plain conditioning on z when the stated d-separation holds in the mutilated graph.