Welch-Test in R durchführen

von | Zuletzt bearbeitet am: Oct 13, 2022 | Mittelwertvergleich, R, t-Test, Welch-Test | 0 Kommentare

1 Ziel des Welch-Tests (Welch t-Test bei ungleichen Varianzen)

Der Welch-Test prüft in der Nullhypothese, ob bei zwei unabhängigen Stichproben die Mittelwerte unterschiedlich sind. Allerdings benötigt der Welch-Test im Gegensatz zum normalen t-Test keine homogenen, also gleiche Varianzen. Das bedeutet, der Test funktioniert auch ohne in etwa ähnliche Varianzen der Gruppen. Die Durchführung und Interpretation zeigt dieser Artikel. Bei gleichen Varianzen ist der normale t-Test für unabhängige Stichproben zu rechnen.

 

2 Voraussetzungen des Welch-Tests

Die wichtigsten Voraussetzungen sind:

  • zwei voneinander unabhängige Stichproben/Gruppen
  • metrisch skalierte y-Variable
  • normalverteilte y-Variable innerhalb der Gruppen – falls nicht, Mann-Whitney-U-Test
  • Keine homogene (nahezu gleiche) Varianzen der y-Variablen der Gruppen – über Levene-Test

Hinweis: Sind deine Varianzen homogen, rechnest du den einfachen t-Test bei unabhängigen Stichproben.

 

3 Durchführung des Welch-Tests in R

Sind die o.g. Voraussetzung erfüllt, fahrt ihr hier fort:

Untersuchungsbeispiel: Es besteht die Vermutung, dass sich Männer von Frauen hinsichtlich des Gewichtes unterscheiden. Die Testvariable ist demzufolge das Gewicht, die Gruppenvariable das Geschlecht. Beides befindet sich im Datensatz data_xls, den ich mitsamt $ vor die Variablennamen setze.

 

Nach einer kurzen deskriptiven Darstellung über die describeBy()-Funktion des psych-Pakets, gewinnt man einen ersten Eindruck über potenzielle Unterschiede hinsichtlich der Gruppenmittelwerte.

 


describeBy(data_xls$Gewicht, data_xls$Geschlecht)

 

Die Männer sind mit 0 codiert und besitzen ein mittleres Gewicht von 73,27kg, die Frauen (mit 1 codiert) von 58,56kg. Die stark unterschiedliche Standardabweichung (sd) ist auch schon ein recht deutlicher Hinweis auf Varianzheterogenität.


 Descriptive statistics by group 
group: 0
   vars  n  mean    sd median trimmed   mad min max range skew kurtosis   se
X1    1 26 73.27 15.53   67.5   72.18 17.79  55 105    50 0.45     -1.2 3.05
------------------------------------------------------------------------------ 
group: 1
   vars  n  mean   sd median trimmed  mad min max range skew kurtosis   se
X1    1 25 58.56 6.16     58   58.19 7.41  50  72    22 0.37    -0.92 1.23

Die Durchführung des t-Tests wird also wohl einen Unterschied aufzeigen.

 

3.1 Ungerichtete Hypothese – Zweiseitige Testung

Zunächst wird ungerichtet getestet. Das heißt, dass nur auf einen Unterschied getestet wird, aber unklar ist, welche Geschlechtergruppe ein größeres oder kleineres Gewicht hat.

Die t.test()-Funktion erfordert kein weiteres Paket und kann direkt durchgeführt werden. Zuerst ist die Testvariable und dann die Gruppierungsvariable einzusetzen – getrennt durch “~”. Zusätzlich ist ein notwendiges Argument für ungleiche Varianzen var.equal = FALSE. Wenn es nicht das Standard-95%-Konfidenzintervall sein soll, dann ist conf.level = 0.9 oder conf.level = 0.99 anzufügen.

 


t.test(data_xls$Gewicht~data_xls$Geschlecht, var.equal = FALSE)

Das Ergebnis ist nun recht ausführlich dargestellt.

  • Wesentlich ist hierbei der p-Wert mit 8,567e-05. Das ist die wissenschaftliche Schreibweise für 0,00008567, also ein sehr kleiner Wert, der unter der typischen Verwerfungsgrenze von 0,05 liegt. Die Nullhypothese von Gleichheit kann somit verworfen werden. Es bestehen Unterschiede beim Gewicht hinsichtlich der beiden Gruppen.
  • Das 95%-Konfidenzintervall ist 8,024 – 21,394 und umfasst nicht die Null. Es kommt daher also ebenfalls zum Ergebnis wie der p-Wert zur Verwerfung der Nullhypothese.
  • Die Mittelwerte sind erneut unten aufgelistet (73,27 für die Männer, 58,56 für die Frauen)

Welch Two Sample t-test
data:  data_xls$Gewicht by data_xls$Geschlecht
t = 4.4767, df = 32.945, p-value = 8.567e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  8.023996 21.394465
sample estimates:
mean in group 0 mean in group 1 
       73.26923        58.56000

Beim Berichten schreibt man: t (32,945) = 4,477; p < 0.001.
Die Nullhypothese von Gleichheit über die Gruppen wird somit verworfen. Es bestehen Mittelwertunterschiede zwischen den Geschlechtern hinsichtlich des Geschlechts.

 

3.2 Gerichtete Hypothese – Einseitige Testung

Ein einseitiges Testen ist möglich. Hierzu wird die Signifikanz des obigen zweiseitigen Test schlicht halbiert. Das ändert in dem Falle allerdings nichts am Ergebnis. Die Nullhypothese wird weiterhin verworfen. 

ACHTUNG: Testet man einseitig, ist das im Vorfeld zu benennen und die Hypothese explizit zu formulieren

Eine gerichtete und sehr naheliegende Hypothese aus Erfahrungswerten ist: Männer haben im Durchschnitt ein größeres Körpergewicht als Frauen.

Dies kann man auch explizit in t.test() formulieren, indem das Argument alternative verwendet wird.


t.test(data_xls$Gewicht~data_xls$Geschlecht, var.equal = FALSE, alternative ="greater")

 

Alternative hat drei mögliche Ausprägungen:

  • greater gibt an, dass unterstellt wird, dass der Mittelwert der Gruppe 0 größer als der Gruppe 1 ist.
  • less gibt an, dass unterstellt wird, dass der Mittelwert der Gruppe 0 kleiner als der Gruppe 1 ist.
  • two.sided gibt an, dass unterstellt wird, dass nicht bekannt ist, welche Gruppe einen größeren Mittelwert hat. Das ist die Standardeinstellung und muss nicht explizit definiert werden.

Der p-Wert ist tatsächlich halbiert. Zusätzlich ist nun die durch den geringen p-Wert anzunehmende Alternativhypothese auch explizit formuliert. Der Mittelwert der Gruppe 0 abzüglich des Mittelwerts der Gruppe 1 ist größer als 0. Das ist eine andere Formulierung für: Der Mittelwert der Gruppe 0 ist größer als der Mittelwert der Gruppe 1.

Der Output ist für den obigen Code folgender:


	Welch Two Sample t-test
data:  data_xls$Gewicht by data_xls$Geschlecht
t = 4.4767, df = 32.945, p-value = 4.284e-05
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 9.148372      Inf
sample estimates:
mean in group 0 mean in group 1 
       73.26923        58.56000

Das Berichten ist analog zu oben: t (32,945) = 4,477; p < 0,001.

 

4 Die Effektstärke – wie stark ist der Unterschied?

Die Effektstärke beantwortet die Frage, wie groß dieser Effekt (= Unterschied) ist. Dies wird mittels Cohen’s d ausgedrückt. Das wird von R im Rahmen des Welch-Tests nicht mit ausgegeben und ist separat zu berechnen. Hierzu benötigt es das Paket lsr und dessen cohensD()-Funktion.


install.packages("lsr")
library(lsr)
cohensD(data_xls$Gewicht~data_xls$Geschlecht)

1.235857

Dieser Wert ist nun einzuordnen. Cohen, J. (1992). A power primer. Psychological bulletin, 112(1), 157 gibt folgende Grenzen an:

  • >0,2 – kleiner Effekt
  • >0,5 – mittlerer Effekt
  • >0,8 – großer Effekt

Das Ergebnis von 1,236 liegt über der Grenze zum starken Effekt. Somit ist der Unterschied zwischen den Geschlechtern stark. 

 

5 Videotutorial

 

Hat dir der Beitrag geholfen?

Dann würde ich mich über eine kleine Spende freuen, die es mir erlaubt, weiterhin kostenfreie Inhalte zu veröffentlichen.
Alternativ kannst du über meinen Amazon Affiliate-Link einkaufen – ohne Zusatzkosten.

Vielen Dank und viel Erfolg!

Über mich

Björn Walther

Ein 💚 für Statistik & Datenanalyse

Excel Online-Kurs

YouTube-Kanal