Skip to content
プロジェクト

rguo12/awesome-causality-algorithms

GitHubで見る

rguo12/awesome-causality-algorithms has 3,302 GitHub stars and 477 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-14 13:23 UTC. Last push 2026-10-28.

この数値の測り方

計測したスター増加

24時間
0
7日間
+1
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

概要

An index of algorithms for learning causality with data

学習

awesome-causality-algorithms Awesome

An index of algorithms in

  • machine learning for causal inference: solves causal inference problems
  • causal machine learning: solves ML problems

Reproducibility is important! We will remove those methods without open-source code unless it is a survey/review paper.

Please cite our survey paper if this index is helpful.

@article{guo2020survey,
  title={A survey of learning causality with data: Problems and methods},
  author={Guo, Ruocheng and Cheng, Lu and Li, Jundong and Hahn, P Richard and Liu, Huan},
  journal={ACM Computing Surveys (CSUR)},
  volume={53},
  number={4},
  pages={1--37},
  year={2020},
  publisher={ACM New York, NY, USA}
}

Table of Contents

Contributions are welcome, see CONTRIBUTING.md.

Toolboxes

Comprehensive

Name Code Comment
causal-learn Python Causal Discovery, Causal Representation Learning, Statistical Tests.
Trustworthy AI Python Causal Structure Learning, Causal Disentangled Representation Learning, gCastle (or pyCastle, pCastle).
YLearn Python Python package for causal discovery, causal effect identification/estimation, counterfactual inference, policy learning, etc.

Treatment Effect Estimation / Uplift Modeling

Name Paper/Documentation Venue Code Comment
DoWhy Tutorial on Causal Inference and Counterfactual Reasoning KDD 2018 Python Python library for causal inference that supports explicit modeling and testing of causal assumptions.
EconML Causal Inference and Machine Learning in Practice with EconML and CausalML KDD 2021 Python Python package that applies the power of machine learning techniques to estimate individualized causal responses from observational or experimental data.
CausalML Causalml: Python package for causal machine learning arXiv Python Uplift modeling and causal inference with machine learning algorithms
JustCause Underlying thesis NA Python For evaluation of heterogeneous treatment effect estimators on common reference as well as synthetic data.
WhyNot Documentation NA Python An experimental sandbox for causal inference and decision making in dynamics.
scikit-uplift Documentation and User guide for uplift modeling NA Python Uplift modeling in scikit-learn style in python.
DoubleML Double/debiased machine learning for treatment and structural parameters Econometrics Journal 2018 Python Double machine learning framework for causal parameters; also available in R.
CausalPy NA NA Python Bayesian and quasi-experimental causal inference (synthetic control, DiD, RDD, IV) built on PyMC.

Causal Discovery

Name Paper Venue Code Comment
Bench Press Benchpress: a scalable and versatile workflow for benchmarking structure learning algorithms for graphical models — Rios et al. arXiv 2021 Code Reproducible and scalable execution and benchmarks of 41 structure learning algorithms supporting multiple language
causal-learn Causal-learn: Causal Discovery in Python — Zheng et al. JMLR 2024 Python Causal Discovery, Causal Representation Learning, Statistical Tests.
TETRAD R/Java TETRAD: A Toolbox for Causal Discovery — Ramsey et al. CI 2018 R/Java Causal Discovery Toolbox from CMU
Causaldag NA NA Code Python package for the creation, manipulation, and learning of Causal DAGs
CausalNex NA NA Python A toolkit for causal reasoning with Bayesian Networks.
CausalDiscoveryToolbox Causal Discovery Toolbox: Uncover causal relationships in Python — Kalainathan and Goudet arXiv 2019 Python
pgmpy NA NA Python Probabilistic graphical models, structure learning and causal inference.
Tigramite NA NA Python Causal discovery and inference for time series (PCMCI and variants).
DoDiscover NA NA Python PyWhy library for causal discovery, including with latent confounders.
Causica NA NA Python Deep end-to-end causal inference (DECI) and related models from Microsoft.
LiNGAM NA NA Python Implementations of the LiNGAM family of non-Gaussian causal discovery methods.
Causal Chambers Causal chambers as a real-world physical testbed for AI methodology — Gamella et al. Nature Machine Intelligence 2025 Python Real-world datasets with interventions and validated ground-truth graphs from two physical devices; the Python package loads the data and graphs and includes simulators.
causal-automata NA NA Python A relatively fast, GPU-native causal discovery and DAG structure learning package in JAX/NumPy via synchronous cellular automata and a 1D topological elevation field.

Root Cause Analysis

Name Paper Venue Code Comments
Chaos Genius NA NA Python ML powered analytics engine for outlier/anomaly detection and root cause analysis.

Causal Effect Estimation

Survey Papers

Name Paper Venue
Yao et al. A survey on causal inference — Yao et al. TKDD

With i.i.d Data

Individual Treatment Effect (ITE) / Conditional Average Treatment Effect (CATE)

Deep Learning based methods
Name Paper Venue Code
TARNet, Counterfactual Regression Estimating individual treatment effect: generalization bounds and algorithms — Shalit et al. ICML 2017 Python
BNN, BLR Learning representations for counterfactual inference — Johansson et al. ICML 2016 Python
Causal Effect VAE Causal effect inference with deep latent-variable models — Louizos et al. NeurIPS 2017 Python
Dragonnet Adapting neural networks for the estimation of treatment effects — Shi et al. NeurIPS 2019 Python
SITE Representation Learning for Treatment Effect Estimation from Observational Data — Yao et al. NeurIPS 2018 Python
GANITE GANITE: Estimation of Individualized Treatment Effects using Generative Adversarial Nets — Yoon et al. ICLR 2018 Python
Perfect Match Perfect match: A simple method for learning representations for counterfactual inference with neural networks — Schwab et al. arXiv 2018 Python
Intact-VAE Intact-VAE: Estimating treatment effects under unobserved confounding — Wu and Fukumizu ICLR 2022 NA
CausalEGM CausalEGM: a general causal inference framework by encoding generative modeling — Liu et al. arXiv 2022 Python
Classic Methods
Name Paper Venue Code
Tree based Methods
Name Paper Venue Code
Causal Forest Estimation and inference of heterogeneous treatment effects using random forests — Wager and Athey JASA 2017 R, Python
Causal MARS, Causal Boosting, Pollinated Transformed Outcome Forests Some methods for heterogeneous treatment effect estimation in high-dimensions — Powers et al. arXiv 2017 R, R
Bayesian Additive Regression Trees (BART) Bayesian nonparametric modeling for causal inference — Hill JCGS 2011 Python
Meta Learner
Name Paper Venue Code
X-learner Metalearners for estimating heterogeneous treatment effects using machine learning — Künzel et al. PNAS 2019 R, R
R-learner Quasi-oracle estimation of heterogeneous treatment effects — Nie and Wager Biometrika 2021 R

Average Treatment Effect (including ATT and ATC)

Name Paper Venue Code
Propensity Score Matching The central role of the propensity score in observational studies for causal effects — Rosenbaum and Rubin Biometrika 1983 Python
Inverse Probability Reweighting The central role of the propensity score in observational studies for causal effects — Rosenbaum and Rubin Biometrika 1983 R
Doubly Robust Estimation Doubly robust estimation in missing data and causal inference models — Bang and Robins Biometrics 2005 R
Doubly Robust Estimation for High Dimensional Data Doubly robust matching estimators for high dimensional confounding adjustment — Antonelli et al. Biometrics 2016 R
TMLE tmle: An R package for targeted maximum likelihood estimation — Gruber and van der Laan JSS 2011 R
Entropy Balancing Entropy balancing for causal effects: A multivariate reweighting method to produce balanced samples in observational studies — Hainmueller Political Analysis 2012 R
CBPS(Covariate Balancing Propensity Score) Covariate balancing propensity score — Imai and Ratkovic JRSS-B 2014 R
Approximate Residual Balancing Approximate residual balancing: debiased inference of average treatment effects in high dimensions — Athey et al. JRSS-B 2018 R
Causal Bootstrapping Causal bootstrapping — Little and Badawy arXiv 2019 Matlab

Instrumental Variable (IV)

Name Paper Venue Code
DeepIV Deep iv: A flexible approach for counterfactual prediction — Hartford et al. ICML 2017 Python
PDSLasso PDSLASSO: Stata module for post-selection and post-regularization OLS or IV estimation and inference — Ahrens et al. SSC 2018 STATA

Dose-Response Curve (Continuous Treatment)

Name Paper Venue Code
Causal Dose-Response Curves / Causal Curves causal-curve: A Python Causal Inference Package to Estimate Causal Dose-Response Curves — Kobrosly JOSS 2020 Python
Dose response networks (DRNets) Learning Counterfactual Representations for Estimating Individual Dose-Response Curves — Schwab et al. arXiv 2019 Python

Vectorized Treatments

Name Paper Venue Code
Causal Effect Inference for Structured Treatments Causal Effect Inference for Structured Treatments — Kaddour et al. NeurIPS 2021 Python

Multiple Causes

Name Paper Venue Code
Deconfounder The blessings of multiple causes — Wang and Blei arXiv 2018 Python

Multiple Outcomes

Name Paper Venue Code
Multiple Responses in Uplift Models Estimating and Visualizing Business Tradeoffs in Uplift Models — Weiss Blog Python

Difference-in-Differences / Regression Discontinuity

Name Paper Venue Code
Staggered Difference-in-Differences Difference-in-differences with multiple time periods — Callaway and Sant'Anna J. Econometrics 2021 R
Regression Discontinuity (rdrobust) Robust nonparametric confidence intervals for regression-discontinuity designs — Calonico et al. Econometrica 2014 R/Python/Stata

Mediation Analysis

Name Paper Venue Code
mediation A general approach to causal mediation analysis — Imai et al. Psychological Methods 2010 R

Sensitivity Analysis

Name Paper Venue Code
sensemakr Making sense of sensitivity: extending omitted variable bias — Cinelli and Hazlett JRSS-B 2020 R

Non-i.i.d Data

Panel Data / Time Series

Name Paper Venue Code
Synthetic Control Method Using synthetic controls: Feasibility, data requirements, and methodological aspects — Abadie JEL 2021 R
Synthetic Difference in Differences Synthetic difference in differences — Arkhangelsky et al. NBER 2019 R
Python
Causal Impact Inferring causal impact using Bayesian structural time-series models — Brodersen et al. AoAS 2015 R
Python
Time Series Deconfounder Time Series Deconfounder: Estimating Treatment Effects over Time in the Presence of Hidden Confounders — Bica et al. ICML 2020 Code
Recurrent Marginal Structural Networks Forecasting Treatment Responses Over Time Using Recurrent Marginal Structural Networks — Lim NeurIPS 2018 Python
Longitudinal Targeted Maximum Likelihood Estimation Targeted maximum likelihood estimation for dynamic and static longitudinal marginal structural working models — Petersen et al. J. Causal Inference 2014 R
Causal Transformer Causal Transformer for Estimating Counterfactual Outcomes — Melnychuk et al. arXiv 2022 Python

Network Data (with or without Interference)

Name Paper Venue Code
Network Deconfounder Learning Individual Causal Effects from Networked Observational Data — Guo et al. WSDM 2020 Python
Causal Inference with Network Embeddings Using embeddings to correct for unobserved confounding — Veitch et al. arXiv 2019 Python
Linked Causal Variational Autoencoder (LCVA) Linked Causal Variational Autoencoder for Inferring Paired Spillover Effects — Rakesh et al. CIKM 2018 Python
Method-of-moments Estimators Causal Inference under Network Interference with Noise — Li et al. arXiv 2021 Code

Causal Machine Learning

Surveys

Name Paper Venue Code
Causal ML Survey Causal Machine Learning: A Survey and Open Problems — Kaddour et al. arXiv 2022 NA

OoD Generalization

Name Paper Venue Code
DomainBed In Search of Lost Domain Generalization — Gulrajani and Lopez-Paz ICLR 2020 Code
WILDS Wilds: A benchmark of in-the-wild distribution shifts — Koh et al. ICML 2021 Code
IBM OoD Repository for theory and methods for Out-of-Distribution (OoD) generalization by IBM Research NA Code
OoD Bench Ood-bench: Benchmarking and understanding out-of-distribution generalization datasets and algorithms — Ye et al. arXiv 2021 Code
BEDS-Bench BEDS-Bench: Behavior of EHR-models under Distributional Shift--A Benchmark — Avati et al. arXiv 2021 Code
Survey THU Towards out-of-distribution generalization: A survey — Shen et al. arXiv 2021 NA

Graph OoD Generalization

Name Paper Venue Code
CIGA Learning Causally Invariant Representations for Out-of-Distribution Generalization on Graphs — Chen et al. NeurIPS 2022 Code
Survey THU Out-of-distribution generalization on graphs: A survey — Li et al. arXiv 2022 NA

Recommendation Systems

Inverse Propensity Scoring / Doubly Robust

Name Paper Venue Code
Top-K Off-policy Correction Top-k off-policy correction for a REINFORCE recommender system — Chen et al. WSDM 2019 Python
Unbiased Offline Recommender Learning Unbiased Recommender Learning from Missing-Not-At-Random Implicit Feedback — Saito et al. WSDM 2020 Python
Unbiased Offline Recommender Evaluation Unbiased offline recommender evaluation for missing-not-at-random implicit feedback — Yang et al. RecSys 2018 Python
IPS Estimator Recommendations as treatments: Debiasing learning and evaluation — Schnabel et al. ICML 2016 Python

Hidden Confounding

Name Paper Venue Code
Deconfounded Recsys Causal Inference for Recommender Systems — Wang et al. RecSys 2020 Python

Domain Adaptation

Name Paper Venue Code
Causal Embedding for Recommendation Causal embeddings for recommendation — Bonner and Vasile RecSys 2018 Python
Domain Adversarial Matrix Factorization Towards Resolving Propensity Contradiction in Offline Recommender Learning — Saito and Nomura IJCAI 2022 Code

Disentanglement

Name Paper Venue Code
Causal Embedding for User Interest and Conformity Disentangling User Interest and Conformity for Recommendation with Causal Embedding — Zheng et al. WWW 2021 Python

Learning to Rank

Name Paper Venue Code
Policy-aware Estimator Policy-aware unbiased learning to rank for top-k rankings — Oosterhuis and de Rijke SIGIR 2020 Python
Heckman^{rank} Correcting for Selection Bias in Learning-to-rank Systems — Ovaisi et al. arXiv 2020 Code
Unbiased LambdaMart Unbiased LambdaMART: An Unbiased Pairwise Learning-to-Rank Algorithm — Hu et al. WWW 2019 Code
IPW_rank and the Dual Learning Algorithm Unbiased Learning to Rank with Unbiased Propensity Estimation — Ai et al. SIGIR 2018 Python
Propensity SVM-rank Unbiased learning-to-rank with biased feedback — Joachims et al. WSDM 2017 Python

Off-line Policy Evaluation/Optimization (for Contextual Bandit or RL)

Name Paper Venue Code
Optimal Kernel Balancing Policy Evaluation with Latent Confounders via Optimal Balance — Bennett and Kallus arXiv 2019 Python
BanditNet Deep learning with logged bandit feedback — Joachims et al. ICLR 2018 Python
Counterfactual Risk Minimization (POEM) Counterfactual risk minimization: Learning from logged bandit feedback — Swaminathan and Joachims ICML 2015 Python
Self Normalized Estimator The self-normalized estimator for counterfactual learning — Swaminathan and Joachims NeurIPS 2015 Python
Open Bandit Pipeline Open Bandit Dataset and Pipeline: Towards Realistic and Reproducible Off-Policy Evaluation — Saito et al. NeurIPS 2021 Python

Natural Language Processing

Name Paper Venue Code
A Review of Using Text to Remove Confounding from Causal Estimates Text and Causal Inference: A Review of Using Text to Remove Confounding from Causal Estimates — Keith et al. ACL 2020 NA
Causal Analysis with Lexicons Deconfounded lexicon induction for interpretable social science — Pryzant et al. NAACL 2018 Python
Causal Text Embeddings Using Text Embeddings for Causal Inference — Veitch et al. arXiv 2019 Python
Handling Missing/Noisy Treatment Challenges of Using Text Classifiers for Causal Inference — Wood-Doughty et al. EMNLP 2018 Python
Causal Inferences Using Texts How to make causal inferences using texts — Egami et al. arXiv 2018 NA

Counterfactual Explanations

Paper Venue Code
Explaining machine learning classifiers through diverse counterfactual explanations — Mothilal et al. arXiv 2019 Python
Efficient search for diverse coherent explanations — Russell FAccT 2019 Python
Counterfactual explanations without opening the black box: Automated decisions and the GDPR — Wachter et al. Harvard JL&T 2017

Counterfactual Fairness

Paper Venue Code
Counterfactual fairness — Kusner et al. NeurIPS 2017 Python
Pc-fairness: A unified framework for measuring causality-based fairness — Wu et al. NeurIPS 2019 Code
Path-specific counterfactual fairness — Chiappa AAAI 2019 Code
Counterfactual fairness in text classification through robustness — Garg et al. AIES 2019 Code

Reinforcement Learning

Name Paper Venue Code
Deconfounded RL Deconfounding reinforcement learning in observational settings — Lu et al. arXiv 2018 Python
Structural Nested Models / G-estimation Structural nested models and G-estimation: the partially realized promise — Vansteelandt and Joffe Statistical Science 2014 NA
Counterfactual-Guided Policy Search (CF-GPS) Woulda, Coulda, Shoulda: Counterfactually-Guided Policy Search — Buesing et al. arXiv 2018 NA

Multi-Armed Bandit/Causal Bandit

Name Paper Venue Code
Causal Bandits Causal bandits: Learning good interventions via causal inference — Lattimore et al. NeurIPS 2016 NA
Offline+MAB Combining Offline Causal Inference and Online Bandit Learning for Data Driven Decisions — Ye et al. arXiv 2020 NA
B-kl-UCB, B-TS Transfer learning in multi-armed bandit: a causal approach — Zhang and Bareinboim AAMAS 2017 NA
Incremental Model Contextual Multi-Armed Bandits for Causal Marketing — Sawant et al. arXiv 2018 NA

Large Language Models

Name Paper Venue Code
PyWhy-LLM Causal reasoning and large language models: Opening a new frontier for causality — Kıcıman et al. arXiv 2023 Python

Causal Discovery

for i.i.d. Data

Classic Methods

Name Paper Venue Code
IC algorithm A theory of inferred causation — Pearl and Verma KR 1991 Python
PC algorithm Causation, Prediction, and Search — Spirtes et al. Book 2000 Python R Julia
FCI algorithm Causation, Prediction, and Search — Spirtes et al. Book 2000 R Julia

Continuous Optimization

Paper Venue Code
DAGs with NO TEARS: Continuous optimization for structure learning — Zheng et al. NeurIPS 2018 Code
DAG-GNN: DAG Structure Learning with Graph Neural Networks — Yu et al. ICML 2019 Code
Learning Sparse Nonparametric DAGs — Zheng et al. AISTATS 2020 Code
Amortized Inference for Causal Structure Learning — Lorch et al. NeurIPS 2022 Code
DAGMA: Learning DAGs via M-matrices and a Log-Determinant Acyclicity Characterization — Bello et al. NeurIPS 2022 Code
Deep End-to-end Causal Inference (DECI) — Geffner et al. arXiv 2022 Code

Learning IV

Name Paper Venue Code
Learning IV Learning instrumental variables with structural and non-gaussianity assumptions — Silva and Shimizu JMLR 2017 Code

Distinguishing Cause from Effect (Bivariate)

Name Paper Venue Code
BMLiNGAM Bayesian estimation of causal direction in acyclic structural equation models with individual-specific confounder variables and non-Gaussian distributions — Shimizu and Bollen JMLR 2014 Python
Sloppy Identifiability of Cause and Effect using Regularized Regression — Marx and Vreeken KDD 2019 R
RECI Cause-effect inference by comparing regression errors — Blöbaum et al. AISTATS 2018 in CausalDiscoveryToolbox
bQCD Distinguishing cause from effect using quantiles: Bivariate quantile causal discovery — Tagasovska et al. ICML 2020 Code
CGNN Learning functional causal models with generative neural networks — Goudet et al. Springer 2018 Code

Conditional Independence Tests (for Constraint-based Algorithms)

Name Paper Venue Code
RCIT Approximate kernel-based conditional independence tests for fast non-parametric causal discovery — Strobl et al. J. Causal Inference 2019 R

Causal Discovery with Probabilistic Logic Programming

Name Paper Venue Code
Causal PSL Scalable Probabilistic Causal Structure Discovery — Sridhar et al. IJCAI 2018 Java

Scalable Ensemble Causal Discovery

Name Paper Venue Code
Scalable and Hybrid Ensemble-Based Causality Discovery Scalable and Hybrid Ensemble-Based Causality Discovery — Guo et al. SMDS 2020 Python

with Temporal Data

Name Paper Venue Code
TCDF: Temporal Causal Discovery Framework Causal discovery with attention-based convolutional neural networks — Nauta et al. MAKE 2019 Pytorch
PCMCI Detecting and quantifying causal associations in large nonlinear time series datasets — Runge et al. Science Advances 2019 Python