PC algorithm Created 2026-10-05 Updated 2026-11-05
The PC algorithm learns conditional-independence structure from a collection of observed random variables. Its standard initialization is the complete undirected graph, which represents every pair as a candidate adjacency. It then tests conditional independence over increasing conditioning-set sizes, using subsets of current neighboring vertices. Whenever is established, it removes and records as a separating set.[ref]
For an unshielded triple with nonadjacent, a recorded separating set that excludes supports the collider orientation . Further orientation rules propagate directions while avoiding directed cycles and unsupported new collider patterns. For example, a chain typically has , so its separating set contains ; a collider instead has marginal independence in the simple three-variable graph, so the empty separating set identifies the collider.
The oracle guarantee assumes an acyclic causal model over the observed variables, causal sufficiency, correct conditional independence decisions and faithfulness of a directed acyclic graph. The output represents a class under Markov equivalence of directed acyclic graphs; it need not identify every arrow of one unique causal graph.
An arbitrary incomplete initial graph does not satisfy that guarantee. With only two genuinely adjacent dependent variables, starting with their edge absent cannot recover it: the skeleton stage only removes edges. PC initialization from a conditional independence graph is a qualified screening construction that retains the true skeleton and records the required separating information for absent pairs. In finite samples, incorrect early independence decisions can propagate through both edge removal and orientation.