方差分析对数据的要求:满足正态性(来自同一正态总体)和方差齐性(各组方差相等),在这两个条件下,若各组有差异,则只可能是来自影响因素的不同水平。
用aov()函数进行方差分析,基本格式为:
aov(formula, data=NULL, projections=FALSE, qr=TRUE,
contrasts=NULL, …)
其中,formula为方差分析公式;
data为数据框;
projection设置是否返回预测结果;
qr设置是否返回QR分解结果;
contrasts为公式中一些因子的列表。
formula公式的表示:(y为因变量,ABC为分组因子)
符号 | 用法 |
---|---|
~ | 分隔符号,左边为响应变量,右边为解释变量eg:y~A+B+C |
+ | 分隔解释变量 |
: | 表示变量的交互项eg:y~A+B+A:B |
* | 表示所有可能交互项eg:y~ABC可展开为: y~A+B+C+A:B+A:C+B:C+A:B:C |
^ | 表示交互项达到次数eg:y~(A+B+C)^2展开为: y~A+B+C+A:B+A:C+B:C |
. | 表示包含除因变量外的所有变量eg:若一个数据框包括变量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) |
注意:非均衡设计时或存在协变量时,效应项的顺序对结果影响较大,越基础的效应越需要放在表达式前面,首先是协变量、然后是主效应、接着是双因素的交互项,再接着是三因素的交互项。若研究不是正交的,一定要谨慎设置效应的顺序。
有三种类型的方法可以分解y~A+B+A:B右边各效应对y所解释的方差:
类型I(序贯型)
效应根据表达式中先出现的效应做调整。A不做调整,B根据A调整,A:B交互项根据A和B调整。
类型II(分层型)
效应根据同水平或低水平的效应做调整。A根据B调整,B依据A调整,A:B交互项同时根据A和B调整。
类型III(边界型)
每个效应根据模型其他各效应做相应调整。A根据B和A:B做调整,A:B交互项根据A和B调整。
R默认调用类型I方法,其他软件(比如SAS和SPSS)默认调用类型III方法。car包中的Anova()函数(不要与标准anova()函数混淆)提供了使用类型II或类型III方法的选项,而aov()函数使用的是类型I方法。若想使结果与其他软件(如SAS和SPSS)提供的结果保持一致,可以使用Anova()函数。
一、单因素方差分析
1个因变量,1个影响因素:
总差异Yij = 平均差异μ + 因素差异αi + 随机差异εij
例1 比较4种品牌的胶合板的耐磨性,各抽取5个样品,相同转速磨损相同时间测得磨损深度(mm),比较4个品牌胶合板的耐磨性有无差异?
attach(ToothGrowth)
head(ToothGrowth)
序号 | len | supp | dose |
---|---|---|---|
1 | 4.2 | VC | 0.5 |
2 |