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.
See our documentation for information on how to get started with causalprog.
- Ricardo Silva (rbas-ucl)
- Jialin Yu (jialin-yu)
- Will Graham (willGraham01)
- Matthew Scroggs (mscroggs)
- Sam Molyneux (sjmolyneux)
Centre for Advanced Research Computing, University College London (arc.collaborations@ucl.ac.uk)
This work was funded by Engineering and Physical Sciences Research Council (EPSRC).