Julia package for causal inference, graphical models and structure learning.
This package contains code for the stable version of the PC algorithm and the FCI algorithm as described in Zhang's article.
The algorithms use the Julia packagea LightGraphs and MetaGraphs. Graphs are represented by sorted adjacency lists (vectors in the implemention). CPDAGs are just
DiGraphs where unoriented edges are represented by both a forward and a backward directed edge. PAGs are
MetaDiGraphs where every edge is represented by a forward and a backward edge. The marks of the endpoint of an edge are stored in the
:marks property. Marks can be checked and set using the
set_marks! functions (see documentation for details).
The PC algorithm is tested on random DAGs by comparing the result of the PC algorithm using the d-separation oracle with CPDAGs computed with Chickering's DAG->CPDAG conversion algorithm (implemented as
cpdag in this package).
8 days ago