Initial look at directed acyclic graph (DAG) based causal models in regression.
Author StatisticalRethinkingJulia
20 Stars
Updated Last
1 Year Ago
Started In
March 2020


Lifecycle Build Status Documentation Documentation ColPrac: Contributor's Guide on Collaborative Practices for Community Packages


StructuralCausalModels.jl is part of the StatisticalRethinkingJulia eco system and contains functionality to analyse directed acyclic graph (DAG) based causal models as described in StatisticalRethinking, Causal Inference in Statistics and Cause and Correlation in Biology.

My initial goal for this package is to have a way to apply SCM ideas to the examples in StatisticalRethinking.jl, i.e. a working version of basis_set(), d_separation() m_separations() and adjustment_sets().

From the point of view of above functionality, I believe the package is close to R's ggm (including most of Sadeghi's additions). I'm hoping version 1.0.0 has a similar API but many more test cases, including more comparisons with R's dagitty.

The status of the package remains experimental and is, as is StatisticalRethinking.jl, primarily intended for learning statistical modeling approaches and pitfalls.

StructuralCausalModels.jl can be installed using ] add StructuralCausalModels.



  1. Initial commit to Julia's registry.


Important links are:

  1. Dagitty
  2. R dagitty package
  3. R ggm package
  4. Sadeghi, K. (2011). Stable classes of graphs containing directed acyclic graphs, implementation as included in ggm.

The latter two have been used for the Julia implementations of most fuctions in this package, e.g. basis_set(), d_separation(), m_separation, shipley_test(), pcor_test() and ancestral_graph.


  1. StatisticalRethinking
  2. Causal Inference in Statistics - a primer
  3. Cause and Correlation in Biology
  4. Sadeghi, K. (2011). Stable classes of graphs containing directed acyclic graphs.
  5. Richardson, T.S. and Spirtes, P. (2002). Ancestral graph Markov models {Annals of Statistics}, 30(4), 962-1030.
  6. Separators and Adjustment Sets in Causal Graphs: Complete Criteria and an Algorithmic Framework

Used By Packages