Important
CausalNex is no longer actively maintained. As of 24th June 2026, CausalNex has reached end of life and has been discontinued.
McKinsey will continue to make this repository accessible strictly as a historical archive, but please be advised that the codebase has been discontinued and is no longer supported. Consequently, the project will not receive any future updates, bug-fixes, or security and vulnerability patches. Outstanding issues and pull requests will no longer be monitored or reviewed.
Pursuant to the applicable open-source license, CausalNex is provided on an "AS IS" basis, without warranties or conditions of any kind, either express or implied. Any continued use, copying, modification, or distribution of this codebase is done entirely at the user's own risk, and McKinsey disclaims all liability arising from such use.
| Theme | Status |
|---|---|
| Latest Release | |
| Python Version | |
| Documentation Build | |
| License | |
| Code Style |
"A toolkit for causal reasoning with Bayesian Networks."
CausalNex aims to become one of the leading libraries for causal reasoning and "what-if" analysis using Bayesian Networks. It helps to simplify the steps:
- To learn causal structures,
- To allow domain experts to augment the relationships,
- To estimate the effects of potential interventions using data.
CausalNex is built on our collective experience to leverage Bayesian Networks to identify causal relationships in data so that we can develop the right interventions from analytics. We developed CausalNex because:
- We believe leveraging Bayesian Networks is more intuitive to describe causality compared to traditional machine learning methodology that are built on pattern recognition and correlation analysis.
- Causal relationships are more accurate if we can easily encode or augment domain expertise in the graph model.
- We can then use the graph model to assess the impact from changes to underlying features, i.e. counterfactual analysis, and identify the right intervention.
In our experience, a data scientist generally has to use at least 3-4 different open-source libraries before arriving at the final step of finding the right intervention. CausalNex aims to simplify this end-to-end process for causality and counterfactual analysis.
The main features of this library are:
- Use state-of-the-art structure learning methods to understand conditional dependencies between variables
- Allow domain knowledge to augment model relationship
- Build predictive models based on structural relationships
- Fit probability distribution of the Bayesian Networks
- Evaluate model quality with standard statistical checks
- Simplify how causality is understood in Bayesian Networks through visualisation
- Analyse the impact of interventions using Do-calculus
CausalNex is a Python package. To install it, simply run:
pip install causalnexUse all for a full installation of dependencies:
pip install "causalnex[all]"See more detailed installation instructions, including how to setup Python virtual environments, in our installation guide and get started with our tutorial.
You can find the documentation for the latest stable release here. It explains:
- An end-to-end tutorial on how to use CausalNex
- The main concepts and methods in using Bayesian Networks for Causal Inference
Note: You can find the notebook and markdown files used to build the docs in
docs/source.
We use SemVer for versioning. The best way to upgrade safely is to check our release notes for any notable breaking changes.
You may click "Cite this repository" under the "About" section of this repository to get the citation information in APA and BibTeX formats.
See our LICENSE for more detail.
Do you want to be part of the team that builds CausalNex and other great products at QuantumBlack? Take a look at our open positions and see if you're a fit.