Causal Foundations advanced 8 min read 7 flashcards

Structural Causal Models and Counterfactuals

A structural causal model assigns every variable a mechanism and an exogenous noise term, which is exactly the extra structure needed to answer "what would have happened to this unit", the question neither correlations nor interventions can answer.

A customer churned last month. She had received a price increase. The retention team asks whether she would have stayed had the price not changed. An A/B test on price answers a different question: what fraction of customers like her stay under each price. Her own answer depends on facts about her that the experiment averages away, and recovering it requires a model that can be run forward from her specific circumstances.

Pearl organises causal questions into three rungs (Pearl, 2019, The Seven Tools of Causal Inference, with Reflections on Machine Learning, CACM 62(3)). Association, \(P(y \mid x)\): what does seeing \(x\) tell me? Intervention, \(P(y \mid do(x))\): what happens if I set \(x\)? Counterfactual, \(P(y_{x'} \mid x, y)\): given that I saw \(x\) and \(y\), what would \(y\) have been under \(x'\)? The neighbouring concept on the do-operator covers the second rung; this one is about the third.

The model that makes rung three computable

A structural causal model is a tuple of exogenous variables \(U\) with a distribution \(P(U)\), endogenous variables \(V\), and one structural equation per endogenous variable, \(V_j = f_j(\mathrm{pa}_j, U_j)\), where \(\mathrm{pa}_j\) are its direct causes. The graph is the skeleton; the functions and noise are the flesh (Pearl, 2009, Causality, 2nd ed.).

The exogenous \(U\) is the key object. It encodes everything idiosyncratic about a unit: her price sensitivity, her competitor offers, her mood. Once \(U = u\) is fixed, every variable is determined, and the potential outcome \(Y_x(u)\) is simply the value \(Y\) takes in the modified model where the equation for \(X\) is replaced by the constant \(x\). Potential outcomes are therefore not primitives in this framework; they are derived from the mechanisms.

Abduction, action, prediction

A counterfactual query is evaluated in three steps.

  1. Abduction. Update \(P(U)\) to \(P(U \mid \text{evidence})\) using what was observed about this unit.
  2. Action. Replace the structural equation for \(X\) with \(X = x'\).
  3. Prediction. Propagate the updated \(U\) through the modified model to get the distribution of \(Y\).

A linear example makes the steps concrete. Let \(X = U_X\) and \(Y = 2X + U_Y\) with \(\mathbb{E}[U_Y] = 0\). We observe a unit with \(X = 1\) and \(Y = 5\). Abduction gives \(U_Y = 5 - 2 = 3\). Action sets \(X = 0\). Prediction gives \(Y_{X=0} = 2 \cdot 0 + 3 = 3\). The interventional answer for the population, \(\mathbb{E}[Y \mid do(X=0)] = \mathbb{E}[U_Y] = 0\), differs by exactly the unit-specific noise the evidence revealed. Rung two averages over \(U\); rung three conditions on it first.

The difference is not cosmetic. The causal hierarchy theorem shows that, for almost every SCM, data from a lower rung underdetermine the answers on a higher one: two models can agree on every observational and interventional distribution and still disagree on counterfactuals (Bareinboim, Correa, Ibeling and Icard, 2022, On Pearl's Hierarchy and the Foundations of Causal Inference, ACM Books).

What counterfactuals buy, and what they cost

The practical payoff is the probability of causation. The probability of necessity and sufficiency, \(\mathrm{PNS} = P(y_x, y'_{x'})\), is the probability that \(y\) happens under \(x\) and fails under \(x'\) for the same unit. It is what a liability claim or an attribution report actually needs, and it is generally not identified. It can be bounded. Using experimental data alone, Tian and Pearl show

\[\max\{0,\; P(y_x) - P(y_{x'})\} \;\le\; \mathrm{PNS} \;\le\; \min\{P(y_x),\; P(y'_{x'})\}\]

(Tian and Pearl, 2000, Probabilities of Causation: Bounds and Identification, Annals of Mathematics and AI 28, arXiv:1301.3898). If a discount raises retention from 20% to 60%, then \(P(y_x) = 0.6\) and \(P(y'_{x'}) = 0.8\), so PNS lies in \([0.4, 0.6]\). The experiment's 40-point lift is the floor of the probability that the discount was decisive for a random customer, not its value, and combining observational with experimental data can narrow the interval further.

Point identification of unit-level counterfactuals needs more than the graph: typically a functional form assumption such as additive noise, or monotonicity (no unit harmed by treatment). Those assumptions are about mechanisms nobody observes, which is where the framework is most exposed.

When it breaks

Counterfactuals rest on assumptions no experiment can test. The joint distribution of \(Y_x\) and \(Y_{x'}\) for the same unit is never observed, in any design. This is the basis of a long-standing objection: Dawid argued that causal inference should avoid quantities whose values cannot even in principle be checked against data (Dawid, 2000, Causal Inference without Counterfactuals, JASA 95(450)). Pearl's reply is that the questions people ask, about blame, regret and explanation, are counterfactual whether or not the statistics are comfortable. Both positions remain in active use.

The noise model does real work. Swap \(Y = 2X + U_Y\) for \(Y = 2X \cdot U_Y\) and the same observation yields a different abducted \(U_Y\) and a different counterfactual, even though both models can be fitted to identical interventional data. An SCM fitted by regression and then queried counterfactually is only as credible as its functional form.

Abduction needs the right evidence. Conditioning on \(X\) and \(Y\) alone often leaves \(U\) widely uncertain, so the counterfactual is a broad distribution, not a number. Reporting its mean as "what would have happened" hides that spread.

Machine-learning explainers borrow the vocabulary without the model. A "counterfactual explanation" that perturbs a classifier's input answers a question about the classifier's function, not about the world. It is rung three language applied to a model with no causal mechanisms in it.

Check yourself

7 flashcards for this concept

Click a card to reveal the answer.

Drill the whole track