Я анализирую данные несбалансированного факторного эксперимента как с, так SAS
и с R
. Оба SAS
и R
дают одинаковую сумму квадратов типа I, но их сумма квадратов типа III отличается друг от друга. Ниже приведены SAS
и R
коды и выводы.
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;
Тип I SS от 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
Тип III SS от 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
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")
Тип I СС от 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
Тип III SS от 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
Я что-то здесь упускаю? Если нет, какой из них является правильным Тип III SS?
r
anova
sas
sums-of-squares
MYaseen208
источник
источник
Ответы:
Тип III SS зависит от используемой параметризации. Если я установлю
перед запуском,
lm()
а затемdrop1()
я получаю точно такой же тип III SS, как SAS. Для догматов R-сообщества по этому вопросу вы должны прочитать Exegeses Venables на линейных моделях .См. Также: Как сделать SS-ANOVA типа III в R с контрастными кодами?
источник
options(contrasts=c("contr.treatment", "contr.poly"))