# A Scale-Invariant Sorting Criterion to Find a Causal Order in Additive Noise Models

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

## Key facts

- Cited by 28 papers in the map (data through 14 Oct 2026).
- Builds on 20 of its 54 references that are in the map.
- First posted on arXiv 31 Mar 2023.

## Builds on (most cited first, 20 of 20)

- [DAGs with NO TEARS: Continuous Optimization for Structure Learning](https://mlsanity.com/paper/1803.01422/) (2018)
- [D'ya like DAGs? A Survey on Structure Learning and Causal Discovery](https://mlsanity.com/paper/2103.02582/) (2021)
- [CAM: Causal additive models, high-dimensional order search and penalized regression](https://mlsanity.com/paper/1310.1533/) (2013)
- [Beware of the Simulated DAG! Causal Discovery Benchmarks May Be Easy To Game](https://mlsanity.com/paper/2102.13647/) (2021)
- [Score matching enables causal discovery of nonlinear additive noise models](https://mlsanity.com/paper/2203.04413/) (2022)
- [Amortized Inference for Causal Structure Learning](https://mlsanity.com/paper/2205.12934/) (2022)
- [High-dimensional learning of linear causal networks via inverse covariance estimation](https://mlsanity.com/paper/1311.3492/) (2013)
- [A survey of Bayesian Network structure learning](https://mlsanity.com/paper/2109.11415/) (2021)
- [Causal Structure Learning](https://mlsanity.com/paper/1706.09141/) (2017)
- [gCastle: A Python Toolbox for Causal Discovery](https://mlsanity.com/paper/2111.15155/) (2021)
- [On Causal Discovery with Equal Variance Assumption](https://mlsanity.com/paper/1807.03419/) (2018)
- [Learning linear structural equation models in polynomial time and sample complexity](https://mlsanity.com/paper/1707.04673/) (2017)
- [Unsuitability of NOTEARS for Causal Graph Discovery](https://mlsanity.com/paper/2104.05441/) (2021)
- [Causal structure learning from time series: Large regression coefficients may predict causal links better in practice than small p-values](https://mlsanity.com/paper/2002.09573/) (2020)
- [Causal Structure Discovery between Clusters of Nodes Induced by Latent Factors](https://mlsanity.com/paper/2207.01237/) (2022)
- [The DeCAMFounder: Non-Linear Causal Discovery in the Presence of Hidden Variables](https://mlsanity.com/paper/2102.07921/) (2021)
- [Benchpress: A Scalable and Versatile Workflow for Benchmarking Structure Learning Algorithms](https://mlsanity.com/paper/2107.03863/) (2021)
- [Nonlinear Causal Discovery with Confounders](https://mlsanity.com/paper/2302.03178/) (2023)
- [Invariant Ancestry Search](https://mlsanity.com/paper/2202.00913/) (2022)
- [Tearing Apart NOTEARS: Controlling the Graph Prediction via Variance Manipulation](https://mlsanity.com/paper/2206.07195/) (2022)

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

- [Root Cause Analysis of Outliers with Missing Structural Knowledge](https://mlsanity.com/paper/2406.05014/) (2024)
- [The Landscape of Causal Discovery Data: Grounding Causal Discovery in Real-World Applications](https://mlsanity.com/paper/2412.01953/) (2024)
- [Standardizing Structural Causal Models](https://mlsanity.com/paper/2406.11601/) (2024)
- [Adjustment Identification Distance: A gadjid for Causal Structure Learning](https://mlsanity.com/paper/2402.08616/) (2024)
- [Unitless Unrestricted Markov-Consistent SCM Generation: Better Benchmark Datasets for Causal Discovery](https://mlsanity.com/paper/2503.17037/) (2025)
- [CausalDynamics: A large-scale benchmark for structural discovery of dynamical causal models](https://mlsanity.com/paper/2505.16620/) (2025)
- [Better Simulations for Validating Causal Discovery with the DAG-Adaptation of the Onion Method](https://mlsanity.com/paper/2405.13100/) (2024)
- [Hybrid Top-Down Global Causal Discovery with Local Search for Linear and Nonlinear Additive Noise Models](https://mlsanity.com/paper/2405.14496/) (2024)
- [Shortcuts for causal discovery of nonlinear models by score matching](https://mlsanity.com/paper/2310.14246/) (2023)
- [Causal Discovery via Quantile Partial Effect](https://mlsanity.com/paper/2509.12981/) (2025)
- [Embracing Discrete Search: A Reasonable Approach to Causal Structure Learning](https://mlsanity.com/paper/2510.04970/) (2025)
- [The Robustness of Differentiable Causal Discovery in Misspecified Scenarios](https://mlsanity.com/paper/2510.12503/) (2025)
- [Sortability of Time Series Data](https://mlsanity.com/paper/2407.13313/) (2024)
- [FoundCause: Causal Discovery with Latent Confounders from Observational Data](https://mlsanity.com/paper/2606.17516/) (2026)
- [Causal Discovery for Irregularly Time Series with Consistency Guarantees](https://mlsanity.com/paper/2507.03310/) (2025)
- [Robust Causal Discovery under Imperfect Structural Constraints](https://mlsanity.com/paper/2511.06790/) (2025)
- [DAG-FM: A Foundation Model for Causal Discovery under Heterogeneous Causal Mechanisms](https://mlsanity.com/paper/2607.11510/) (2026)
- [LoSAM: Local Search in Additive Noise Models with Mixed Mechanisms and General Noise for Global Causal Discovery](https://mlsanity.com/paper/2410.11759/) (2024)
- [CGLearn: Consistent Gradient-Based Learning for Out-of-Distribution Generalization](https://mlsanity.com/paper/2411.06040/) (2024)
- [Probabilistic and Causal Satisfiability: Constraining the Model](https://mlsanity.com/paper/2504.19944/) (2025)
- [When Additive Noise Meets Unobserved Mediators: Bivariate Denoising Diffusion for Causal Discovery](https://mlsanity.com/paper/2506.23374/) (2025)
- [Learning Causal Orderings for In-Context Tabular Prediction](https://mlsanity.com/paper/2605.22335/) (2026)
- [Causal Learning in Biomedical Applications: Krebs Cycle as a Benchmark](https://mlsanity.com/paper/2406.15189/) (2024)
- [Causal Graph Learning via Distributional Invariance of Cause-Effect Relationship](https://mlsanity.com/paper/2602.03353/) (2026)
- [Differentiable latent structure discovery for interpretable forecasting in clinical time series](https://mlsanity.com/paper/2604.27967/) (2026)
- [A Topological Sorting Criterion for Random Causal Directed Acyclic Graphs](https://mlsanity.com/paper/2605.06288/) (2026)
- [Stable Causal Discovery via Directed Acyclic Graph Aggregation](https://mlsanity.com/paper/2605.18633/) (2026)
- [The Good, the Bad, and the Ugly of Markov Boundary for Tabular Prediction](https://mlsanity.com/paper/2605.29411/) (2026)

## Abstract (arXiv)

Additive Noise Models (ANMs) are a common model class for causal discovery from observational data and are often used to generate synthetic data for causal discovery benchmarking. Specifying an ANM requires choosing all parameters, including those not fixed by explicit assumptions. Reisach et al. (2021) show that sorting variables by increasing variance often yields an ordering close to a causal order and introduce var-sortability to quantify this alignment. Since increasing variances may be unrealistic and are scale-dependent, ANM data are often standardized in benchmarks. We show that synthetic ANM data are characterized by another pattern that is scale-invariant: the explainable fraction of a variable's variance, as captured by the coefficient of determination R2, tends to increase along the causal order. The result is high R2-sortability, meaning that sorting the variables by increasing R2 yields an ordering close to a causal order. We propose an efficient baseline algorithm termed R2-SortnRegress that exploits high R2-sortability and that can match and exceed the performance of established causal discovery algorithms. We show analytically that sufficiently high edge weights lead to a relative decrease of the noise contributions along causal chains, resulting in increasingly deterministic relationships and high R2. We characterize R2-sortability for different simulation parameters and find high values in common settings. Our findings reveal high R2-sortability as an assumption about the data generating process relevant to causal discovery and implicit in many ANM sampling schemes. It should be made explicit, as its prevalence in real-world data is unknown. For causal discovery benchmarking, we implement R2-sortability, the R2-SortnRegress algorithm, and ANM simulation procedures in our library CausalDisco at https://causaldisco.github.io/CausalDisco/.
