A Python package for causal modelling and inference with stochastic causal programming
This project is developed in collaboration with the Centre for Advanced Research Computing, University College London.
TL;DR, causalprog solves
given
- a model parameters for a causal model
$\Theta$ , - a causal estimand
$\sigma$ ,
and constraint functions
-
$\phi_\mathrm{data}$ is empirically observed values of$\phi$ , -
$\phi = (\phi_k)_k$ is the analytical estimate of$\phi$ from the causal model, given$\Theta$ , -
$\vert\vert\cdot\vert\vert$ is a non-negative valued distance function (such as a suitable norm), -
$\epsilon = (\epsilon_k)_k$ is the tolerance in the observed data.
The solution to a causal problem is;
- the maximum / minimum value of the causal estimand
$\sigma$ , - and the corresponding set of model parameter values
$\Theta$ that allows$\sigma$ to attain this extrema.
The causal estimand causalprog focuses on casual estimands that are predominantly integrals of some type.
In particular, the focus is on causal estimands that are the expectations (or possibly higher moments) of one of the random variables
The constraint functions
causalprog provides utility for setting up causal problems using DAGs, which can then be solved via your favourite stochastic optimiser and minimisation algorithm.
For example, one could seek the saddle points of the augmented lagrangian
The package also provides some basic wrappers for these solvers, for the most common techniques / algorithms that are used to solve the optimisation problems that are encountered.
- Ricardo Silva (rbas-ucl)
- Jialin Yu (jialin-yu)
- Will Graham (willGraham01)
- Matthew Scroggs (mscroggs)
- Matt Graham (matt-graham)
Centre for Advanced Research Computing, University College London (arc.collaborations@ucl.ac.uk)
causalprog requires Python 3.11–3.13.
We recommend installing in a project specific virtual environment. To install the latest
development version of causalprog using pip in the currently active environment run
pip install git+https://github.com/UCL/causalprog.gitAlternatively create a local clone of the repository with
git clone https://github.com/UCL/causalprog.gitand then install in editable mode by running
pip install -e .Tests can be run across all compatible Python versions in isolated environments
using tox by running
toxTo run tests manually in a Python environment with pytest installed run
pytest testsagain from the root of the repository.
For more information about the testing suite, please see the documentation page.
The MkDocs HTML documentation can be built locally by running
tox -e docsfrom the root of the repository. The built documentation will be written to
site.
Alternatively to build and preview the documentation locally, in a Python
environment with the optional docs dependencies installed, run
mkdocs serveThis work was funded by Engineering and Physical Sciences Research Council (EPSRC).