Was sind die Vorteile der ANOVA gegenüber einem normalen linearen Modell?

8


Ich experimentiere mit R und habe festgestellt, dass eine anova () ein Objekt vom Typ lm benötigt. Aber warum sollte ich danach mit einer Anova fortfahren:

> x <- data.frame(rand=rnorm(100), factor=sample(c("A","B","C"),100,replace=TRUE))
> head(x)
        rand factor
1  0.9640502      B
2 -0.5038238      C
3 -1.5699734      A
4 -0.8422324      B
5  0.2489113      B
6 -1.4685439      A

> model <- lm(x$rand ~ x$factor))
> summary(model)

Call:
lm(formula = x$rand ~ x$factor)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.74118 -0.89259  0.02904  0.59726  3.19762 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.1878     0.1845  -1.018    0.311
x$factorB    -0.1284     0.2689  -0.477    0.634
x$factorC     0.4246     0.2689   1.579    0.118

Residual standard error: 1.107 on 97 degrees of freedom
Multiple R-squared: 0.04345, Adjusted R-squared: 0.02372 
F-statistic: 2.203 on 2 and 97 DF,  p-value: 0.1160

Das sagt mir alles was ich brauche oder nicht? Ich bin gespannt, warum du mit einer Anova (Modell) weitermachen willst.

Alexander Engelhardt
quelle
1
Dies ist ein nahezu doppeltes Exemplar
Onestop

Antworten:

16

Schauen wir uns an, was Sie erhalten, wenn Sie die Funktion anova () tatsächlich verwenden (die Zahlen unterscheiden sich von denen in Ihrem Beispiel, da ich nicht weiß, welchen Startwert Sie zum Generieren der Zufallszahlen verwendet haben, aber der Punkt bleibt derselbe):

> anova(model)

Analysis of Variance Table

Response: x$rand
          Df  Sum Sq Mean Sq F value Pr(>F)
x$factor   2   4.142  2.0708  1.8948 0.1559
Residuals 97 106.009  1.0929        

H.0::β1=β2=0

Sie können die Funktion anova () auch für vollständige oder reduzierte Modelltests verwenden. Zum Beispiel:

> x <- data.frame(rand=rnorm(100), factor=sample(c("A","B","C"),100,replace=TRUE), 
                  y1=rnorm(100), y2=rnorm(100))
> model1 <- lm(x$rand ~ x$factor + x$y1 + x$y2)
> model2 <- lm(x$rand ~ x$factor)
> anova(model2, model1)

Analysis of Variance Table

Model 1: x$rand ~ x$factor
Model 2: x$rand ~ x$factor + x$y1 + x$y2
Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     97 105.06                           
2     95 104.92  2   0.13651 0.0618 0.9401

Dies ist ein Vergleich des vollständigen Modells mit dem Faktor und zwei Kovariaten (y1 und y2) und dem reduzierten Modell, wobei wir annehmen, dass die Steigungen der beiden Kovariaten gleichzeitig gleich Null sind.

Wolfgang
quelle
2
(+1) Gute Antwort. Ich würde hinzufügen, dass dies oft besondere Kontraste sind, die für DoE interessant sind, wie durch ANOVAs analysiert, und dass die Standardkontraste (wie von zurückgegeben summary.aov(lm(...))oder anova(lm(...))nicht von besonderem Interesse sind).
chl
@chl: Es ist ein guter Punkt. Ich denke jedoch, dass es etwas zu sagen gibt, um die Kontraste für die Hypothesen, die Sie testen möchten, tatsächlich zu konstruieren. Es gibt keinen grundsätzlichen Unterschied zwischen ANOVA und Regression. Manchmal verbergen ANOVA-Routinen die Hypothesen, die getestet werden. Gleichzeitig verpacken ANOVA-Prozeduren die Dinge manchmal genau so, wie Sie die Ergebnisse sehen möchten.
Brett
Vielen Dank, Sir :) Also würde ich zuerst die Anova betrachten, wenn der Faktor überhaupt einen Unterschied macht, bevor ich mir die Ausgabe von lm () anschaue, um zu sehen, welche Faktoren den Unterschied ausmachen ? Aber sagt mir die lm () - Ausgabe nicht schon, ob die verschiedenen Faktoren signifikant sind (mit den 1-3 Sternen dahinter)?
Alexander Engelhardt
1
Nicht ganz. Die Ausgabe von lm () oben zeigt an, ob es einen signifikanten Unterschied zwischen Stufe A (der Referenzstufe) und den Stufen B und C gibt. Sie sagt Ihnen nicht, ob sich die Stufen B und C signifikant voneinander unterscheiden. Natürlich können Sie Level B (oder C) zu Ihrer Referenz machen (mit der Funktion relevel ()), aber nehmen wir an, Sie haben einen Faktor mit vielen Levels. Das Überprüfen aller paarweisen Kontraste zwischen den Ebenen wird mühsam. Außerdem führen Sie viele Tests durch. Die Alternative besteht darin, zuerst den Omnibus-Test zu überprüfen, um zu überprüfen, ob zunächst etwas los ist.
Wolfgang
Ha! Vielen Dank. Es scheint, als hätte ich nicht verstanden, dass lm () die Faktoren nur anhand des Referenzniveaus getestet hat.
Alexander Engelhardt