Wie werden ANOVA-Kontraste mit dem Fahrzeugpaket in R eingerichtet und interpretiert?


15

Angenommen, ich habe ein einfaches Experiment mit 2 × 2 Faktoren, an dem ich eine ANOVA durchführen möchte. So zum Beispiel:

d   <- data.frame(a=factor(sample(c('a1','a2'), 100, rep=T)),
                  b=factor(sample(c('b1','b2'), 100, rep=T)));
d$y <- as.numeric(d$a)*rnorm(100, mean=.75, sd=1) +
       as.numeric(d$b)*rnorm(100, mean=1.2, sd=1) +
       as.numeric(d$a)*as.numeric(d$b)*rnorm(100, mean=.5, sd=1) +
       rnorm(100);
  1. In Ermangelung einer signifikanten Interaktion ist standardmäßig (dh contr.treatment) die Ausgabe von Anova()die Gesamtbedeutung von aüber alle Ebenen von bund büber alle Ebenen von a, stimmt das?

  2. Wie soll ich einen Kontrast angeben, der es mir ermöglicht, die Signifikanz des Effekts abei bkonstantem Wert auf Ebene b1, des Effekts abei bkonstantem Wert auf Ebene b2 und der Interaktion zu testen a:b?

Antworten:


18

Ihr Beispiel führt zu ungleichen Zellengrößen, was bedeutet, dass die verschiedenen "Arten der Quadratsumme" eine Rolle spielen und der Test auf Haupteffekte nicht so einfach ist, wie Sie es angeben. Anova()Verwendet die Quadratsumme vom Typ II. Sehen Sie diese Frage für einen Anfang.

Es gibt verschiedene Möglichkeiten, die Kontraste zu testen. Beachten Sie, dass SS-Typen keine Rolle spielen, da wir letztendlich das zugehörige einfaktorielle Design testen. Ich schlage vor, die folgenden Schritte auszuführen:

# turn your 2x2 design into the corresponding 4x1 design using interaction()
> d$ab <- interaction(d$a, d$b)       # creates new factor coding the 2*2 conditions
> levels(d$ab)                        # this is the order of the 4 conditions
[1] "a1.b1" "a2.b1" "a1.b2" "a2.b2"

> aovRes <- aov(y ~ ab, data=d)       # oneway ANOVA using aov() with new factor

# specify the contrasts you want to test as a matrix (see above for order of cells)
> cntrMat <- rbind("contr 01"=c(1, -1,  0,  0),  # coefficients for testing a within b1
+                  "contr 02"=c(0,  0,  1, -1),  # coefficients for testing a within b2
+                  "contr 03"=c(1, -1, -1,  1))  # coefficients for interaction

# test contrasts without adjusting alpha, two-sided hypotheses
> library(multcomp)                   # for glht()
> summary(glht(aovRes, linfct=mcp(ab=cntrMat), alternative="two.sided"),
+         test=adjusted("none"))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts
Fit: aov(formula = y ~ ab, data = d)

Linear Hypotheses:
              Estimate Std. Error t value Pr(>|t|)
contr 01 == 0  -0.7704     0.7875  -0.978    0.330
contr 02 == 0  -1.0463     0.9067  -1.154    0.251
contr 03 == 0   0.2759     1.2009   0.230    0.819
(Adjusted p values reported -- none method)    

Überprüfen Sie nun manuell das Ergebnis für den ersten Kontrast.

> P       <- 2                             # number of levels factor a
> Q       <- 2                             # number of levels factor b
> Njk     <- table(d$ab)                   # cell sizes
> Mjk     <- tapply(d$y, d$ab, mean)       # cell means
> dfSSE   <- sum(Njk) - P*Q                # degrees of freedom error SS
> SSE     <- sum((d$y - ave(d$y, d$ab, FUN=mean))^2)    # error SS
> MSE     <- SSE / dfSSE                   # mean error SS
> (psiHat <- sum(cntrMat[1, ] * Mjk))      # contrast estimate
[1] -0.7703638

> lenSq <- sum(cntrMat[1, ]^2 / Njk)       # squared length of contrast
> (SE   <- sqrt(lenSq*MSE))                # standard error
[1] 0.7874602

> (tStat <- psiHat / SE)                   # t-statistic
[1] -0.9782893

> (pVal <- 2 * (1-pt(abs(tStat), dfSSE)))  # p-value
[1] 0.3303902

3
DANKE!!! Sie haben soeben eine Frage beantwortet, die zwei Semester der Absolventenstatistik nicht beantwortet haben. Ich habe sogar in Betracht gezogen, Einweganova zu verwenden, konnte aber keine Bestätigung dafür finden, dass dies ein legitimer Ansatz war.
Freitag,

@ f1r3br4nd Es ist legitim, da der Fehler MS im zugehörigen Einweg- und im ursprünglichen Zweiweg-Design gleich ist.
Karakal

Eine letzte Folgefrage, wenn ich darf: Wie verallgemeinert sich die Wechselwirkung auf Wechselwirkungen mit einer größeren Anzahl von Variablen? Wenn ich einen A habe B C Begriff, würde ich das aus A aufzubauen: B = (A | B = 1 - A | B = 2), C: B = (C | B = 1 - C | B = 2 ), A: B: C = A: B - C: B und so weiter?
Freitag,

2
@ f1r3br4nd In einem 2x2x2 Design, gibt es nur eine einmaligen A B C Interaktion Kontrast (wie es nur einen in einem 2x2 - Fall ist). Die Koeffizienten in einem Wechselwirkungskontrast A B C müssen sich über Zeilen (A), Spalten (B) und Ebenen (C) im "Designwürfel" zu Null summieren. Wenn die Reihenfolge der Zellen in der zugehörigen Einwegkonstruktion ist a1.b1.c1, a2.b1.c1, a1.b2.c1, a2.b2.c1, a1.b1.c2, a2.b1.c2, a1.b2.c2, a2.b2.c2, dann sind die Koeffizienten c(1, -1, -1, 1, -1, 1, 1, -1). Wenn Ihre Faktoren mehr als zwei Gruppen enthalten, handelt es sich bei allen Kontrasten nach der Nullsummenregel um 3-Wege-Interaktionskontraste.
Karakal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.