Causal Inference
Casual Inference refers to the theory and practice of quantifying how stochastic variables influence each other.
Literature
Hernán & Robins. Causal Inference: What If with examples in Julia.
Scott Cunningham. Causal Inference: The Mixtape with github repo.
Nick Huntington-Klein. The Effect with homework and code in R and python.
Peter Spirtes, Clark Glymour, and Richard Scheines. Causation, Prediction, and Search
Tutorials
Discussions
Packages
CausalInference.jl
Causal inference, graphical models and structure learning in Julia
CausalInference.jl is the oldest and probably the most comprehensive package in Causal Inference.
From the package README:
Julia package for causal inference and analysis, graphical models and structure learning.
This package contains code for the PC algorithm and the extended FCI algorithm, the score based greedy equivalence search (GES) algorithm, the Bayesian Causal Zig-Zag sampler and a function suite for adjustment set search.
CausalTables.jl
A new type of Table to store and simulate data for causal inference in Julia.
Paper: CausalTables.jl: Simulating and storing data for statistical causal inference in Julia
From the package README:
CausalTables.jl provides a common interface for manipulating tabular data for causal inference. While packages like CausalInference.jl only focus on causal graphs and discovery algorithms, the CausalTable
interface provides utility functions to clean and manipulate practical datasets for input into statistical estimators. The simulation capabilities of CausalTables.jl
are similar to those of probabilistic programming languages like Turing.jl or Gen.jl; however, unlike these packages, with CausalTables.jl
users can extract the true conditional distributions of relevant variables from a dataset in closed-form after data has been generated. This makes it easy to extract parameters like ground-truth ("oracle") conditional means or propensity scores, which are often helpful for testing whether an estimator is behaving as intended.
CausalELM.jl
Taking causal inference to the extreme!
From the Package README:
CausalELM provides easy-to-use implementations of modern causal inference methods in a lightweight package. While CausalELM implements a variety of estimators, they all have one thing in common—the use of machine learning models to flexibly estimate causal effects. This is where the ELM in CausalELM comes from—the machine learning model underlying all the estimators is an extreme learning machine (ELM). ELMs are a simple neural network that use randomized weights and offer a good tradeoff between learning non-linear dependencies and simplicity. Furthermore, CausalELM implements bagged ensembles of ELMs to reduce the variance resulting from randomized weights.
JuliaCon 2024 presentation: Causal Machine Learning with CausalELM
TMLE.jl
A Julia implementation of the Targeted Minimum Loss-based Estimation
From the package README:
TMLE.jl is a Julia package that implements Targeted Maximum Likelihood Estimation (TMLE), a general framework for causal effect estimation that combines machine learning with principles from semiparametric statistics. TMLE provides doubly robust, efficient, and flexible estimation of causal parameters in observational and experimental studies.
Turing.jl
Turing.jl is a DSL for Bayesian inference. It is probably the most complete package for Bayesian inference in Julia.
Associations.jl
Algorithms for quantifying associations, independence testing and causal inference from data.
From the package README:
Associations.jl is a package for quantifying associations, independence testing and causal inference.
Key features
Association API: includes measures and their estimators for pairwise, conditional and other forms of association from conventional statistics, from dynamical systems theory, and from information theory: partial correlation, distance correlation, (conditional) mutual information, transfer entropy, convergent cross mapping and a lot more!
Independence testing API, which is automatically compatible with every association measure estimator implemented in the package.
Causal (network) inference API integrating the association measures and independence testing framework.
Additional features
Extending on features from ComplexityMeasures.jl, we also offer
Discretization API for multiple (multivariate) input datasets.
Multivariate counting and probability estimation API.
Multivariate information measure API
Previously, this package was called CausalityTools.jl.
RxInfer.jl
Julia package for automated Bayesian inference on a factor graph with reactive message passing
RxInfer.jl main page contains lots of examples.
Star History
Turing.jl is dominating the graph, so here it is without Turing.jl
Last modified: September 28, 2025. Built with Franklin.jl