This repository is inspired by thoughts in here:
- Causal inference in statistics: An overview
- An Introduction to Causal Inference - PMC
- The Book of Why: The New Science of Cause and Effect – Pearl and Mackenzie
And concrete implementation of doWHy
The goal is to make problem debugging in any domain simpler than what it is today.
-
v variables - are the treatments. They can be binary or continuous. In the case of continuous abs(beta) defines thier magnitude;
-
y - is the outcome variable. The generating equation is, y = normal(0, stddev_outcome_noise) + t @ beta [where @ is a numpy matrix multiplication allowing for beta be a vector]
-
W variables - Common Causes. Commonly cause both the treatment and the outcome and are iid. if continuous, they are Norm(mu = Unif(-1,1), sigma = 1)
-
Z variables - Instrument variables. Each one affects all treatments. i.e. if there is one instrument and two treatments then z0->v0, z0->v1
-
X variables - effect modifiers. If continuous, they are Norm(mu = Unif(-1,1), sigma = 1) [x -> y]
-
FD variables - Front door variables, v0->FD0->y
These names are understood:
- common causes
- instrument variables
- effect modifier
- front door variables
- treatment
- outcome
But, we need to understand a little more how some of them affect the causal pathway. To desribe that, causal community groups them by :
- Confounders
- Back door
- Modifier
- Colliders