一句话:本教程介绍基于因果图的观察数据因果推断方法及其在软件工程中的应用。
软件工程日益依赖数据驱动模型(包括经典机器学习和 LLM)来自动化任务,但相关分析常混淆因果效应与虚假相关;因果推断在 SE 中仍未被广泛采用。本教程面向 SE 研究者,系统介绍基于因果图的观察数据因果推断:如何识别并估计一个变量对另一个变量的因果影响,即使数据并非来自随机对照实验。除理论外,教程展示这些方法在软件工程中的已有应用,并给出 Python 与 R 库的入门指引。目标是让研究者能将因果方法用于自身用例,推动因果推断在 SE 社区中的知识普及与实践。
The ever-increasing use of data-driven models (whether classical machine learning or novel deep learning models, such as LLMs) to automate software engineering (SE) is accentuating the need to distinguish between causal effects and spurious correlations. While the application of causal methods in SE is gradually attracting more attention, it is not yet widely used. This 90 min. tutorial provides an introduction to causal inference techniques for observational data based on causal graphs and its application to SE. The goal is to enable SE researchers to apply such methods to their own use cases and streamline the knowledge and use of causal inference within the SE community. Causal inference methods focus on the question of identifying and estimating the causal impact of a variable of interest on another one even when the data was not collected in a randomized controlled experiment (i.e., using observational data). Besides the theory, this tutorial will also showcase how such methods have been applied in SE and it will give pointers to libraries in Python and R.