作者andrew43 (apan)
看板R_Language
标题Re: [问题] type III anova
时间Mon May 6 03:59:05 2013
先解决MS不正确的问题。
因为不平衡设计而采用 Type III SS 时,
必须将类别变数转换成正交的虚拟变数。
不过,R 内建的虚拟变数转换方式是 simple contrast
(在 R 中称为 contr.treatment),
而 simple contrast 并不是正交的。
R 有内建其它常用的正交转换方式,
包括 contr.sum 和 contr.helmert。
回到例子,正确的方式是。
contrasts(A) <- contr.sum # 更变虚拟变数
contrasts(B) <- contr.sum
m <- aov(Y~A*B)
library(car)
Anova(m, type=3) # Type III SS
即可得到正确的 MS。
至於如何设立随机因子就先不谈,还蛮复杂的。
※ 引述《DrRd (就这样吧)》之铭言:
: [问题类型]:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
: [软体熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 要进行type III的变异数分析
: 共有A、B两个因子,其中A是固定效果,B是随机效果
: 网路上有看到可以用car里面的Anova(,type=3)
: 但它没有让我指定何者为固定何者为随机
: 算出来的结果也不正确
: 请问除了手算之外,有其他的套件可以算吗?
: [程式范例]:
: aov.result = aov(Y~A*B)
: summary(aov.result)
: Df Sum Sq Mean Sq F value Pr(>F)
: A 2 222.6 111.30 5.532 0.00711 **
: B 1 0.1 0.14 0.007 0.93447
: A:B 2 76.4 38.18 1.898 0.16169
: Residuals 45 905.4 20.12
: ---
: Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
: 用aov得到的结果A效果的F值是除上Residuals得到的
: 但是因为B是随机效果,所以A的F值应该是要除以A:B
: 目前我是都用手算来得到A效果的真正的F值
: 我在网路上看到说可以用car:::Anova
: 所以我改用
: >library(car)
: >Anova(aov.result,type=3)
: Anova Table (Type III tests)
: Response: Y
: Sum Sq Df F value Pr(>F)
: (Intercept) 544.44 1 27.0598 4.683e-06 ***
: A 22.03 2 0.5475 0.5822
: B 47.45 1 2.3584 0.1316
: A:B 76.37 2 1.8979 0.1617
: Residuals 905.40 45
: ---
: Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
: 改用这个之後Sum Sq都变了
: 也许是因为不等格的关系?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.37.172
※ 编辑: andrew43 来自: 122.117.37.172 (05/06 04:13)