Causal Inference

Casual Inference refers to the theory and practice of quantifying how stochastic variables influence each other.

Literature

Tutorials

Discussions

Packages

CausalInference.jl

GitHub Repo stars deps CausalInference Downloads
Stable Dev GitHub last commit (branch) version Coverage

Causal inference, graphical models and structure learning in Julia

CausalInference.jl is the oldest and probably the most comprehensive package in Causal Inference.

Announcement thread

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

GitHub Repo stars deps CausalTables Downloads
Doc GitHub last commit (branch) version Coverage

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

GitHub Repo stars deps CausalELM Downloads
Stable Dev GitHub last commit (branch) version Coverage

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

GitHub Repo stars deps TMLE Downloads
Stable Dev GitHub last commit (branch) version Coverage

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

GitHub Repo stars deps Turing Downloads
Doc GitHub last commit (branch) version Coverage

Turing.jl is a DSL for Bayesian inference. It is probably the most complete package for Bayesian inference in Julia.

Associations.jl

GitHub Repo stars deps Associations Downloads
Stable Dev GitHub last commit (branch) version Coverage

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

GitHub Repo stars deps RxInfer Downloads
Stable Dev GitHub last commit (branch) version Coverage

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

This website is a community effort covering a lot of ever-changing information. It will therefore never be complete or without error. If you see something wrong, or have something to contribute, please see the "Contributing" section in the github repository.

Last modified: September 28, 2025. Built with Franklin.jl