Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Statistik bei kontrollierten Experimenten
Statistik bei kontrollierten Experimenten: Statistik bei kontrollierten Experimenten Statistik bei kontrollierten Experimenten Hypothesen und Stichproben Verteilungen Experimente mit einem Sample Experimente mit zwei Samples Verteilungsfreier U-Test Statistik bei kontrollierten Experimenten: Hypothese und statistischer Test Definition Statistische Hypothese: Aussage über eine statistische Population, die man auf Basis beobachteter Daten zu bestätigen oder zu falsifizieren versucht. Hypothese: Die durchschnittliche Länge von Methoden in Java ist größer als 50 [loc]
Statistik bei kontrollierten Experimenten: Vorgehen 1 Nimm an, dass die zu testende Hypothese wahr ist. 2 Untersuche die Konsequenzen dieser Annahme in Bezug auf die Sampling-Verteilung, die von der Wahrheit der Hypothese abhängt. 3 Falls die beobachteten Daten eine große Eintrittswahrscheinlichkeit haben, ist die Hypothese bestätigt. 4 Falls die beobachteten Daten eine sehr kleine Eintrittswahrscheinlichkeit haben, gilt die Hypothese als widerlegt. Signifikanzniveau α legt die Wahrscheinlichkeit fest, ab der die Hypothese als widerlegt betrachtet wird. Konvention: α = 0, 05 oder α = 0, 01 Statistik bei kontrollierten Experimenten: Nullhypothese und alternative Hypothese Definition Nullhypothese H 0 : die zu testende Hypothese. Alternative Hypothese H 1 : die Gegenthese zu H 0. Meist: H 1 ist das, woran der Experimenator wirklich glaubt. H 0 = Die durchschnittliche Länge von Java-Methoden ist 50 [loc]. H 1 = Die durchschnittliche Länge von Java-Methoden ist >50 [loc]. Experiment soll H 0 widerlegen.
Statistik bei kontrollierten Experimenten: Hypothesen und Stichproben Hypothesen und Stichproben Sample = Population absolute Wahrheit Sample Population? Problem: Jede Hypothesenüberprüfung liefert statistischen Kennwert (z.b. Durchschnitt) für ein bestimmtes Sample. Wiederholung mit anderen Subjects/Objects liefert wahrscheinlich nicht exakt denselben Kennwert. Kennwert ist Zufallsvariable 1 Feststellung, ob Kennwert extrem oder typisch ist, ist ohne Kenntnis der Verteilung der Zufallsvariablen unmöglich. 1 Funktion, die den Ergebnissen eines Zufallsexperiments Werte (so genannte Realisationen) zuordnet. Statistik bei kontrollierten Experimenten: Verteilungen Verteilungen Definition Verteilung einer Variablen: beschreibt, welche Werte die Variable annehmen kann und wie oft sie das tut. Gleichverteilung Normalverteilung
Statistik bei kontrollierten Experimenten: Verteilungen Häufige Kennwerte einer Verteilungen Gegeben: n Datenpunkte x 1, x 2,... x n einer Variablen X. Durchschnitt oder arithmetisches Mittel x = 1 n n i=1 x i Varianz s 2 x = 1 n 1 n i=1 (x i x) 2 Standardabweichung s x = s 2 x Statistik bei kontrollierten Experimenten: Verteilungen Varianz und Freiheitsgrad Varianz s 2 x = 1 n 1 n i=1 (x i x) 2 Warum Durchschnitt mit 1 n 1? n i=1 (x i x) = 0 (x n x) kann berechnet werden, wenn x 1, x 2,..., x n 1 bekannt sind nur n 1 Summanden in n i=1 (x i x) 2 können frei variieren n 1 ist der Freiheitsgrad
Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Verteilung von Population und Sample H 0 : µ = 50 Gegeben: Populations-Verteilung: Kennwerteverteilung der Population P mit Durchschnitt µ und Standardabweichung σ Sample-Verteilung: Kennwerteverteilung der Stichproben X mit Durchschnitt x und Standardabweichung σ x Annahmen: σ ist bekannt P hat Normalverteilung Daraus folgt: X ist normalverteilt mit x = µ und σ x = σ n. Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Verteilung von Population und Sample Warum gilt: x = µ? Sample-Größe ist n. Jeder beobachtete Wert x i (1 i n) ist eine Messung von einem zufällig ausgewählten Element aus P. Jede Einzelmessung ist eine Zufallsvariable X i, deren Verteilung der von P entspricht. x = 1 n (X 1 + X 2 +... X n ) Wenn µ der Durchschnitt von P ist, dann ist µ der Durchschnitt der Verteilung jeder Beobachung X i. µ x = 1 n (µ X 1 + µ X2 +... µ Xn ) = 1 n (µ + µ +... µ) = µ
Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Verteilung von Population und Sample Warum gilt: σ x = σ n? Regeln für Varianzen (a, b sind Konstante, X, Y Zufallsvariablen): Damit: σ 2 a+bx = b2 σ 2 X σ 2 X +Y = σ2 X + σ2 Y σ 2 x = σ 2 1 n (X 1+X 2 +...X n ) = ( 1 n )2 (σ 2 X 1 + σ 2 X 2 +... σ 2 X n ) Weil jede Einzelbeobachtung X i aus P stammt, gilt σx 2 i damit: = σ 2 und σ 2 x = ( 1 n )2 (σ 2 + σ 2 +... σ 2 ) = σ2 n und σ x = σ 2 x = σ n Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Verteilung von Population und Sample H 0 : µ = 50 Gegeben: Populations-Verteilung: Kennwerteverteilung der Population P mit Durchschnitt µ und Standardabweichung σ Sample-Verteilung: Kennwerteverteilung der Stichproben X mit Durchschnitt x und Standardabweichung σ x Annahmen: σ ist bekannt P hat Normalverteilung Daraus folgt: X ist normalverteilt mit x = µ und σ x = σ n.
Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Beispiel H 0 : µ = 50. Sei tatsächlich beobachteter Wert (Messung) für x = 54 mit σ = 10 und Sample-Größe n = 25. Passt das noch zu H 0 mit Signifikanzniveau α = 0, 01? x ist normalverteilt mit µ = 50 und σ 2 x = 10 25 = 2: N(50, 2) Die Standardnormalverteilung N(0, 1) ist tabelliert. Mit z-transformation kann jede Normalverteilung auf N(0, 1) zurückgeführt werden: z x = x µ σ x Statistik bei kontrollierten Experimenten: Experimente mit einem Sample Beispiel 54 50 Wahrscheinlichkeit, einen Wert z x = 2 1, 41 oder größer in N(0, 1) zu finden = Flächeninhalt zwischen 1,41 und in N(0, 1) Laut Tabelle für N(0, 1): 1 0, 9207 = 0, 0793 > 0, 01 = α. H 0 wird abgelehnt
Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Beispieluntersuchung Hypothese: Pair-Programming führt zu niedriger durchschnittlicher Fehlerdichte, wobei durchschnittliche Fehlerdichte = #Fehler LOC Design: Object: Anforderungsspezifikation Subjects: 31 professionelle Entwickler Blocking: Treatment X: eine Gruppe (10 2) wendet Pair-Programming an Treatment Y: eine Gruppe (11 1) wendet Pair-Programming nicht an ein Faktor, zwei Treatments Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Experiment mit zwei Samples: t-test Gegeben: Zwei unabhängige Samples: X = x 1, x 2,... x n mit Durchschnitt x und Varianz s 2 x Y = y 1, y 2,... y m mit Durchschnitt ȳ und Varianz s 2 y H 0 : Mittelwerte von X und Y sind gleich: µ x µ y = 0. Annahmen: Population zu X ist normalverteilt mit Durchschnitt µ x und Varianz σ 2 x, Population zu Y ist normalverteilt mit Durchschnitt µ y und Varianz σ 2 y und σ 2 x = σ 2 y. Aber: Varianz σ 2 x von X und Y ist unbekannt.
Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Experiment mit zwei Samples: t-test Additionsregel für Mittelwerte und Mittelwert von jedem Messwert x ist der Mittelwert seiner Population µ Mittelwert von x ȳ ist gleich dem Mittelwert von µ x µ y Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Experiment mit zwei Samples: t-test Additionsregel für Varianzen und Mittelwert von jedem Messwert x ist der Mittelwert seiner Population µ Varianz von x ȳ ist: σx 2 n + σ2 y m
Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Experiment mit zwei Samples: t-test Satz: Die Differenz zweier unabhängiger normalverteilter Zufallsvariablen ist normalverteilt. Wenn beide Populationen normalverteilt sind, dann ist die Verteilung von x ȳ auch normalverteilt. z-transformation einer Zufallsvariable hat Standardnormalverteilung N(0, 1): z = ( x ȳ) (µ x µ y ) σx 2 n + σ2 y m Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Experiment mit zwei Samples: t-test Annahme war: beide Populationen haben gleiche Varianz σ 2 ɛ = σ 2 x = σ 2 y Varianz von σ 2 ɛ kann geschätzt werden durch zusammengelegte Varianzen s 2 p als gewichteter Durchschnitt: s 2 p = (n 1)s2 x + (m 1)s 2 y (n 1) + (m 1) Damit ist z-transformation für die Schätzung: t = ( x ȳ) (µ x µ y ) s 2 p n + s2 p m t folgt Students t-verteilung mit (n 1) + (m 1) = n + m 2 Freiheitsgraden (df)
2011-01-22 Softwaretechnik Statistik bei kontrollierten Experimenten Experimente mit zwei Samples Experiment mit zwei Samples: t-test Experiment mit zwei Samples: t-test Annahme war: beide Populationen haben gleiche Varianz σɛ 2 = σx 2 = σy 2 Varianz von σɛ 2 kann geschätzt werden durch zusammengelegte Varianzen s 2 p als gewichteter Durchschnitt: s 2 p = (n 1)s2 x + (m 1)s 2 y (n 1) + (m 1) Damit ist z-transformation für die Schätzung: t = ( x ȳ) (µx µy ) s 2 p n + s2 p m t folgt Students t-verteilung mit (n 1) + (m 1) = n + m 2 Freiheitsgraden (df) Die Annahme ist, dass die Samples beide eine gemeinsame homogene Varianz haben. Dann kann diese geschätzt werden, indem die Informationen beider Samples gebündelt werden. Die Schätzung ist dann der gewichtete Durchschnitt der einzelnen Varianzen beider Sample-Varianzen. Die Gewichte hierfür sind die jeweiligen Freiheitsgrade n 1 und m 1. S p ist dann die gebündelte Varianz. Der Freiheitsgrad von S p ist (n 1) + (m 1) = n + m 2. Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Students t-verteilung (df = Freiheitsgrad)
Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Zusammenfassung des Vorgehens beim t-test Eingabe: Zwei unabhängige Samples x 1, x 2,... x n und y 1, y 2... y m Annahme: Populationen zu X und Y sind normalverteilt und haben gleiche Varianz H 0 : Mittelwerte von X und Y sind gleich: µ x µ y = 0 Transformation von H 0 : t 0 = wobei s p = (n 1)s 2 x +(m 1)s 2 y (n 1)+(m 1) x ȳ s p 1 n + 1 m und s 2 x und s 2 y sind die individuellen Sample-Varianzen t 0 folgt bei Gültigkeit von H 0 einer t-verteilung mit n + m 2 Freiheitsgraden Kriterium (zweiseitig, mit Signifikanzniveau α): H 0 ablehnen, wenn t 0 > t α/2,n+m 2 Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Beispielmessungen Treatment X = Pair-Programming, Treatment Y = kein Pair-Programming i Treatment X: x i Treatment Y: y i 1 3,24 3,44 2 2,71 4,97 3 2,84 4,76 4 1,85 4,96 5 3,22 4,10 6 3,48 3,05 7 2,68 4,09 8 4,30 3,69 9 2,49 4,21 10 1,54 4,40 11 3,49 n=10 m=11 x = 2, 835 ȳ = 4, 1055 Sx 2 = 0, 6312 Sy 2 = 0, 4112
Statistik bei kontrollierten Experimenten: Experimente mit zwei Samples Beispielauswertung mit t-test s p = = (n 1)s 2 x +(m 1)sy 2 (n 1)+(m 1) (10 1) 0,6312+(11 1) 0,4112 (10 1)+(11 1) = 0, 564 t 0 = = x ȳ 1 s p n + 1 m 2,835 4,1055 0,564 1 10 + 1 11 = 5, 642 Freiheitsgrade: df = 10 + 11 2 = 19 t α/2,n+m 2 = t 0,05/2,10+11 2 = 2, 093 t 0 = 5, 642 > t 0,05/2,10+11 2 = 2, 093 H 0 ablehnen 2011-01-22 Softwaretechnik Statistik bei kontrollierten Experimenten Experimente mit zwei Samples Beispielauswertung mit t-test Beispielauswertung mit t-test sp = = (n 1)s 2 x +(m 1)sy 2 (n 1)+(m 1) (10 1) 0,6312+(11 1) 0,4112 (10 1)+(11 1) = 0, 564 t0 = = x ȳ 1 sp n + 1 m 2,835 4,1055 1 0,564 10 + 1 11 Freiheitsgrade: df = 10 + 11 2 = 19 t α/2,n+m 2 = t 0,05/2,10+11 2 = 2, 093 = 5, 642 t0 = 5, 642 > t 0,05/2,10+11 2 = 2, 093 H0 ablehnen Siehe z.b. http://www.math.unb.ca/~knight/utility/t-table.htm für eine Tabelle der Students t-verteilung.
Statistik bei kontrollierten Experimenten: Verteilungsfreier U-Test Exakter U-Test von Mann-Whitney Gegeben: zwei unabhängige Samples x 1, x 2,... x n und y 1, y 2,... y m mit Ordinalskalenniveau. Annahme: Beide Samples stammen von Populationen mit der gleichen Verteilung. Keine Annahme über diese Verteilung. 1 Daten beider Samples werden vereinigt und geordnet. 2 Jeder Wert x i wird mit jedem Wert y j verglichen: G i = Anzahl der y j < x i L i = Anzahl der y j > x i 3 Summiere: G = 1 i n G i L = 1 i n L i U = min(l, G) Statistik bei kontrollierten Experimenten: Verteilungsfreier U-Test Gruppe x i bzw. y i G i L i X 1.54 11 0 X 1.85 11 0 X 2.49 11 0 X 2.68 11 0 X 2.71 11 0 X 2.84 11 0 Y 3.05 X 3.22 10 1 X 3.24 10 1 Y 3.44 X 3.48 9 2 Y 3.49 Y 3.69 Y 4.09 Y 4.10 Y 4.21 X 4.30 4 7 Y 4.40 Y 4.76 Y 4.96 Y 4.97 99 11
Statistik bei kontrollierten Experimenten: Verteilungsfreier U-Test Exakter U-Test von Mann-Whitney Signifikanztest: Erwartungswert für U bei H o : µ U = (n + m)/2. Je weiter beobachtetes U vom Erwartungswert abweicht, desto unwahrscheinlicher ist H 0 Wahrscheinlichkeit des beobachteten U oder eines kleineren Werts ist die Anzahl z U aus den möglichen ( ) ( n+m m = n+m ) n Kombinationen, die einen U-Wert liefern, der nicht größer als U ist: P = (Z U + Z U 1 )/ ( ) n+m m Lehne H 0 ab, wenn P kleiner als Signifikanzniveau ist. Kritischer Wert (der zur Ablehnung von H 0 führt) kann in Tabelle des U-Tests für kleine Samples nachgeschlagen werden. Im Beispiel: kritischer Wert = 26 für α = 0, 05 H 0 wird abgelehnt wegen U > 26 2011-01-22 Softwaretechnik Statistik bei kontrollierten Experimenten Verteilungsfreier U-Test Exakter U-Test von Mann-Whitney Exakter U-Test von Mann-Whitney Signifikanztest: Erwartungswert für U bei Ho: µu = (n + m)/2. Je weiter beobachtetes U vom Erwartungswert abweicht, desto unwahrscheinlicher ist H0 Wahrscheinlichkeit des beobachteten U oder eines kleineren Werts ist die Anzahl zu aus den möglichen ( ) ( n+m m = n+m ) n Kombinationen, die einen U-Wert liefern, der nicht größer als U ist: P = (ZU + ZU 1)/ ( ) n+m m Lehne H0 ab, wenn P kleiner als Signifikanzniveau ist. Kritischer Wert (der zur Ablehnung von H0 führt) kann in Tabelle des U-Tests für kleine Samples nachgeschlagen werden. Im Beispiel: kritischer Wert = 26 für α = 0, 05 H0 wird abgelehnt wegen U > 26 Tabellen für den kritischen Wert bei gegebenem Signifikanzniveau für den U-Test lassen sich im Web finden, indem man nach den Stichwörtern table u test sucht. Z.B.: math.usask.ca/~laverty/s245/tables/wmw.pdf
Statistik bei kontrollierten Experimenten: Verteilungsfreier U-Test 1 Wohlin u. a. 2000 Wohlin, Claes ; Runeson, Per ; Magnus C. Ohlsson, Martin H. und ; Regnell, Björn ; Wesslén, Anders: Experimentation in Software Engineering An Introduction. Kluwer Academic Publishers, 2000. ISBN 0-7923-8682-5