◄ WORLD II · THE FOLDTHE OCHO · blue builds │ the machine │ red breaks

THE CAUSAL GRAPH

A directed acyclic graph where an arrow means one variable listens to another — and the whole joint distribution factorizes over it: P(v) = ∏i P(xi | parents(i)). It is the object every causal claim lives on. Down the center, data flows: the graph goes in, the engine builds the joint and simulates do(X=x), the identified effect comes out. The blue team builds and defends; the red team tries to break it.

source Pearl, Causal Diagrams for Empirical Research, Biometrika 82(4):669–688 (1995); Causality (2000) — academic.oup.com/biomet/82/4/669. Rendered, not quoted.

◧ blue team · builds & defends
3

THE MODEL — a structural causal model

Four variables (all binary), each with a structural equation = a noise draw shaped by its parents. The arrows fix who listens to whom:

Z → X,   Z → Y,   X → M,   M → Y.   So parents(Z)=∅, parents(X)={Z}, parents(M)={X}, parents(Y)={Z,M}. Z is a confounder; M is the mediator carrying X→Y.

The known conditional tables (P of value 1):

factorparents = 0parents = 1

The joint is the product of these four factors — nothing else. That product is the graph.

5

THE LINEAGE — from chain to graph

A Markov chain factorizes along a line: each state listens only to the one before. Generalize the line to a DAG and read the arrows causally, and you get this sphere: each node listens to its parents, the joint factorizes over the partial order.

The chain is the special case where every node has exactly one parent. The causal graph is the skeleton beneath a Bayes network — the same factorization, now carrying the extra promise that cutting an arrow means do(). Each sphere is the next one's premise.

7

THE WITNESS live

The blue team's live check: re-derive the topological order, confirm the enumerated joint factorizes exactly, and confirm the Markov-implied independence Z⊥M|X. If red adds a back-edge, the order vanishes and this badge turns red.

▼ the machine ▼
4

DATA IN — the graph in ↓

Four nodes, four arrows, one partial order: Z → X → M → Y with the confounding shortcut Z → Y. An arrow is a claim of direct listening; the absence of an arrow is a claim of conditional independence. That structure — plus the four tables — is the whole input to the engine below.

▼   feed the graph into the engine   ▼
0

▣ THE PANEL — the engine LIT

Replace X's structural equation with the constant 0 and push the noise through the rest of the graph.


Inspect one full assignment — its joint equals the four-factor product:

Every number is computed on the spot from the enumerated 16-cell joint — the do value from the mutilated graph, the back-door value from the adjustment formula. They agree because {Z} blocks the back-door path.

▼   the engine emits the identified effect   ▼
8

DATA OUT — the result out ↓

Proven, from this graph: the 16-cell joint equals P(Z)P(X|Z)P(M|X)P(Y|Z,M) to 1e-12. The causal effect is identified by back-door adjustment on {Z}: P(Y=1|do X=1)=0.628, P(Y=1|do X=0)=0.398, so the average causal effect is +0.230. The naive association 0.724 − 0.324 = 0.400 overstates it — that gap is confounding by Z, made visible only because the graph told us to condition on it.

The blue team's witness (left) re-derives these live; the red team (right) tries to make the graph stop being a graph.

red team · attacks & breaks ◨
1

THE ADVERSARY

WALL A DAG is an assumption, not a discovery. Observational data alone cannot orient every arrow — X→Y and X←Y can imply the same joint (a Markov equivalence class). The graph earns its direction from experiment or domain knowledge, never from the correlations alone.

And back-door adjustment only works if the confounder is observed. Hide Z and no adjustment set exists — you need a front-door path or an instrument, or the effect is simply not identified. The graph is honest about that: it shows you exactly which paths you failed to block.

2

THE GRAVEYARD

"The graph shows correlation is causation." Cut. It does the opposite: it separates seeing from doing. Here P(Y=1|X=1)=0.724 but P(Y=1|do X=1)=0.628 — the graph is what tells them apart.

"You can learn the whole DAG from data." Cut. Observational data pins it only to a Markov equivalence class (a CPDAG); some edges stay unoriented without interventions or extra assumptions.

"Adjusting for more variables is always safer." Kept, corrected. Condition on the mediator M and you block the causal path; condition on a collider and you open a spurious one. The back-door set is chosen by the graph, not by throwing everything in.

6

THE TAMPER — break it

The red team's move: add a back-edge Y → Z. Now Z→X→M→Y→Z is a cycle — no node can go first, no topological order exists, and the recursive factorization no longer defines a proper joint.

Add the cycle and the witness (window 7) recomputes, finds no topological order, and turns red. The DAG has stopped being acyclic — nothing is faked, the break is real and it is caught.