So führen sie eine drei-wege-anova in r durch
Eine dreifache ANOVA wird verwendet, um zu bestimmen, ob ein statistisch signifikanter Unterschied zwischen den Mittelwerten von drei oder mehr unabhängigen Gruppen besteht, die auf drei Faktoren verteilt wurden.
Das folgende Beispiel zeigt, wie eine dreifache ANOVA in R durchgeführt wird.
Beispiel: Dreifaktorielle ANOVA in R
Angenommen, ein Forscher möchte herausfinden, ob zwei Trainingsprogramme bei College-Basketballspielern zu unterschiedlichen durchschnittlichen Verbesserungen der Sprunghöhe führen.
Der Forscher vermutet, dass auch Geschlecht und Division (Division I oder II) einen Einfluss auf die Sprunghöhe haben könnten, weshalb er auch Daten zu diesen Faktoren erhebt.
Sein Ziel ist es, eine Drei-Wege-ANOVA durchzuführen, um zu bestimmen, wie sich Trainingsprogramm, Geschlecht und Division auf die Sprunghöhe auswirken.
Befolgen Sie die folgenden Schritte, um diese dreifache ANOVA in R durchzuführen:
Schritt 1: Erstellen Sie die Daten
Erstellen wir zunächst einen Datenrahmen zur Aufnahme der Daten:
#create dataset df <- data. frame (program=rep(c(1, 2), each= 20 ), gender=rep(c(' M ', ' F '), each= 10 , times= 2 ), division=rep(c(1, 2), each= 5 , times= 4 ), height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5, 5, 5, 4, 5, 4, 3, 3, 4, 3, 3, 6, 6, 5, 4, 5, 4, 5, 4, 4, 3, 2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) #view first six rows of dataset head(df) program gender division height 1 1 M 1 7 2 1 M 1 7 3 1 M 1 8 4 1 M 1 8 5 1 M 1 7 6 1 M 2 6
Schritt 2: Beschreibende Statistiken anzeigen
Bevor wir die Drei-Wege-ANOVA durchführen, können wir dplyr verwenden, um die durchschnittliche Steigerung der Sprunghöhe schnell zusammenzufassen, gruppiert nach Trainingsprogramm, Geschlecht und Division:
library (dplyr) #calculate mean jumping height increase grouped by program, gender, and division df %>% group_by(program, gender, division) %>% summarize(mean_height = mean(height)) # A tibble: 8 x 4 # Groups: program, gender [4] program gender division mean_height 1 1 F 1 4.6 2 1 F 2 3.2 3 1 M 1 7.4 4 1 M 2 5.6 5 2 F 1 2.6 6 2 F 2 1.4 7 2 M 1 5.2 8 2 M 2 4
So interpretieren Sie das Ergebnis:
- Die durchschnittliche Steigerung der Sprunghöhe für Frauen der Division I, die Trainingsprogramm 1 nutzten, betrug 4,6 Zoll .
- Die durchschnittliche Steigerung der Sprunghöhe bei Frauen der Division II, die Trainingsprogramm 1 nutzten, betrug 3,2 Zoll .
- Die durchschnittliche Steigerung der Sprunghöhe bei den Männern der Division I, die das Trainingsprogramm 1 nutzten, betrug 7,4 Zoll .
Und so weiter.
Schritt 3: Führen Sie die Drei-Wege-ANOVA durch
Als nächstes können wir die Funktion aov() verwenden, um die dreifache ANOVA durchzuführen:
#perform three-way ANOVA model <- aov(height ~ program * gender * division, data=df) #view summary of three-way ANOVA summary(model) Df Sum Sq Mean Sq F value Pr(>F) program 1 36.1 36.10 65.636 2.98e-09 *** gender 1 67.6 67.60 122.909 1.71e-12 *** division 1 19.6 19.60 35.636 1.19e-06 *** program:gender 1 0.0 0.00 0.000 1.000 program:division 1 0.4 0.40 0.727 0.400 gender:division 1 0.1 0.10 0.182 0.673 program:gender:division 1 0.1 0.10 0.182 0.673 Residuals 32 17.6 0.55 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Die Spalte Pr(>F) zeigt den p-Wert für jeden einzelnen Faktor und die Wechselwirkungen zwischen den Faktoren an.
Anhand der Ergebnisse können wir erkennen, dass keine der Wechselwirkungen zwischen den drei Faktoren statistisch signifikant war.
Wir können auch sehen, dass jeder der drei Faktoren – Programm, Geschlecht und Abteilung – statistisch signifikant war.
Wir können dplyr nun erneut verwenden, um die durchschnittliche Sprunghöhenzunahme für Programm, Geschlecht und Division separat zu ermitteln:
library (dplyr) #find mean jumping increase by program df %>% group_by(program) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 program mean_height 1 1 5.2 2 2 3.3 #find mean jumping increase by gender df %>% group_by(gender) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 gender mean_height 1 F 2.95 2M 5.55 #find mean jumping increase by division df %>% group_by(division) %>% summarize(mean_height = mean(height)) # A tibble: 2 x 2 division mean_height 1 1 4.95 2 2 3.55
Aus dem Ergebnis können wir Folgendes beobachten:
- Der durchschnittliche Anstieg der Sprunghöhe bei Personen, die Trainingsprogramm 1 nutzten ( 5,2 Zoll ), war größer als der durchschnittliche Anstieg bei Personen, die Trainingsprogramm 2 nutzten (3,3 Zoll ).
- Der durchschnittliche Anstieg der Sprunghöhe bei Männern ( 5,55 Zoll ) war größer als der durchschnittliche Anstieg bei Frauen (2,95 Zoll ).
- Der durchschnittliche Anstieg der Sprunghöhe bei Spielern der Division 1 ( 4,95 Zoll ) war größer als der durchschnittliche Anstieg bei Spielern der Division 2 (3,55 Zoll ).
Zusammenfassend würden wir sagen, dass Trainingsprogramm, Geschlecht und Spielklasse allesamt wichtige Indikatoren für eine erhöhte Sprunghöhe bei Spielern sind.
Wir würden auch sagen, dass es keine signifikanten Wechselwirkungen zwischen diesen drei Faktoren gibt.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie man andere ANOVA-Modelle in R anpasst:
So führen Sie eine einfaktorielle ANOVA in R durch
So führen Sie eine zweifaktorielle ANOVA in R durch