PC Algorithm and Constraint-Based Discovery

Summary

Constraint-based methods recover causal structure from the conditional-independence (CI) constraints in data. The PC algorithm (Spirtes-Glymour-Scheines) does this in two stages: (1) skeleton discovery — start fully connected and delete edges whose endpoints are CI given some conditioning set of growing size; (2) orientation — orient unshielded triples that are v-structures (colliders), then propagate orientations via Meek’s rules. PC assumes no latent confounders and outputs a CPDAG. FCI generalizes PC to tolerate (and sometimes detect) unmeasured confounders, outputting a PAG over MAGs.

Overview

PC is one of the oldest causal-discovery algorithms consistent under i.i.d. sampling with no latent confounders. It is a search architecture into which any CI decision procedure can be plugged — a hypothesis test for conditional independence, or a score-difference such as between models with and without an edge. It rests on the Markov and Faithfulness Assumptions: under the causal Markov + faithfulness assumptions and no latent confounder, two variables are directly causally connected (adjacent) iff there is no subset of the remaining variables conditional on which they become independent.

Main Content

Adjacency criterion (the basis of PC)

Under causal Markov + faithfulness and no latent confounder: and are adjacent (share an edge) iff for every subset of the other variables. Equivalently, an edge is removable iff some conditioning set renders the pair independent.

PC algorithm — skeleton discovery

  1. Form the complete undirected graph over all variables.
  2. Remove edges between unconditionally independent pairs ().
  3. For each adjacent pair and each single neighbor of (or of ), remove the edge if .
  4. For each adjacent pair and each size-2 neighbor set , remove the edge if .
  5. Continue with conditioning sets of increasing size until no adjacent pair has a neighbor subset of size left to test.

Crucially, record the separating set (the conditioning set that removed each edge) — it is needed for orientation. For sparse graphs PC is feasible on tens of thousands of variables (the linear/multinomial CI test is cheap).

PC algorithm — edge orientation

  1. Collider (v-structure) orientation. For every unshielded triple (with non-adjacent), orient as a v-structure iff is NOT in the separating set that removed the edge. (If were a non-collider, conditioning on it would have been required to separate and .)
  2. Orientation propagation (Meek’s rules). Repeatedly apply rules that orient further edges to avoid creating (a) new unshielded colliders and (b) directed cycles. The canonical rule illustrated: if and are non-adjacent, orient (else a new collider would appear). Iterate until no rule applies.

Output: CPDAG, and undirected residue

The output is a pattern / CPDAG representing a Markov equivalence class. Some edges may remain undirected: their endpoints are known to be adjacent but the data cannot determine direction (both orientations occur within the MEC). This is strictly more informative than a “conditional independence graph” (which uses CI given all other variables and reduces to a partial-correlation graph in the Gaussian case).

FCI — Fast Causal Inference (latent confounders)

FCI generalizes PC to tolerate unmeasured confounders, and is asymptotically correct in their presence. As in PC, it first prunes an undirected graph via CI tests, then orients. Edge ends carry “o” marks meaning “arrowhead or tail, undetermined.” Output is a PAG (Partial Ancestral Graph), a representative of an equivalence class of MAGs (Maximal Ancestral Graphs):

  • (bidirected) indicates at least one unmeasured confounder of and .
  • / encode remaining uncertainty about tails/heads.

FCI can sometimes rule out confounding: e.g., in Figure 1A data, if and have no confounder then , which FCI detects. Variants: RFCI (faster, less info), GFCI (combines GES + FCI; more accurate in simulations).

Examples

  • Figure 1 worked example. True graph , . (B) start complete; (C) remove since ; (D) remove and since ; (E) since , orient the triple as the v-structure ; (F) propagation orients (avoiding a new collider), recovering the structure uniquely.
  • Figure 2 (FCI). Variables with unmeasured. FCI removes edges by CI, orients and finds , signaling the latent confounder of and — something no purely CI-based method without latent-variable handling could express.

Connections

See Also