/knowledge/causal-discovery
Causal Discovery
Causal inference asks 'given this cause-and-effect diagram, what's the effect?' Causal discovery asks the harder, prior question: can we learn the diagram itself — what causes what — from the data alone?
- Studied
- Causal DiscoveryAdvanced · learning the structure
- When
- Causal ML
- Applied in
- Generating causal hypotheses
- Read / Refreshed
- ~15 min read2026-06-26
The causal-inference page started from a given causal diagram — a DAG saying what causes what — and asked how to estimate an effect. But where does the diagram come from? Usually from domain knowledge. Causal discovery asks the harder, prior question: can we learn the structure itself — infer the arrows of cause and effect — from observational data alone, without running an experiment?
It's an audacious goal, brushing right up against the famous warning that correlation isn't causation — and the honest answer is "partly, under assumptions, never completely." This page is why it's so hard, what you genuinely can recover, the two main families of algorithms, and why the result is a set of hypotheses to test rather than a finished truth.
01
Finding the arrows from data
The promise is enormous: experiments (RCTs) are the gold standard for causation, but they're often impossible, unethical, or expensive. We have mountains of observational data instead. Causal discovery asks whether that data can reveal not just that variables move together, but the direction of influence — which way the arrows point.
If it works even partially, it's a way to generate causal hypotheses at scale from data we already have. The catch is that the very thing we want — direction — is the thing correlations alone can't give us, and confronting that is where the field gets interesting.
02
Why it's so hard
The fundamental obstacle: correlation is symmetric, causation is directed. If A and B are correlated, the data looks identical whether A causes B, B causes A, or a hidden confounder C causes both. Plain correlation simply cannot tell these apart — they produce the same numbers.
So causal discovery has to find extra leverage, and its main source is conditional independence. The key insight is that different causal structures leave different fingerprints in the pattern of which variables become independent once you control for others. A collider (A → C ← B) behaves differently under conditioning than a chain (A → C → B) — and those differences, read carefully across many variables, let you recover some of the structure. But, crucially, not all of it.
03
Markov equivalence: the limit of what's knowable
Here's the deep result that bounds the whole enterprise: several different DAGs can imply exactly the same set of conditional independencies. They're statistically indistinguishable from observational data — no test can tell them apart, because they make identical predictions about every correlation and independence. This set is a Markov equivalence class.
So the honest output of observational causal discovery is usually not a single DAG but a CPDAG — a partially directed graph where some edges have a definite direction (the ones the data can determine, like colliders) and others remain undirected (the ones it can't). It tells you what's knowable and is honest about what isn't, which is the right kind of humility for the problem.
04
Constraint-based: the PC algorithm
The first family works directly from the independence fingerprints. The canonical method is the PC algorithm (Peter–Clark). It starts from a fully connected graph — assume everything might be related — then runs conditional independence tests to prune: if A and B are independent given some set of other variables, delete the edge between them. After pruning, it orients the edges it can (detecting colliders, then propagating directions where forced), leaving the rest undirected.
The output is a CPDAG — the Markov equivalence class. It's principled and interpretable, but leans entirely on the independence tests being right, which is where its fragility lives.
05
Score-based: GES
The second family reframes discovery as a search problem. GES (Greedy Equivalence Search) and its kin assign each candidate graph a score for how well it fits the data (a penalised likelihood like BIC, which rewards fit and punishes complexity), then search the space of graphs — greedily adding and removing edges — for the highest-scoring structure.
It's the same fit-vs-simplicity trade-off as model selection elsewhere, applied to graph structure. The space of possible DAGs is astronomically large, so the search is heuristic — and a modern twist (NOTEARS) recasts the whole thing as a continuous optimisation so gradient methods can be used. Both families typically land on the same kind of answer: an equivalence class, not a unique graph.
06
Breaking the ties
To get beyond the equivalence class to a unique direction, you need extra leverage — more than plain observational correlations provide:
- Interventional data — if you can actually intervene (even a little), you break the symmetry directly: wiggling A and watching B move (but not vice versa) settles the arrow. This is why experiments remain king.
- Extra assumptions — methods like LiNGAM exploit non-Gaussian noise, and additive-noise models exploit asymmetries in the functional form, to orient edges the independence tests alone leave undirected. They buy direction at the price of an assumption you must be willing to defend.
07
The honest limits
Causal discovery is powerful and easy to over-trust. The caveats are serious:
08
Where it shows up in my work
09
Refresh in 60 seconds
The Markov-equivalence/CPDAG framing, the PC and GES algorithm families, and the no-hidden-confounders / hypotheses-not-proof cautions reflect current causal-discovery references alongside coursework.