J'analyse les données d'une expérience factorielle déséquilibrée avec SAS
et R
. Les deux SAS
et R
fournir la somme similaire de type I de carrés , mais leur somme de type III de carrés sont différents les uns des autres. Ci - dessous SAS
et des R
codes et des sorties.
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;
SS de type I de 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
SS de type III de 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
Code 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")
Type I SS de 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
Type III SS de 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
Est-ce que j'ai râté quelque chose? Si non, lequel est correct de type III SS?
r
anova
sas
sums-of-squares
MYaseen208
la source
la source
Réponses:
Les SS de type III dépendent du paramétrage utilisé. Si je mets
avant de courir
lm()
etdrop1()
j'obtiens exactement le même SS de type III que SAS. Pour le dogme de la communauté R sur cette question, vous devriez lire les exégèses de Venables sur les modèles linéaires .Voir aussi: Comment faire une ANOVA SS de type III en R avec des codes de contraste?
la source
options(contrasts=c("contr.treatment", "contr.poly"))