Algorithmic Causal Effect Identification with causaleffect

Martí Pedemonte,Jordi Vitrià,Álvaro Parafita
DOI: https://doi.org/10.48550/arXiv.2107.04632
2021-07-10
Abstract:Our evolution as a species made a huge step forward when we understood the relationships between causes and effects. These associations may be trivial for some events, but they are not in complex scenarios. To rigorously prove that some occurrences are caused by others, causal theory and causal inference were formalized, introducing the $do$-operator and its associated rules. The main goal of this report is to review and implement in Python some algorithms to compute conditional and non-conditional causal queries from observational data. To this end, we first present some basic background knowledge on probability and graph theory, before introducing important results on causal theory, used in the construction of the algorithms. We then thoroughly study the identification algorithms presented by Shpitser and Pearl in 2006, explaining our implementation in Python alongside. The main identification algorithm can be seen as a repeated application of the rules of $do$-calculus, and it eventually either returns an expression for the causal query from experimental probabilities or fails to identify the causal effect, in which case the effect is non-identifiable. We introduce our newly developed Python library and give some usage examples.
Mathematical Software,Artificial Intelligence,Statistics Theory
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the identifiability of causal effects. Specifically, the authors aim to study and implement some algorithms to determine whether causal effects can be identified in given observational data. These problems include unconditional causal queries and conditional causal queries. If a causal effect is identifiable, then this causal effect can be calculated through experimental probability expressions; if it is not identifiable, then the model needs to be changed or an actual intervention experiment needs to be carried out to determine the causal relationship. The paper solves this problem by reviewing and applying the algorithms proposed by Shpitser and Pearl and implementing these algorithms in Python. In addition, the paper also introduces how to use the Python library of these algorithms and provides some usage examples. The key to the paper lies in the use of do - calculus, which is a powerful tool for handling causal queries. Do - calculus allows researchers to calculate causal effects by intervening in variables (that is, artificially setting the value of a certain variable instead of merely observing its natural state). This method can go beyond traditional statistical association analysis and truly explore causal relationships. However, do - calculus is not always applicable. Sometimes, due to the model structure, a specific causal effect may be unidentifiable. In this case, the researcher may need to adjust the model or design an actual intervention experiment to further explore the causal relationship. In summary, this paper aims to provide a systematic method to automatically identify causal effects using algorithms, thereby reducing the dependence on actual intervention experiments and improving the efficiency and accuracy of causal analysis. This is not only of great significance for theoretical research, but also has a wide - ranging impact on decision - support systems in practical applications.