Wann sollte aov() im vergleich zu anova() in r verwendet werden?


Die Funktionen aov() und anova() in R scheinen ähnlich zu sein, aber wir verwenden sie tatsächlich in zwei verschiedenen Szenarien.

Wir verwenden aov() , wenn wir ein ANOVA-Modell anpassen und die Ergebnisse in einer ANOVA-Übersichtstabelle anzeigen möchten.

Wir verwenden anova() , wenn wir die Anpassung verschachtelter Regressionsmodelle vergleichen möchten, um festzustellen, ob ein Regressionsmodell mit einem bestimmten Satz von Koeffizienten eine deutlich bessere Anpassung bietet als ein Modell mit nur einer Teilmenge von Koeffizienten.

Die folgenden Beispiele zeigen, wie die einzelnen Funktionen in der Praxis verwendet werden.

Beispiel 1: Verwendung von aov() in R

Nehmen wir an, wir möchten eine einfache ANOVA durchführen, um festzustellen, ob drei verschiedene Trainingsprogramme unterschiedliche Auswirkungen auf die Gewichtsabnahme haben.

Wir rekrutieren 90 Personen für die Teilnahme an einem Experiment, bei dem wir 30 Personen nach dem Zufallsprinzip damit beauftragen, einen Monat lang entweder Programm A, Programm B oder Programm C zu befolgen.

Der folgende Code zeigt, wie Sie die Funktion aov() in R verwenden, um diese einfaktorielle ANOVA durchzuführen:

 #make this example reproducible
set. seeds (0)

#create data frame
df <- data. frame (program = rep(c("A", "B", "C"), each= 30 ),
                 weight_loss = c(runif(30, 0, 3),
                                 runif(30, 0, 5),
                                 runif(30, 1, 7)))

#fit one-way anova using aov()
fit <- aov(weight_loss ~ program, data=df)

#view results
summary(fit)

            Df Sum Sq Mean Sq F value Pr(>F)    
program 2 98.93 49.46 30.83 7.55e-11 ***
Residuals 87 139.57 1.60                     
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Aus den Modellergebnissen können wir ersehen, dass der p-Wert des Programms (0,0000000000755) kleiner als 0,05 ist, was bedeutet, dass es einen statistisch signifikanten Unterschied im durchschnittlichen Gewichtsverlust zwischen den drei Programmen gibt.

Beispiel 2: Verwendung von anova() in R

Angenommen, wir möchten die Anzahl der gelernten Stunden verwenden, um die Prüfungsergebnisse für Studenten einer bestimmten Hochschule vorherzusagen. Wir können uns entscheiden, die folgenden zwei Regressionsmodelle anzupassen:

Vollständiges Modell: Punktzahl = β 0 + B 1 (Stunden) + B 2 (Stunden) 2

Reduziertes Modell: Punktzahl = β 0 + B 1 (Stunden)

Der folgende Code zeigt, wie Sie mit der Funktion anova() in R einen Test auf mangelnde Anpassung durchführen, um festzustellen, ob das vollständige Modell eine deutlich bessere Anpassung bietet als das reduzierte Modell:

 #make this example reproducible
set. seeds (1)

#create dataset
df <- data.frame(hours = runif(50, 5, 15), score=50)
df$score = df$score + df$hours^3/150 + df$hours*runif(50, 1, 2)

#view head of data
head(df)

      hours score
1 7.655087 64.30191
2 8.721239 70.65430
3 10.728534 73.66114
4 14.082078 86.14630
5 7.016819 59.81595
6 13.983897 83.60510

#fit full model
full <- lm(score ~ poly(hours,2), data=df)

#fit reduced model
reduced <- lm(score ~ hours, data=df)

#perform lack of fit test using anova()
anova(full, reduced)

Analysis of Variance Table

Model 1: score ~ poly(hours, 2)
Model 2: score ~ hours
  Res.Df RSS Df Sum of Sq F Pr(>F)   
1 47 368.48                                
2 48 451.22 -1 -82.744 10.554 0.002144 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Da der p-Wert in der Ausgabetabelle (0,002144) kleiner als 0,05 ist, können wir die Nullhypothese des Tests ablehnen und daraus schließen, dass das vollständige Modell eine statistisch signifikant bessere Anpassung bietet als das reduzierte Modell.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So führen Sie eine einfaktorielle ANOVA in R durch
So führen Sie eine zweifaktorielle ANOVA in R durch
So führen Sie eine ANOVA mit wiederholten Messungen in R durch

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert