6 Structural Causal Models
This chapter covers
- Converting a general causal graphical model to a structural causal model (SCM)
- Mastering the key elements of the SCM
- Implementing SCMs for rule-based systems
- Building an SCM from scratch using additive models
- Combining SCMs with deep learning
In this chapter, I introduce a fundamental causal modeling approach called the structural causal model. For context, in the previous chapters, we learned how to encode causal assumptions in a causal DAG and test that DAG out against data. We also learned how to build a causal generative model using this causal DAG as a scaffold. An SCM is a special case of that kind of causal generative model.
In the causal generative models we’ve built so far, we defined for each node a conditional probability distribution given the node’s direct parents, which we called a causal Markov kernel. We saw we could fit these kernels with parametric models ranging from conditional probability tables to deep neural nets. Further, our choice of how to model the causal Markov kernels was a matter of statistical and computational convenience and preference. For example, we might use look-up tables because the variables are all categorical, or because pgmpy makes it easy. Or perhaps we use deep neural nets because we have a large amount of data, or because we’re don’t mind debugging PyTorch. These criteria have nothing to do with causality, our causal assumptions stopped at the causal DAG.