There is abundant observational data in the software engineering domain, whereas running large-scale controlled experiments is often practically impossible. Thus, most empirical studies can only report statistical correlations -- instead of potentially more insightful and robust causal relations. To support analyzing purely observational data for causal relations, and to assess any differences between purely predictive and causal models of the same data, this paper discusses some novel techniques based on structural causal models (such as directed acyclic graphs of causal Bayesian networks). Using these techniques, one can rigorously express, and partially validate, causal hypotheses; and then use the causal information to guide the construction of a statistical model that captures genuine causal relations -- such that correlation does imply causation. We apply these ideas to analyzing public data about programmer performance in Code Jam, a large world-wide coding contest organized by Google every year. Specifically, we look at the impact of different programming languages on a participant's performance in the contest. While the overall effect associated with programming languages is weak compared to other variables -- regardless of whether we consider correlational or causal links -- we found considerable differences between a purely associational and a causal analysis of the very same data. The takeaway message is that even an imperfect causal analysis of observational data can help answer the salient research questions more precisely and more robustly than with just purely predictive techniques -- where genuine causal effects may be confounded.
翻译:软件工程领域存在大量观测数据,而开展大规模受控实验往往在实际中不可行。因此,大多数实证研究仅能报告统计相关性——而非可能更具洞察力和鲁棒性的因果关系。为支持基于纯观测数据开展因果分析,并评估同一数据的纯预测模型与因果模型之间的差异,本文讨论了基于结构因果模型(如因果贝叶斯网络的有向无环图)的一些新颖技术。利用这些技术,可以严格表述并部分验证因果假设,进而利用因果信息指导构建能够捕捉真实因果关系的统计模型——使得相关性蕴含因果性。我们将这些思想应用于分析代码调试大赛(Code Jam,谷歌每年组织的全球性大型编程竞赛)中程序员表现公开数据。具体而言,我们考察不同编程语言对参赛者竞赛表现的影响。尽管相较于其他变量,与编程语言相关的整体效应较弱——无论我们考虑相关性还是因果联系——但我们发现同一数据的纯关联分析与因果分析之间存在显著差异。经验教训是:即便对观测数据开展不完美的因果分析,也能比单纯依靠仅用纯预测技术(此时真实因果效应可能受到混杂)更精准、更稳健地回答关键研究问题。