Analizuję dane z niezrównoważonego eksperymentu czynnikowego zarówno z, jak SAS
i R
. Zarówno SAS
oraz R
zapewnienie podobnego typu I sumę kwadratów ale ich suma kwadratów typu III różnią się od siebie. Poniżej SAS
i R
kody i wyjścia.
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 od 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 od 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
Kod R.
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 od 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 od 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
Czy coś mi umyka? Jeśli nie, który z nich jest poprawny SS typu III?
r
anova
sas
sums-of-squares
MYaseen208
źródło
źródło
Odpowiedzi:
Typ III SS zależy od zastosowanej parametryzacji. Jeśli ustawię
przed uruchomieniem,
lm()
a następniedrop1()
dostaję dokładnie taki sam SS typu III jak SAS. Aby zapoznać się z dogmatem społeczności R na ten temat, należy przeczytać Exegeses Venablesa dotyczące modeli liniowych .Zobacz także: Jak wykonać ANOVA SS typu III w R z kodami kontrastu?
źródło
options(contrasts=c("contr.treatment", "contr.poly"))