Hypothesentests und p-Werte
Hypothesentests sind eine grundlegende Methode in der Statistik, um zu bestimmen, ob eine bestimmte Annahme über die Daten wahrscheinlich zutrifft. Somit werden Tests auch häufig in Data Science verwendet (z.B. A/B-Tests). Heute werden wir uns damit beschäftigen, wie man Hypothesentests in R durchführt und wie man p-Werte interpretiert.
Überblick
Was sind Hypothesentests?
Ein Hypothesentest ist ein statistisches Verfahren, das dazu verwendet wird, eine Hypothese über eine oder mehrere Populationen anhand von Stichprobendaten zu testen. Die Nullhypothese (H0) stellt oft eine Annahme dar, dass es keinen Effekt oder Unterschied gibt, während die Alternativhypothese (H1) das Gegenteil behauptet.
Angenommen, wir glauben, dass Menschen in Thailand im Durchschnitt kleiner sind als Menschen in den Niederlanden. Dann wären unsere Hypothesen:
- H0: μTH = μNL
- H1: μTH < μNL
Wir könnten nun je Land die Größen von 100 zufällig ausgewählten Menschen messen* und hätten dann unsere zwei Stichproben. Mit diesen Stichproben können wir die Tests durchführen und u.a. anhand von p-Werten und Effektgrößen Aussagen treffen.
* Hier ist es natürlich wichtig, Alter und Geschlecht zu berücksichtigen und vernünftig zu matchen. Zum Beispiel könnte man je Land 50 Männer und 50 Frauen im Alter zwischen 30 und 35 auswählen.
p-Werte verstehen
Der p-Wert gibt an, wie wahrscheinlich es ist, dass die beobachteten Daten unter der Annahme, dass die Nullhypothese wahr ist, auftreten. Ein kleiner p-Wert (z.B. p ≤ 0,01) deutet darauf hin, dass die Nullhypothese verworfen werden sollte.
Hypothesentests in R
Durchführung eines t-Tests in R
Ein häufiger Hypothesentest ist der t-Test, der verwendet wird, um zu vergleichen, ob zwei Mittelwerte signifikant unterschiedlich sind – passend zu unserem Beispiel oben.
# Beispieldaten
heights_th <- c(165.5, 164.1, 162.8, 166.0, 165.9, 150.9, 152.4, 165.5, 178.9, 167.0)
heights_nl <- c(177.1, 180.7, 176.8, 177.0, 186.9, 175.4, 182.5, 190.3, 186.2, 168.8)
# Durchführung des t-Tests
result <- t.test(heights_th, heights_nl)
print(result)
In diesem Beispiel vergleichen wir die Mittelwerte der beiden Gruppen. Der t-Test in R gibt uns neben t-Wert und Freiheitsgraden einen p-Wert zurück, den wir zur Beurteilung der Nullhypothese verwenden können. Der p-Wert ist so gering, dass wir von echten Unterschieden zwischen den Populationen ausgehen können.
Chi-Quadrat-Test in R
Der Chi-Quadrat-Test ist ein statistischer Test, der verwendet wird, um zu überprüfen, ob ein beobachtetes Verteilungsmuster von Häufigkeiten von einem erwarteten Muster abweicht. Er eignet sich besonders gut, um zu überprüfen, ob es einen signifikanten Unterschied zwischen erwarteten und beobachteten Häufigkeiten in einer oder mehreren Kategorien gibt.
Beispiel 1: Einfache Häufigkeitsverteilung
Stellen wir uns vor, wir möchten überprüfen, ob ein Würfel fair ist. Ein fairer Würfel sollte bei 60 Würfen etwa gleiche Häufigkeiten für jede der sechs Seiten zeigen. Unsere beobachteten Häufigkeiten sind jedoch anders. Wir wollen prüfen, ob der Unterschied signifikant ist.
# Beobachtete Häufigkeiten (Anzahl der Würfe für jede Seite)
observed <- c(8, 10, 12, 9, 11, 10)
# Erwartete Häufigkeiten (bei einem fairen Würfel)
expected <- rep(10, 6) # Jede Seite sollte etwa 10 mal erscheinen
# Durchführung des Chi-Quadrat-Tests
result <- chisq.test(observed, p = expected/sum(expected))
print(result)
Der p-Wert für den Test ist 0,96. Wir haben also keinen Grund zur Annahme, dass der Würfel unfair ist.
Beispiel 2: Kontingenztabellen
Ein weiteres gängiges Anwendungsbeispiel für den Chi-Quadrat-Test ist die Analyse von Kontingenztabellen, z.B. zur Untersuchung des Zusammenhangs zwischen zwei kategorischen Variablen. Wir haben die folgende Tabelle mit fiktiven Daten (basierend auf Klischees…), die die Präferenz von Kaffee vs. Tee abhängig vom Beruf zeigt.
Kaffee | Tee | |
Data Scientist | 34 | 15 |
Yoga Instructor | 11 | 33 |
Wir wollen herausfinden, ob es einen Zusammenhang zwischen Beruf und Getränkepräferenz gibt.
# Erstellung der Kontingenztabelle
data <- matrix(c(34, 15, 11, 43), nrow=2, byrow=TRUE)
colnames(data) <- c("Kaffee", "Tee")
rownames(data) <- c("Data Scientist", "Yoga Instructor")
# Durchführung des Chi-Quadrat-Tests
result <- chisq.test(data)
print(result)
Der p-Wert ist sehr, sehr klein (p < 0,0001). Basierend auf diesen Daten hat man Grund zur Annahme, dass es einen Zusammenhang zwischen Beruf und Getränkepräferenz (Kaffee vs. Tee) gibt. An der Stelle sei noch erwähnt, dass ein Test nichts über Kausalität aussagen kann! Wir können hier nur feststellen, dass es einen Zusammenhang gibt.
ANOVA in R
Zu den klassischen Hypothesentests gehört auch die Varianzanalyse, oder ANOVA (Analysis of Variance). Eine ANOVA wird verwendet, um zu testen, ob es signifikante Unterschiede zwischen den Mittelwerten von drei oder mehr Gruppen gibt. Dies ist besonders nützlich, wenn wir mehr als zwei Gruppen haben und wissen möchten, ob mindestens eine Gruppe einen anderen Mittelwert hat als die anderen.
Angenommen, wir möchten prüfen, ob es signifikante Unterschiede in der durchschnittlichen Kundenzufriedenheit zwischen drei verschiedenen Filialen eines Unternehmens gibt. Wir haben Zufriedenheitswerte (auf einer Skala von 1 bis 5) für Kunden aus drei verschiedenen Filialen gesammelt.
# Zufriedenheitswerte
shop_a <- c(4, 5, 3, 4, 4, 3, 4, 3, 2, 4)
shop_b <- c(5, 4, 3, 3, 1, 4, 5, 5, 3, 4)
shop_c <- c(2, 5, 4, 5, 3, 2, 4, 3, 3, 4)
# Daten in einem Data Frame organisieren
data <- data.frame(
shop = factor(rep(c("A", "B", "C"), 10)),
score = c(shop_a, shop_b, shop_c)
)
# Durchführung der ANOVA
result <- aov(score ~ shop, data=data)
summary(result)
Da der p-Wert bei 0,54 liegt, können wir nicht davon ausgehen, dass (mindestens) eine Filiale starke Unterschiede bzgl. der Zufriedenheitswerte aufweist.
Statistische vs. Praktische Signifikanz in Hypothesentests
In der Statistik ist es wichtig, nicht nur zu erkennen, ob ein Ergebnis statistisch signifikant ist, sondern auch, ob es praktisch relevant ist. Im Folgenden gehe ich kurz auf die Unterschiede ein.
Statistische Signifikanz
Statistische Signifikanz bezieht sich darauf, wie wahrscheinlich es ist, dass ein beobachteter Effekt in den Daten nicht durch Zufall entstanden ist. Dies wird oft durch den p-Wert gemessen, den wir ja schon behandelt haben. Wenn der p-Wert klein ist, sagen wir, dass das Ergebnis statistisch signifikant ist. Es ist jedoch wichtig zu verstehen, dass statistische Signifikanz allein nicht immer bedeutet, dass der beobachtete Effekt auch praktisch wichtig oder bedeutsam ist.
Praktische Signifikanz
Praktische Signifikanz hingegen bewertet, ob der beobachtete Effekt groß genug ist, um in der realen Welt relevant oder nützlich zu sein. Ein Ergebnis kann statistisch signifikant sein, aber in der Praxis so klein, dass es keine echte Bedeutung hat. Hier kommen Effektgrößen ins Spiel.
Effektgrößen und Cohen’s d
Effektgrößen messen die Stärke eines Phänomens und helfen dabei, die praktische Signifikanz eines Ergebnisses zu beurteilen. Häufig wird hier Cohen’s d verwendet; es stellt den Unterschied zwischen zwei Mittelwerten in Standardabweichungen dar. Ich skippe hier die Berechnung, du kannst sie hier nachlesen.
Cohen’s d kann wie folgt interpretiert werden:
- d = 0,2: kleiner Effekt
- d = 0,5: mittlerer Effekt
- d = 0,8: großer Effekt
Beispiel zur Verdeutlichung
Stellen wir uns vor, eine neue Diät soll die durchschnittliche Gewichtsabnahme im Vergleich zu einer herkömmlichen Diät verbessern. Eine Studie zeigt, dass Personen mit der neuen Diät im Durchschnitt 500 g mehr abgenommen haben als Personen mit der herkömmlichen Diät. Die Studie umfasst 1000 Teilnehmer pro Gruppe, und der p-Wert ist sehr klein, was auf statistische Signifikanz hinweist. Doch ist diese Gewichtsabnahme praktisch signifikant?
Nehmen wir an, die Standardabweichung der Gewichtsabnahme in beiden Gruppen beträgt 5 kg. Dann ist Cohen’s d = 0,5 / 5 = 0,1. Ein solcher Wert deutet auf einen kleinen Effekt hin. Trotz der statistischen Signifikanz (sehr kleiner p-Wert) ist der Unterschied in der Gewichtsabnahme praktisch gesehen gering. Für eine Person, die versucht, erheblich Gewicht zu verlieren, ist eine zusätzliche Abnahme von 0,5 kg möglicherweise nicht bedeutsam.
Fazit
Hypothesentests, p-Werte und Effektstärken sind zentrale Werkzeuge in der statistischen Analyse. Mit R können wir diese Tests und Werte einfach und effizient berechnen.
Hast du weitere Fragen zu diesem Thema, oder möchtest du ein spezifisches Thema behandelt sehen? Schreib mir gerne eine E-Mail oder hinterlasse einen Kommentar. Für weitere Informationen und Updates, abonniere den R-Coding Newsletter: Newsletter.
Viel Erfolg beim Testen!