Bayesian Data Analysis in Empirical Software Engineering Research
arXiv:1811.05422 · doi:10.1109/TSE.2019.2935974
Abstract
Statistics comes in two main flavors: frequentist and Bayesian. For historical and technical reasons, frequentist statistics have traditionally dominated empirical data analysis, and certainly remain prevalent in empirical software engineering. This situation is unfortunate because frequentist statistics suffer from a number of shortcomings---such as lack of flexibility and results that are unintuitive and hard to interpret---that curtail their effectiveness when dealing with the heterogeneous data that is increasingly available for empirical analysis of software engineering practice. In this paper, we pinpoint these shortcomings, and present Bayesian data analysis techniques that provide tangible benefits---as they can provide clearer results that are simultaneously robust and nuanced. After a short, high-level introduction to the basic tools of Bayesian statistics, we present the reanalysis of two empirical studies on the effectiveness of automatically generated tests and the performance of programming languages. By contrasting the original frequentist analyses with our new Bayesian analyses, we demonstrate the concrete advantages of the latter. To conclude we advocate a more prominent role for Bayesian statistical techniques in empirical software engineering research and practice.
To appear in IEEE Transactions on Software Engineering
References in corpus (5)
Cited by in corpus (13)
- Pandemic Programming: How COVID-19 affects software developers and how their organizations can help
- Improving the Effectiveness of Traceability Link Recovery using Hierarchical Bayesian Networks
- Psychometrics in Behavioral Software Engineering: A Methodological Introduction with Guidelines
- Applying Bayesian Analysis Guidelines to Empirical Software Engineering Data: The Case of Programming Languages and Code Quality
- Not All Requirements Prioritization Criteria Are Equal at All Times: A Quantitative Analysis
- Towards Causal Analysis of Empirical Software Engineering Data: The Impact of Programming Languages on Coding Competitions
- Requirements Quality Research Artifacts: Recovery, Analysis, and Management Guideline
- A Second Look at the Impact of Passive Voice Requirements on Domain Modeling: Bayesian Reanalysis of an Experiment
- Estimating Return on Investment for GUI Test Automation Tools
- Problem reports and team maturity in agile automotive software development
- A Method to Assess and Argue for Practical Significance in Software Engineering
- Designing a Syllabus for a Course on Empirical Software Engineering
- The Unfulfilled Potential of Data-Driven Decision Making in Agile Software Development