pywhy-graphs is a Python graph library that extends MixedEdgeGraph
in networkx to implement a light-weight API for causal graphical structures.
Representation of causal inference models in Python are severely lacking. Moreover, sampling from causal models is non-trivial. However, sampling from simulations is a requirement to benchmark different structural learning, causal ID, or other causal related algorithms.
PyWhy-Graphs implements a graphical API layer for ADMG, CPDAG and PAG. For causal DAGs, we recommend using the networkx.DiGraph
class and
ensuring acylicity via networkx.is_directed_acyclic_graph
function.
See the development version documentation.
Or see stable version documentation
Installation is best done via pip
or conda
. For developers, they can also install from source using pip
. See installation page for full details.
Minimally, pywhy-graphs requires:
* Python (>=3.8)
* numpy
* scipy
* networkx
If you already have a working installation of numpy, scipy and networkx, the easiest way to install pywhy-graphs is using pip
:
# doesn't work until we make an official release :p
pip install -U pywhy-graphs
# If you are a developer and would like to install the developer dependencies
pip install pywhy-graphs[doc,style,test]
# If you would like full functionality, which installs all of the above
pip install pywhy-graphs[all]
To install the package from github, clone the repository and then cd
into the directory:
pip install -e .
# One can also add the different identifiers, such as '[doc]' to install
# extra dependencies
Currently, selection bias representation is not implemented in the graphs and corresponding algorithms. However, I believe it is technically feasible based on the design of how we use networkx.