Ich analysiere Daten aus einem unausgeglichenen faktoriellen Experiment mit SAS
und R
. Beide SAS
und R
liefern eine ähnliche Quadratsumme vom Typ I, aber ihre Quadratsumme vom Typ III unterscheidet sich voneinander. Im Folgenden sind SAS
und R
Codes und Ausgänge.
DATA ASD;
INPUT Y T B;
DATALINES;
20 1 1
25 1 2
26 1 2
22 1 3
25 1 3
25 1 3
26 2 1
27 2 1
22 2 2
31 2 3
;
PROC GLM DATA=ASD;
CLASS T B;
MODEL Y=T|B;
RUN;
Typ I SS von SAS
Source DF Type I SS Mean Square F Value Pr > F
T 1 17.06666667 17.06666667 9.75 0.0354
B 2 12.98000000 6.49000000 3.71 0.1227
T*B 2 47.85333333 23.92666667 13.67 0.0163
Typ III SS von SAS
Source DF Type III SS Mean Square F Value Pr > F
T 1 23.07692308 23.07692308 13.19 0.0221
B 2 31.05333333 15.52666667 8.87 0.0338
T*B 2 47.85333333 23.92666667 13.67 0.0163
R-Code
Y <- c(20, 25, 26, 22, 25, 25, 26, 27, 22, 31)
T <- factor(x=rep(c(1, 2), times=c(6, 4)))
B <- factor(x=rep(c(1, 2, 3, 1, 2, 3), times=c(1, 2, 3, 2, 1, 1)))
Data <- data.frame(Y, T, B)
Data.lm <- lm(Y~T*B, data = Data)
anova(Data.lm)
drop1(Data.lm,~.,test="F")
Typ I SS von R
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
T 1 17.067 17.067 9.7524 0.03543 *
B 2 12.980 6.490 3.7086 0.12275
T:B 2 47.853 23.927 13.6724 0.01629 *
Residuals 4 7.000 1.750
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Typ III SS von R
Single term deletions
Model:
Y ~ T * B
Df Sum of Sq RSS AIC F value Pr(>F)
<none> 7.000 8.4333
T 1 28.167 35.167 22.5751 16.0952 0.01597 *
B 2 20.333 27.333 18.0552 5.8095 0.06559 .
T:B 2 47.853 54.853 25.0208 13.6724 0.01629 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Vermisse ich hier etwas? Wenn nicht, welches ist der richtige Typ III SS?
r
anova
sas
sums-of-squares
MYaseen208
quelle
quelle
Antworten:
Typ III SS ist abhängig von der verwendeten Parametrierung. Wenn ich setze
vor dem Laufen
lm()
und danndrop1()
bekomme ich genau den Typ III SS wie SAS. Für das R-Community-Dogma zu diesem Thema sollten Sie Venables ' Exegeses on linear models lesen .Siehe auch: Wie macht man eine Typ-III-SS-ANOVA in R mit Kontrastcodes?
quelle
options(contrasts=c("contr.treatment", "contr.poly"))