Causal Discovery Under Hard Selection Bias: A New Robust Score-Matching Approach
Organizations: IST Austria, Am Campus 1, Klosterneuburg, 3400
Abstract
Selection bias is a difficult yet widespread problem in causal discovery, occurring whenever non-random selection processes lead to data that is not representative of the underlying populations. Due to its practical importance, related works have been proposed to address the problem under local [Versteeg et al., 2022] or interventional settings [Dai et al., 2025a], but general algorithms for observational data remain elusive. In this paper, we focus on truncated data (hard selection), and provide a general result for Additive Noise Models (ANM). We show that score-based methods are a surprisingly suitable candidate due to a special property of the score function (): deterministic truncation preserves both the score of the joint distribution as well as the Jacobian of the score. While established score-matching algorithms still fail in most settings, we actively leverage this observation to propose a new method for causal discovery that is robust under truncated data with ANMs. Overall, our approach offers a general, robust solution that is agnostic to external information about the selection process and still achieves comparable performance to the state-of-the-art approaches when selection is not present.
Figures & tables
| ANM Assumption | LiNGAM | CAM-UV | SCORE | NoGAM | CHess (Ours) |
|---|---|---|---|---|---|
| Nonlinear Gaussian | |||||
| Linear non-Gaussian | |||||
| Nonlinear non-Gaussian | |||||
| Hard Selection (Truncation) | ∗ |
| Setting | Sink rank | Non-sink rank | Gap |
|---|---|---|---|
| Linear Gaussian | (not identifiable) | ||
| Linear non-Gaussian | |||
| Nonlinear Gaussian | |||
| Nonlinear non-Gaussian |
| , gumbel | , gumbel | |||||
|---|---|---|---|---|---|---|
| fraction | ||||||
| SCORE | ( 0.25) | ( 0.17) | ( 0.14) | ( 0.12) | ( 0.11) | ( 0.10) |
| DAS | ( 0.25) | ( 0.17) | ( 0.14) | ( 0.11) | ( 0.12) | ( 0.10) |
| NoGAM | ( 0.21) | ( 0.16) | ( 0.14) | ( 0.16) | ( 0.14) | ( 0.11) |
| CAM | ( 0.20) | ( 0.14) | ( 0.12) | ( 0.08) | ( 0.11) | ( 0.12) |
| DirectLiNGAM | ( 0.03) | ( 0.14) | ( 0.16) | ( 0.03) | ( 0.05) | ( 0.07) |
| Method | ( ) | |
|---|---|---|
| SCORE | ( 0.05) | ( 0.05) |
| DAS | ( 0.10) | ( 0.08) |
| NoGAM | ( 0.04) | ( 0.06) |
| CAM | ( 0.08) | ( 0.09) |
| PC | ( 0.09) | ( 0.07) |
| FCI | ( 0.04) | ( 0.11) |
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | sink rank | Non-sink rank | Gap |
|---|---|---|---|
| Linear + Gaussian | (not identifiable) | ||
| Linear + non-Gaussian | |||
| Nonlinear + Gaussian | |||
| Nonlinear + non-Gaussian |
| True | Estimated | Adjacency | Arrowhead |
|---|---|---|---|
| TP | TP, TN | ||
| TP | FP, FN | ||
| TP | FN | ||
| FN | FN | ||
| FP | FP | ||
| FP | FP |
| F1 (Adj) | F1 (Arrow) | |||||
|---|---|---|---|---|---|---|
| Method | ||||||
| PC | ||||||
| FCI | ||||||
| Exact | ||||||
| GES | ||||||
| GRaSP | ||||||
| SHD | |||
|---|---|---|---|
| Method | |||
| PC | |||
| FCI | |||
| Exact | |||
| GES | |||
| GRaSP | |||
| F1 (Adj) | F1 (Arrow) | |||||
|---|---|---|---|---|---|---|
| Method | ||||||
| PC | ||||||
| FCI | ||||||
| Exact | ||||||
| GES | ||||||
| GRaSP | ||||||
| SHD | |||
|---|---|---|---|
| Method | |||
| PC | |||
| FCI | |||
| Exact | |||
| GES | |||
| GRaSP | |||
| F1 (Adj) | F1 (Arrow) | |||||
|---|---|---|---|---|---|---|
| Method | ||||||
| PC | ||||||
| FCI | ||||||
| Exact | ||||||
| GES | ||||||
| GRaSP | ||||||
| SHD | |||
|---|---|---|---|
| Method | |||
| PC | |||
| FCI | |||
| Exact | |||
| GES | |||
| GRaSP | |||
| F1 (Adj) | F1 (Arrow) | |||||
|---|---|---|---|---|---|---|
| Method | ||||||
| PC | ||||||
| FCI | ||||||
| Exact | ||||||
| GES | ||||||
| GRaSP | ||||||
| SHD | |||
|---|---|---|---|
| Method | |||
| PC | |||
| FCI | |||
| Exact | |||
| GES | |||
| GRaSP | |||
| F1 (Adj) | F1 (Arrow) | |||||
|---|---|---|---|---|---|---|
| Method | ||||||
| PC | ||||||
| FCI | ||||||
| Exact | ||||||
| GES | ||||||
| GRaSP | ||||||
| SHD | |||
|---|---|---|---|
| Method | |||
| PC | |||
| FCI | |||
| Exact | |||
| GES | |||
| GRaSP | |||
| Method | Network 1 | Network 2 | Network 3 | Network 4 | Network 5 |
|---|---|---|---|---|---|
| SCORE | |||||
| DAS | |||||
| NoGAM | |||||
| CAM | |||||
| CHess (stein) | |||||
| CHess (diffan) |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.04) / ( 0.06) / ( 0.05) | ( 0.04) | ( 0.05) | ( 0.08) |
| DAS | ( 0.06) / ( 0.10) / ( 0.10) | ( 0.05) | ( 0.08) | ( 0.10) |
| NoGAM | ( 0.02) / ( 0.01) / ( 0.04) | ( 0.04) | ( 0.06) | ( 0.08) |
| CAM | ( 0.06) / ( 0.08) / ( 0.08) | ( 0.08) | ( 0.09) | ( 0.10) |
| PC | ( 0.10) / ( 0.10) / ( 0.09) | ( 0.07) | ( 0.07) | ( 0.09) |
| FCI | ( 0.05) / ( 0.06) / ( 0.04) | ( 0.10) | ( 0.11) | ( 0.13) |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.04) / ( 0.06) / ( 0.05) | ( 0.06) | ( 0.07) | ( 0.08) |
| DAS | ( 0.06) / ( 0.10) / ( 0.10) | ( 0.06) | ( 0.09) | ( 0.08) |
| NoGAM | ( 0.02) / ( 0.01) / ( 0.04) | ( 0.05) | ( 0.06) | ( 0.09) |
| CAM | ( 0.06) / ( 0.08) / ( 0.08) | ( 0.08) | ( 0.13) | ( 0.10) |
| PC | ( 0.10) / ( 0.10) / ( 0.09) | ( 0.10) | ( 0.07) | ( 0.12) |
| FCI | ( 0.05) / ( 0.06) / ( 0.04) | ( 0.08) | ( 0.08) | ( 0.11) |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.04) / ( 0.06) / ( 0.05) | ( 0.06) | ( 0.06) | ( 0.05) |
| DAS | ( 0.06) / ( 0.10) / ( 0.10) | ( 0.05) | ( 0.07) | ( 0.09) |
| NoGAM | ( 0.02) / ( 0.01) / ( 0.04) | ( 0.05) | ( 0.04) | ( 0.04) |
| CAM | ( 0.06) / ( 0.08) / ( 0.08) | ( 0.09) | ( 0.08) | ( 0.09) |
| PC | ( 0.10) / ( 0.10) / ( 0.09) | ( 0.08) | ( 0.07) | ( 0.12) |
| FCI | ( 0.05) / ( 0.06) / ( 0.04) | ( 0.11) | ( 0.07) | ( 0.11) |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.08) | ( 0.08) | ( 0.09) |
| DAS | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.08) | ( 0.08) | ( 0.09) |
| NoGAM | ( 0.03) / ( 0.03) / ( 0.04) | ( 0.06) | ( 0.07) | ( 0.06) |
| CAM | ( 0.07) / ( 0.12) / ( 0.12) | ( 0.12) | ( 0.12) | ( 0.14) |
| PC | - / - / - | - | - | - |
| FCI | - / - / - | - | - | - |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.07) | ( 0.07) | ( 0.06) |
| DAS | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.07) | ( 0.07) | ( 0.06) |
| NoGAM | ( 0.03) / ( 0.03) / ( 0.04) | ( 0.04) | ( 0.05) | ( 0.08) |
| CAM | ( 0.07) / ( 0.12) / ( 0.12) | ( 0.14) | ( 0.17) | ( 0.19) |
| PC | - / - / - | - | - | - |
| FCI | - / - / - | - | - | - |
| Method | / / | ( ) | ( ) | ( ) |
|---|---|---|---|---|
| SCORE | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.06) | ( 0.07) | ( 0.07) |
| DAS | ( 0.06) / ( 0.07) / ( 0.04) | ( 0.06) | ( 0.07) | ( 0.07) |
| NoGAM | ( 0.03) / ( 0.03) / ( 0.04) | ( 0.05) | ( 0.06) | ( 0.06) |
| CAM | ( 0.07) / ( 0.12) / ( 0.12) | ( 0.14) | ( 0.15) | ( 0.13) |
| PC | - / - / - | - | - | - |
| FCI | - / - / - | - | - | - |
| Method | ||||
|---|---|---|---|---|
| non-select | halfspace | annulus | two boxes | |
| SCORE | ( 0.09) | ( 0.07) | ( 0.08) | ( 0.09) |
| DAS | ( 0.08) | ( 0.07) | ( 0.08) | ( 0.07) |
| NoGAM | ( 0.07) | ( 0.07) | ( 0.07) | ( 0.07) |
| CAM | ( 0.11) | ( 0.09) | ( 0.08) | ( 0.11) |
| PC | ( 0.05) | ( 0.02) | ( 0.03) | ( 0.03) |