R ANOVA-Tutorial: Einweg und Zweiweg (mit Beispielen)

Was ist ANOVA?

Varianzanalyse (ANOVA) ist eine statistische Technik, die häufig verwendet wird, um Unterschiede zwischen zwei oder mehr Gruppenmittelwerten zu untersuchen. Der ANOVA-Test konzentriert sich auf die verschiedenen Variationsquellen in einer typischen Variablen. ANOVA in R liefert in erster Linie Beweise für die Existenz der Mittelwertgleichheit zwischen den Gruppen. Diese statistische Methode ist eine Erweiterung des t-Tests. Sie wird in Situationen verwendet, in denen die Faktorvariable mehr als eine Gruppe hat.

Einweg-ANOVA

Es gibt viele Situationen, in denen Sie den Mittelwert zwischen mehreren Gruppen vergleichen müssen. Die Marketingabteilung möchte beispielsweise wissen, ob drei Teams die gleiche Vertriebsleistung haben.

  • Team: 3-Level-Faktor: A, B und C
  • Verkauf: Ein Maß für die Leistung

Mit dem ANOVA-Test lässt sich feststellen, ob die Leistungen der drei Gruppen ähnlich sind.

Um zu klären, ob die Daten aus derselben Grundgesamtheit stammen, können Sie eine durchführen einseitige Varianzanalyse (im Folgenden einfaktorielle ANOVA). Dieser Test gibt wie alle anderen statistischen Tests Aufschluss darüber, ob die H0-Hypothese akzeptiert oder abgelehnt werden kann.

Hypothese im einfaktoriellen ANOVA-Test

  • H0: Die Mittelwerte zwischen den Gruppen sind identisch
  • H3: Zumindest ist der Mittelwert einer Gruppe unterschiedlich

Mit anderen Worten: Die H0-Hypothese impliziert, dass es nicht genügend Beweise gibt, um zu beweisen, dass sich der Mittelwert der Gruppe (Faktor) von einem anderen unterscheidet.

Dieser Test ähnelt dem T-Test, obwohl in Situationen mit mehr als 2 Gruppen ein ANOVA-Test empfohlen wird. Abgesehen davon liefern der T-Test und der ANOVA ähnliche Ergebnisse.

Annahmen

Wir gehen davon aus, dass jeder Faktor zufällig ausgewählt und unabhängig ist und aus einer normalverteilten Grundgesamtheit mit unbekannten, aber gleichen Varianzen stammt.

ANOVA-Test interpretieren

Die F-Statistik wird verwendet, um zu testen, ob die Daten aus deutlich unterschiedlichen Populationen stammen, dh aus unterschiedlichen Stichprobenmittelwerten.

Um die F-Statistik zu berechnen, müssen Sie dividieren Variabilität zwischen Gruppen über die Variabilität innerhalb der Gruppe.

Das zwischen der Gruppe Die Variabilität spiegelt die Unterschiede zwischen den Gruppen innerhalb der gesamten Bevölkerung wider. Schauen Sie sich die beiden Diagramme unten an, um das Konzept der Varianz zwischen Gruppen zu verstehen.

Die linke Grafik zeigt sehr geringe Unterschiede zwischen den drei Gruppen, und es ist sehr wahrscheinlich, dass die drei Mittelwerte tendenziell tendieren Gesamt- Mittelwert (dh Mittelwert für die drei Gruppen).

In der rechten Grafik sind drei weit voneinander entfernte Verteilungen dargestellt, von denen sich keine überschneidet. Es besteht eine hohe Wahrscheinlichkeit, dass der Unterschied zwischen dem Gesamtmittelwert und dem Gruppenmittelwert groß ist.

ANOVA-Test interpretieren

Das innerhalb der Gruppe Die Variabilität berücksichtigt den Unterschied zwischen den Gruppen. Die Variation ergibt sich aus den einzelnen Beobachtungen; Einige Punkte können völlig anders sein als die Gruppenbedeutung. Der innerhalb der Gruppe Die Variabilität greift diesen Effekt auf und bezieht sich auf den Stichprobenfehler.

Um das Konzept der Variabilität innerhalb der Gruppe visuell zu verstehen, sehen Sie sich die folgende Grafik an.

Der linke Teil zeigt die Verteilung von drei verschiedenen Gruppen. Sie haben die Streuung jeder Stichprobe vergrößert und es ist klar, dass die individuelle Varianz groß ist. Der F-Test nimmt ab, was bedeutet, dass Sie dazu neigen, die Nullhypothese zu akzeptieren

Der rechte Teil zeigt genau die gleichen Stichproben (identischer Mittelwert), jedoch mit geringerer Variabilität. Dies führt zu einer Erhöhung des F-Tests und tendiert zugunsten der Alternativhypothese.

ANOVA-Test interpretieren

Sie können beide Maße zur Erstellung der F-Statistik verwenden. Es ist sehr intuitiv, die F-Statistik zu verstehen. Wenn der Zähler zunimmt, bedeutet dies, dass die Variabilität zwischen den Gruppen hoch ist und die Gruppen in der Stichprobe wahrscheinlich aus völlig unterschiedlichen Verteilungen stammen.

Mit anderen Worten: Eine niedrige F-Statistik weist auf einen geringen oder keinen signifikanten Unterschied zwischen dem Gruppendurchschnitt hin.

Beispiel für einen einfaktoriellen ANOVA-Test

Sie verwenden den Giftdatensatz, um den einfaktoriellen ANOVA-Test durchzuführen. Der Datensatz enthält 48 Zeilen und 3 Variablen:

  • Zeit: Überlebenszeit des Tieres
  • Gift: Art des verwendeten Giftes: Faktorstufe: 1,2 und 3
  • behandeln: Art der verwendeten Behandlung: Faktorstufe: 1,2 und 3

Bevor Sie mit der Berechnung des ANOVA-Tests beginnen, müssen Sie die Daten wie folgt vorbereiten:

  • Schritt 1: Importieren Sie die Daten
  • Schritt 2: Entfernen Sie unnötige Variablen
  • Schritt 3: Konvertieren Sie die Variable Gift als bestellte Stufe
library(dplyr)
PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv"
df <- read.csv(PATH) %>%
select(-X) %>% 
mutate(poison = factor(poison, ordered = TRUE))
glimpse(df)

Ausgang:

## Observations: 48
## Variables: 3
## $ time   <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0...
## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2...
## $ treat  <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...		

Unser Ziel ist es, die folgende Annahme zu testen:

  • H0: Es gibt keinen Unterschied in der durchschnittlichen Überlebenszeit zwischen den Gruppen
  • H3: Die durchschnittliche Überlebenszeit ist für mindestens eine Gruppe unterschiedlich.

Mit anderen Worten: Sie möchten wissen, ob es einen statistischen Unterschied zwischen der mittleren Überlebenszeit je nach Art des dem Meerschweinchen verabreichten Giftes gibt.

Sie gehen wie folgt vor:

  • Schritt 1: Überprüfen Sie das Format der Variablen Poison
  • Schritt 2: Drucken Sie die zusammenfassende Statistik aus: Anzahl, Mittelwert und Standardabweichung
  • Schritt 3: Erstellen Sie ein Boxplot
  • Schritt 4: Berechnen Sie den einfaktoriellen ANOVA-Test
  • Schritt 5: Führen Sie einen paarweisen t-Test durch

Schritt 1) Sie können den Grad des Giftes mit dem folgenden Code überprüfen. Sie sollten drei Zeichenwerte sehen, da Sie diese mit dem Verb „mutate“ in Faktoren umwandeln.

levels(df$poison)

Ausgang:

## [1] "1" "2" "3"

Schritt 2) Sie berechnen den Mittelwert und die Standardabweichung.

df % > %
	group_by(poison) % > %
	summarise(
		count_poison = n(),
		mean_time = mean(time, na.rm = TRUE),
		sd_time = sd(time, na.rm = TRUE)
	)

Ausgang:

## 
# A tibble: 3 x 4
##   poison count_poison mean_time    sd_time
##    <ord>        <int>     <dbl>      <dbl>
## 1      1           16  0.617500 0.20942779
## 2      2           16  0.544375 0.28936641
## 3      3           16  0.276250 0.06227627

Schritt 3) Im dritten Schritt können Sie grafisch prüfen, ob es einen Unterschied zwischen der Verteilung gibt. Beachten Sie, dass Sie den gezitterten Punkt einschließen.

ggplot(df, aes(x = poison, y = time, fill = poison)) +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(0.21)) +
    theme_classic()

Ausgang:

Beispiel für einen einfaktoriellen ANOVA-Test

Schritt 4) Sie können den einfaktoriellen ANOVA-Test mit dem Befehl aov ausführen. Die grundlegende Syntax für einen ANOVA-Test lautet:

aov(formula, data)
Arguments:			
- formula: The equation you want to estimate
- data: The dataset used	

Die Syntax der Formel lautet:

y ~ X1+ X2+...+Xn # X1 +  X2 +... refers to the independent variables
y ~ . # use all the remaining variables as independent variables

Sie können unsere Frage beantworten: Gibt es einen Unterschied in der Überlebenszeit von Meerschweinchen, wenn man die Art des verabreichten Giftes kennt?

Beachten Sie, dass es empfehlenswert ist, das Modell zu speichern und die Funktion summary() zu verwenden, um einen besseren Ausdruck der Ergebnisse zu erhalten.

anova_one_way <- aov(time~poison, data = df)
summary(anova_one_way)

Code Erklärung

  • aov(time ~ poison, data = df): Führen Sie den ANOVA-Test mit der folgenden Formel aus
  • summary(anova_one_way): Druckt die Zusammenfassung des Tests

Ausgang:

##             Df Sum Sq Mean Sq F value   Pr(>F)
## poison       2  1.033  0.5165   11.79 7.66e-05 ***
## Residuals   45  1.972  0.0438                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Der p-Wert liegt unter dem üblichen Schwellenwert von 0.05. Sie können mit Sicherheit sagen, dass es einen statistischen Unterschied zwischen den Gruppen gibt, der durch das „*“ gekennzeichnet ist.

Paarweiser Vergleich

Der einfaktorielle ANOVA-Test gibt keine Auskunft darüber, welche Gruppe einen anderen Mittelwert hat. Stattdessen können Sie mit der Funktion TukeyHSD() einen Tukey-Test durchführen.

TukeyHSD(anova_one_way)

Ausgang:

Paarweiser Vergleich

Zweiwege-ANOVA

Ein zweifaktorieller ANOVA-Test fügt der Formel eine weitere Gruppenvariable hinzu. Er ist mit dem einfaktoriellen ANOVA-Test identisch, die Formel ändert sich jedoch geringfügig:

y=x1+x2

with ist eine quantitative Variable und und sind kategoriale Variablen.

Hypothese im zweiseitigen ANOVA-Test

  • H0: Die Mittelwerte sind für beide Variablen gleich (d. h. Faktorvariable)
  • H3: Die Mittelwerte sind für beide Variablen unterschiedlich

Sie fügen unserem Modell eine Behandlungsvariable hinzu. Diese Variable gibt die Behandlung an, die dem Meerschweinchen verabreicht wurde. Sie möchten wissen, ob es einen statistischen Zusammenhang zwischen dem Gift und der Behandlung des Meerschweinchens gibt.

Wir passen unseren Code an, indem wir treat mit der anderen unabhängigen Variablen hinzufügen.

anova_two_way <- aov(time~poison + treat, data = df)
summary(anova_two_way)

Ausgang:

##             Df Sum Sq Mean Sq F value  Pr(>F)    
## poison       2 1.0330  0.5165   20.64 5.7e-07 ***
## treat        3 0.9212  0.3071   12.27 6.7e-06 ***
## Residuals   42 1.0509  0.0250                    
## ---

Sie können daraus schließen, dass sich sowohl Gift als auch Behandlung statistisch von 0 unterscheiden. Sie können die NULL-Hypothese ablehnen und bestätigen, dass sich eine Änderung der Behandlung oder des Giftes auf die Überlebenszeit auswirkt.

Zusammenfassung

Wir können den Test in der folgenden Tabelle zusammenfassen:

Test Code Hypothese P-Wert
Einweg-ANOVA
aov(y ~ X, data = df)
H3: Der Durchschnitt ist für mindestens eine Gruppe unterschiedlich 0.05
Paarweise
TukeyHSD(ANOVA summary)
0.05
Zweifaktorielle ANOVA
aov(y ~ X1 + X2, data = df)
H3: Der Durchschnitt ist für beide Gruppen unterschiedlich 0.05