Estou analisando dados de um experimento fatorial desequilibrado com SAS
e R
. Ambos SAS
e R
fornecer semelhantes Tipo I soma dos quadrados, mas a sua soma Tipo III de quadrados são diferentes uns dos outros. Abaixo estão SAS
e R
códigos e saídas.
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 tipo I do 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 tipo III do 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
Código 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")
SS tipo I 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
SS tipo III 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
Estou faltando alguma coisa aqui? Se não, qual é o correto tipo III SS?
r
anova
sas
sums-of-squares
MYaseen208
fonte
fonte
Respostas:
SS tipo III dependem da parametrização utilizada. Se eu definir
antes de executar
lm()
e, em seguidadrop1()
, recebo exatamente o mesmo SS do tipo III que o SAS. Para o dogma da comunidade R sobre esse assunto, você deve ler as Exegeses de Venables sobre modelos lineares .Veja também: Como fazer uma ANOVA SS de Tipo III em R com códigos de contraste?
fonte
options(contrasts=c("contr.treatment", "contr.poly"))