THE CONFOUNDER

A common cause Z feeds both X and Y. The two move together, so the eye reads a link — but the arrow X→Y was never drawn. This instrument builds that world as a linear-Gaussian SCM, shows the spurious X–Y correlation, and watches it vanish the instant you condition on Z. Rendered, not quoted.

SOURCE · AMBER Reichenbach, The Direction of Time (1956), the common-cause principle; formalised in Pearl, Causality (2000). archive.org/details/directionoftime0000reic — classic + book; no arxiv, marked AMBER.

Blue Team · builds & defends
3

The Model

A structural causal model with known coefficients. Z is the hidden common cause; X and Y are its two children. Crucially, Y's equation contains no X term — there is no causal effect of X on Y.

Z ~ N(0, 1) X = a·Z + ex a=2, ex~N(0,1) Y = b·Z + ey b=3, ey~N(0,1)

Z→X   Z→Y   X → Y (absent). The fork, not the chain.

5

The Lineage

This is why correlation is not causation: a hidden Z standing behind both variables manufactures association from nothing. The bias named here is exactly the leak that the-backdoor-criterion is built to close — block every back-door path (X←Z→Y) and the remaining association is causal.

neighbour → the-backdoor-criterion (the adjustment rule); ancestor → the-common-cause principle.

7

The Witness

Live re-check of the defence: is X⊥Y once we condition on the current set? Conditioning on the true confounder Z drives the partial covariance to 0. The Tamper (window 6) swaps the set; this badge catches it.

conditioning on: Z (the confounder)

WITNESS — booting…
The Machine
4

Data In IN ↓

Set the two structural weights. The observational world is sampled from Z; X and Y never touch each other.

↓ ↓ ↓
0

The Panel LIT

Everything below is computed live from the covariance of the SCM — closed form, no stored numbers.

Cov(X, Y)
marginal corr(X, Y)
naive slope  Y~X
partial corr(X,Y | Z)
causal effect  P(Y|do X)
do-sim  E[Y|do 5]−E[Y|do −5]

The amber rows are the mirage (nonzero, tracks a·b). The green rows are the truth (zero) — the confounding, explained away.

↓ ↓ ↓
8

Data Out OUT ↓

The proven result: X exerts no causal effect on Y. Adjusting for the confounder Z recovers it; the raw association does not.

P(Y | do X) = 0 — proven
Red Team · attacks & breaks
1

The Adversary WALL

"They correlate at 0.85 — X clearly drives Y. Run the regression: slope 1.2, tight fit. That is a real, actionable effect."

The wall: a strong marginal correlation and a significant OLS slope are fully consistent with zero causal effect when an unmeasured common cause exists. Fit and significance do not license the arrow.

2

The Graveyard

"X and Y are correlated, so X causes Y."
→ A shared cause Z produces the correlation with no X→Y edge.

"Control for anything correlated with X."
→ Conditioning on a descendant of X (or a collider) can fail to remove, or even amplify, the bias. Only a valid back-door set works.

"Big N fixes it."
→ N sharpens the wrong number. Confounding bias does not shrink with sample size.

6

The Tamper

The disclosed planted void: "adjust" by conditioning on W = X + noise, a descendant of X — not the confounder. The back-door path stays open, so the partial correlation does not vanish. The Witness (7) is designed to catch this live.