Shaky Structures: The Wobbly World of Causal Graphs in Software Analytics
Jeremy Hulse, Nasir U. Eisty, Tim Menzies

TL;DR
This paper reveals that causal graphs in software analytics are highly unstable, with minor data or methodological changes often reversing inferred causal relationships, raising concerns about their reliability for general conclusions.
Contribution
The study systematically evaluates the variability of causal graphs generated from software engineering data, highlighting their instability and the need for validation across multiple graph instances.
Findings
Over half the edges in causal graphs change with minor data or method variations.
Causal conclusions may not generalize due to high graph variability.
Researchers should validate causal claims across multiple graph samples.
Abstract
Causal graphs are widely used in software engineering to document and explore causal relationships. Though widely used, they may also be wildly misleading. Causal structures generated from SE data can be highly variable. This instability is so significant that conclusions drawn from one graph may be totally reversed in another, even when both graphs are learned from the same or very similar project data. To document this problem, this paper examines causal graphs found by four causal graph generators (PC, FCI, GES, and LiNGAM) when applied to 23 data sets, relating to three different SE tasks: (a) learning how configuration options are selected for different properties; (b) understanding how management choices affect software projects; and (c) defect prediction. Graphs were compared between (a) different projects exploring the same task; (b) version i and i + 1 of a system; (c)…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Software System Performance and Reliability
