aov(formual,data=dataframe)
y是因变量,字母A、B、C表明因子
R 表达式中的特殊符号
符号 |
用法 |
~ |
分隔符号,左边为响应变量,右边为解释变量,如用A、B、C预测y,代码为 y~ A + B +C |
: |
表示变量的交互项。例如,用A、B和A与B的交互项来预测 y, 代码 y~ A + B + A:B |
* |
表示全部可能交互项,代码 y~A*B*C可展开为 y~ A + B +C+ A:B + B:C +A:B:C |
^ |
表示交互项达到某个次数。代码 y~(A+B+C)^2可展开为 y~A +B +C+ A:B +A:C +B:C |
.(英文句号) |
表示包含除因变量外的全部变量。如,某个数据框包含变量 y、A、B和C,代码 y~. 可展现为y~A +B +C |
常见的研究设计表达式 ,小写字母表示定量变量,大写字母表示组别因子,Subject是被试着独有的标识变量
常见研究设计的表达式
设计 |
表达式 |
单因素ANOVA |
y ~ A |
含单个协变量的单因素 ANCOVA |
y ~ x + A |
双因素 ANOVA |
y ~ A * B |
含两个协变量的双因素 ANCOVA |
y ~ x1 + x2 + A*B
|
随机化区组 |
y ~ B + A(B 是区组因子) |
单因素组内 ANOVA |
y ~ A + Error(Subject / A) |
含单个组内因子(W)和单个组间因子(B)的重复测量ANOVA |
y ~ B * W + Error(Subject/W) |
表达式中效应顺序在两种状况会形成影响
a、因子不止一个,而且非平衡设计
如对于双因素方差分析,若不一样的处理方式中观测数不一样,那么模型 y ~ A*B 与 y~B*A 的结果不一样
R 默认类型Ⅰ(序贯型)方法计算ANOVA效应,第一个模型:y ~ A + B +A:B 。R中的 ANOVA 表的结果将评价:
一、A 对 y 的控制
二、控制 A 时, B 对 y 的影响
三、控制 A 和 B 的主效应时,A与B的交互效应
当自变量与其余自变量或者协变量相关时,没有明确的方法能够评价自变量对因变量的贡献
例如:含因子A、B和因变量 y 的双因素不平衡因子设计,有三种效应: A 和 B 主效应,A 和 B的交互效应,假设正使用以下表达式对数据进行建模
y ~ A + B + A:B
有三种方法能够分解等式右边各效应对 y 的解释的方差
效应根据表达式中线出现的效应作调整,A不作调整,B根据A调整,A:B交互项根据 A 和 B 调整
效应根据同水平或低水平的效应作调整,A 根据 B调整,B 根据A调整,A:B交互项同时根据 A 和 B 调整
每一个效应根据模型其余各效应作相应的调整, A 根据 B和 A:B调整,A:B交互项根据 A和B 调整
R 默认调用类型 Ⅰ 方法,其余软件(好比 SAS 和 SPSS)默认调用类型Ⅲ方法
样本大小越不平衡,效应项的顺序对结果的影响越大。通常来讲,越基础性的效应越须要放在表达式前面,具体来说,首先是协变量,而后是主效应,接着是双因素的交互项,再接着是三因素的交互项,以此类推。
对于主效应,越基础性的变量越应放在表达式前面,所以性别要放在处理方式以前,有一个基本的准则:若研究设计不是正交(也就是说,因子或协方变量相关),必定要谨慎设置效应的顺序
注意
car包中的Anova() 函数提供了使用类型Ⅱ和类型Ⅲ方法的选项,而 aov() 函数使用的是类型Ⅰ方法。
若想使结果与其余软件(如SAS和SPSS)提供的结果一致,可使用 Anova()函数,细节可参考help(Anova,package="car")