Statistik finns i två huvudsakliga smaker: speakist och Bayesian. Av historiska och tekniska skäl har den frekventistiska statistiken traditionellt dominerat empirisk dataanalys och är förvisso fortfarande allmänt förekommande inom empirisk programvaruteknik. Denna situation är olycklig eftersom den frekventistiska statistiken lider av ett antal brister – såsom brist på flexibilitet och resultat som är ointuitiva och svåra att tolka – som begränsar deras effektivitet när det gäller de heterogena data som i allt högre grad finns tillgängliga för empirisk analys av programvaruteknik. I detta dokument pekar vi på dessa brister och presenterar Bayesian dataanalysteknik som ger påtagliga fördelar eftersom de kan ge tydligare resultat som samtidigt är robusta och nyanserade. Efter en kort, hög nivå introduktion till de grundläggande verktygen i Bayesian statistik, presenterar vi en ny analys av två empiriska studier om effektiviteten av automatiskt genererade tester respektive prestanda av programmeringsspråk, respektive. Genom att jämföra de ursprungliga frekventistiska analyserna med våra nya Bayesianska analyser visar vi på de konkreta fördelarna med de senare. Sammanfattningsvis förespråkar vi en mer framträdande roll för Bayesian statistikteknik i empirisk programvaruteknik forskning och praktik. Tillgänglighet. Alla maskinläsbara data och analysskript som används i detta dokuments analyser finns fritt tillgängliga på https://bitbucket.org/caf/bda-in-ese Empirical research in software engineering. Statistisk analys av empiriska data har blivit vanligt förekommande inom programvaruteknikforskning [84, 3, 36], och det är till och med att göra sin väg in i mjukvaruutveckling praxis [45]. Som vi diskuterar nedan är den överväldigande majoriteten av de statistiska tekniker som används inom programvaruteknik empirisk forskning dock av det frekventistiska slaget, med Bayesian statistik knappast ens nämns. Naturligtvis Bayesian statistik är en grundläggande komponent i många maskininlärning tekniker [7, 39], som sådan, det används i programvaruteknik forskning indirekt när maskininlärning används. I detta dokument är vi dock 3 som handlar om den direkta användningen av statistik för att analysera empiriska data från det vetenskapliga perspektivet-en strävan som verkar främst begränsad till frekventistiska tekniker inom programvaruteknik [36]. Som vi argumenterar i resten av tidningen, är detta en förlorad möjlighet eftersom Bayesian tekniker inte lider av flera begränsningar av frekventistiska sådana, och kan stödja rika, robusta analyser i flera situationer. För att bekräfta intrycket att Bayesiansk statistik normalt inte används inom empirisk programvaruteknik gjorde vi en liten litteraturgenomgång av ICSE-dokument. 1 Vi valde ut alla artiklar från huvudforskningsspåret i de senaste sex utgåvorna av International Conference on Software Engineering (ICSE 2013 to ICSE 2018) som nämner "empiriska" i sin titel eller i sin sektions namn i processen. Detta gav 25 uppsatser, av vilka vi förkastade en [76] som visade sig inte vara en empirisk studie. De experimentella data i resterande 24 papper kommer från olika källor: produktionen av analysatorer och andra verktyg [16, 17, 18, 55, 62], gruvdrift av arkiv av programvara och andra artefakter [13, 48, 50, 70, 87, 88], resultatet av kontrollerade experiment som involverar människor [61, 79, 85], intervjuer och undersökningar [5, 8, 23, 44, 46, 49, 65, 72], och en litteratur översyn [74]. Som man kan förvänta sig från en förstklassig plats som ICSE följer de 24 tidningarna rekommenderade rutiner för rapportering och analys av data med hjälp av signifikanstester (6 papper), effektstorlekar (5 papper), korrelationskoefficienter (5 papper), frekvent regression (2 papper) och visualisering i diagram eller tabeller (23 papper). Men ingen av tidningarna använder Bayesiansk statistik. Faktum är att inget papper förutom två [23, 87] ens nämner termerna "bayes" eller "bayesian". Ett av undantagen [87] hänvisar endast till Bayesian maskininlärningsteknik som används i relaterade arbeten som den jämför med. Det andra undantaget [23] innehåller en presentation av de två åsikterna om frekventistisk och Bayesiansk statistik-med en kritik av p-värden liknande den vi gör i Sect. 2.2-men visar inte hur det senare kan användas i praktiken. Syftet med [23] är att undersöka sambandet mellan empiriska rön inom programvaruteknik och den faktiska uppfattningen hos programmerare om samma ämnen. I detta syfte är det baserat på en undersökning av programmerare vars svar analyseras med hjälp av frekventistisk statistik; Bayesian statistik nämns för att rama diskussionen om förhållandet mellan bevis och övertygelse, men inte har tidigare den inledande andra delen. Vårt dokument har ett mer direkt syfte: att konkret visa hur Bayesian analys kan tillämpas i praktiken i empirisk programvaruteknik forskning, som ett alternativ till frekventistisk statistik; därmed är dess omfattning ett komplement till [23] s. Mer allmänt är vi inte medvetna om någon direkt tillämpning av Bayesian dataanalys på empiriska programvarutekniska data med undantag av [28, 29] och [26]. Den tekniska rapporten [28] och dess korta sammanfattning [29] är våra preliminära undersökningar i linje med detta dokument. Ernst [26] presenterar en konceptuell replikering av en befintlig studie för att argumentera för den analytiska effektiviteten hos flera Bayesianska modeller.
Bara nyligen, Furia et al. REF föreslår sådana riktlinjer efter att ha analyserat två empiriska studier med Bayesian-teknik som avslöjar dess fördelar med att ge tydligare resultat som samtidigt är robusta och nyanserade.
Bayesian Data Analysis in Empirical Software Engineering Research
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science', 'Mathematics']}