Skip to content

Commit 8fe9796

Browse files
authored
Merge pull request #141 from tp2750/causal_inference
New section: Causal inference
2 parents fc0ab88 + d44b892 commit 8fe9796

4 files changed

Lines changed: 129 additions & 8 deletions

File tree

docs/_layout/pgwrap.html

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,19 @@
2323
<ul class="menu-list">
2424
{{metasection comparisons/bioinformatics "Bioinformatics"}}
2525
{{metasection comparisons/data_structures "Data Structures"}}
26-
{{metasection comparisons/performance_enhancement "Performance Enhancement"}}
27-
{{metasection comparisons/math Math}}
28-
{{metasection comparisons/physics Physics}}
29-
{{metasection comparisons/machine_learning "Machine Learning"}}
26+
{{metasection comparisons/dataio "Data I/O"}}
3027
{{metasection comparisons/geometry Geometry}}
3128
{{metasection comparisons/graphics Graphics}}
29+
{{metasection comparisons/math Math}}
30+
{{metasection comparisons/machine_learning "Machine Learning"}}
31+
{{metasection comparisons/performance_enhancement "Performance Enhancement"}}
32+
{{metasection comparisons/physics Physics}}
33+
{{metasection comparisons/probabilistic_programming "Probabilistic Programming"}}
3234
{{metasection comparisons/simulation Simulation}}
33-
{{metasection comparisons/dataio "Data I/O"}}
34-
{{metasection comparisons/interoperability Interoperability}}
35-
{{metasection comparisons/utility Utility}}
3635
{{metasection comparisons/web Web}}
3736
{{metasection comparisons/testing Testing}}
37+
{{metasection comparisons/interoperability Interoperability}}
38+
{{metasection comparisons/utility Utility}}
3839
<li class="menu-list-item {{ispage comparisons/metrics/*}}active{{end}}"><a href="/comparisons/metrics/" class="menu-list-link {{ispage comparisons/metrics}}active{{end}}">Metrics</a></li>
3940
<li class="menu-list-item {{ispage comparisons/probabilistic_programming/*}}active{{end}}"><a href="/comparisons/probabilistic_programming/" class="menu-list-link {{ispage comparisons/probabilistic_programming}}active{{end}}">Probabilistic Programming</a></li>
4041
<li class="menu-list-item {{ispage comparisons/signal_processing/*}}active{{end}}"><a href="/comparisons/signal_processing/" class="menu-list-link {{ispage comparisons/signal_processing}}active{{end}}">Signal Processing</a></li>
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
+++
2+
title = "Causal Inference"
3+
+++
4+
5+
# Causal Inference
6+
7+
[Casual Inference](https://thedecisionlab.com/reference-guide/statistics/casual-inference) refers to the theory and practice of quantifying how stochastic variables influence each other.
8+
9+
## Literature
10+
11+
* [Hernán & Robins. Causal Inference: What If](https://miguelhernan.org/whatifbook) with [examples in Julia](https://github.com/jrfiedler/causal_inference_julia_code).
12+
* [Scott Cunningham. Causal Inference: The Mixtape](https://mixtape.scunning.com/) with [github repo](https://github.com/Mixtape-Sessions).
13+
* [Nick Huntington-Klein. The Effect](https://theeffectbook.net/) with [homework](https://github.com/NickCH-K/TheEffectAssignments) and [code](https://github.com/NickCH-K/causalbook) in R and python.
14+
* [Peter Spirtes, Clark Glymour, and Richard Scheines. Causation, Prediction, and Search](https://philarchive.org/archive/SPICPA-2)
15+
16+
## Tutorials
17+
* [Causal discovery using Julia: A brief introduction, a simulation, and a possible use case](https://towardsdev.com/causal-discovery-using-julia-a-brief-introduction-a-simulation-and-a-possible-use-case-d2f2be2bfc02)
18+
19+
## Discussions
20+
21+
* [Causal inference in Julia 2025?](https://discourse.julialang.org/t/causal-inference-in-julia-2025/126001)
22+
23+
# Packages
24+
25+
## CausalInference.jl
26+
{{badge CausalInference}}
27+
> Causal inference, graphical models and structure learning in Julia
28+
[CausalInference.jl](https://github.com/mschauer/CausalInference.jl) is the oldest and probably the most comprehensive package in Causal Inference.
29+
30+
[Announcement thread](https://discourse.julialang.org/t/ann-causalinference-jl-causal-inference-in-julia/6154)
31+
32+
From the package README:
33+
34+
Julia package for causal inference and analysis, graphical models and structure learning.
35+
36+
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.
37+
38+
39+
## CausalTables.jl
40+
{{badge CausalTables}}
41+
> A new type of Table to store and simulate data for causal inference in Julia.
42+
43+
Paper: [CausalTables.jl: Simulating and storing data for statistical causal inference in Julia](https://joss.theoj.org/papers/10.21105/joss.07580)
44+
45+
From the package README:
46+
47+
[CausalTables.jl](https://github.com/salbalkus/CausalTables.jl) provides a common interface for manipulating tabular data for causal inference. While packages like [CausalInference.jl](https://mschauer.github.io/CausalInference.jl/latest/) 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](https://turing.ml/dev/) or [Gen.jl](https://www.gen.dev/); 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.
48+
49+
## CausalELM.jl
50+
{{badge CausalELM}}
51+
> Taking causal inference to the extreme!
52+
53+
From the Package README:
54+
55+
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.
56+
57+
JuliaCon 2024 presentation: [Causal Machine Learning with CausalELM ](https://www.youtube.com/watch?v=hh_cyj8feu8&t=26s)
58+
59+
## TMLE.jl
60+
{{badge TMLE}}
61+
> A Julia implementation of the Targeted Minimum Loss-based Estimation
62+
63+
From the package README:
64+
65+
[TMLE.jl](https://github.com/TARGENE/TMLE.jl) is a Julia package that implements [Targeted Maximum Likelihood Estimation](https://link.springer.com/book/10.1007/978-1-4419-9782-1) (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.
66+
67+
## Turing.jl
68+
{{badge Turing}}
69+
70+
[Turing.jl](https://github.com/TuringLang/Turing.jl) is a DSL for Bayesian inference.
71+
It is probably the most complete package for Bayesian inference in Julia.
72+
73+
## Associations.jl
74+
{{badge Associations}}
75+
> Algorithms for quantifying associations, independence testing and causal inference from data.
76+
77+
From the package README:
78+
79+
[Associations.jl]() is a package for quantifying associations, independence testing and causal inference.
80+
81+
**Key features**
82+
83+
- **Association API**: includes measures and their estimators for pairwise, conditional and other forms of
84+
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!
85+
- **Independence testing API**, which is automatically compatible with
86+
every association measure estimator implemented in the package.
87+
- **Causal (network) inference API** integrating the association measures and independence testing framework.
88+
89+
**Additional features**
90+
91+
Extending on features from [ComplexityMeasures.jl](https://github.com/JuliaDynamics/ComplexityMeasures.jl),
92+
we also offer
93+
94+
- Discretization API for multiple (multivariate) input datasets.
95+
- Multivariate counting and probability estimation API.
96+
- Multivariate information measure API
97+
98+
*Previously, this package was called CausalityTools.jl*.
99+
100+
## RxInfer.jl
101+
{{badge RxInfer}}
102+
> Julia package for automated Bayesian inference on a factor graph with reactive message passing
103+
104+
[RxInfer.jl main page](https://rxinfer.com/) contains lots of examples.
105+
106+
107+
# Star History
108+
109+
{{star_history CausalInference CausalTables CausalELM TMLE Turing Associations RxInfer}}
110+
111+
[Turing.jl](https://github.com/TuringLang/Turing.jl) is dominating the graph, so here it is without Turing.jl
112+
113+
{{star_history CausalInference CausalTables CausalELM TMLE Associations RxInfer}}
114+
File renamed without changes.

docs/utils.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,13 @@ const PKGINFOS = [
178178
PkgInfo(pkgname="MIToS", username="diegozea", branch="master"),
179179
PkgInfo(pkgname="GeneFinder", username="camilogarciabotero", branch="main"),
180180
PkgInfo(pkgname="XSim", username="reworkhow", branch="master", docslink="https://reworkhow.github.io/XSim.jl/"),
181-
181+
PkgInfo(pkgname="CausalInference", username="mschauer", branch="master"),
182+
PkgInfo(pkgname="CausalTables", username="salbalkus", branch="main", docslink="https://salbalkus.github.io/CausalTables.jl/"),
183+
PkgInfo(pkgname="CausalELM", username="dscolby", branch="main"),
184+
PkgInfo(pkgname="TMLE", username="TARGENE", branch="main"),
185+
PkgInfo(pkgname="Turing", username="TuringLang", branch="main", docslink="https://turinglang.org/"),
186+
PkgInfo(pkgname="Associations", username="JuliaDynamics", branch="main"),
187+
PkgInfo(pkgname="RxInfer", username="reactivebayes", branch="main"),
182188
]
183189

184190
function get_pkginfo(pkgname)

0 commit comments

Comments
 (0)