# Improving Accuracy and Scalability of the PC Algorithm by Maximizing P-value

arXiv: https://arxiv.org/abs/1610.00378 · HTML: https://mlsanity.com/paper/1610.00378/

## Key facts

- Cited by 11 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 3 Oct 2016.

## Built on by (most cited first, 11 of 11)

- [A survey of Bayesian Network structure learning](https://mlsanity.com/paper/2109.11415/) (2021)
- [On Different Notions of Redundancy in Conditional-Independence-Based Discovery of Graphical Models](https://mlsanity.com/paper/2502.08531/) (2025)
- [How PC-based Methods Err: Towards Better Reporting of Assumption Violations and Small Sample Errors](https://mlsanity.com/paper/2502.14719/) (2025)
- [Improving constraint-based discovery with robust propagation and reliable LLM priors](https://mlsanity.com/paper/2509.23570/) (2025)
- [Scalable Causal Discovery from Recursive Nonlinear Data via Truncated Basis Function Scores and Tests](https://mlsanity.com/paper/2510.04276/) (2025)
- [Fourier Feature Methods for Nonlinear Causal Discovery: FFML Scoring, TRFF Scoring, and FFCI Testing in Mixed Data](https://mlsanity.com/paper/2605.05743/) (2026)
- [Shapley-PC: Constraint-based Causal Structure Learning with a Shapley Inspired Framework](https://mlsanity.com/paper/2312.11582/) (2023)
- [MEC-IP: Efficient Discovery of Markov Equivalent Classes via Integer Programming](https://mlsanity.com/paper/2410.18147/) (2024)
- [Engineering Spatial and Molecular Features from Cellular Niches to Inform Predictions of Inflammatory Bowel Disease](https://mlsanity.com/paper/2509.09923/) (2025)
- [Fast Flow Matching based Conditional Independence Tests for Causal Discovery](https://mlsanity.com/paper/2602.08315/) (2026)
- [DKCD: Domain Knowledge-Enhanced Causal Discovery from Unstructured Data](https://mlsanity.com/paper/2607.09348/) (2026)

## Abstract (arXiv)

A number of attempts have been made to improve accuracy and/or scalability of the PC (Peter and Clark) algorithm, some well known (Buhlmann, et al., 2010; Kalisch and Buhlmann, 2007; 2008; Zhang, 2012, to give some examples). We add here one more tool to the toolbox: the simple observation that if one is forced to choose between a variety of possible conditioning sets for a pair of variables, one should choose the one with the highest p-value. One can use the CPC (Conservative PC, Ramsey et al., 2012) algorithm as a guide to possible sepsets for a pair of variables. However, whereas CPC uses a voting rule to classify colliders versus noncolliders, our proposed algorithm, PC-Max, picks the conditioning set with the highest p-value, so that there are no ambiguities. We combine this with two other optimizations: (a) avoiding bidirected edges in the orientation of colliders, and (b) parallelization. For (b) we borrow ideas from the PC-Stable algorithm (Colombo and Maathuis, 2014). The result is an algorithm that scales quite well both in terms of accuracy and time, with no risk of bidirected edges.
