多因素方差分析 (ANOVA,支持多个分组因素和交互作用)
当有两个或者两个以上的因素对因变量产生影响时,可以用多因素方差分析的方法来进行分析。多因素方差分析亦称”多向方差分析”,原理与单因素方差分析基本一致,也是利用方差比较的方法,通过假设检验的过程来判断多个因素是否对因变量产生显著性影响。在多因素方差分析中,由于影响因变量的因素有多个,其中某些因素除了自身对因变量产生影响之外,它们之间也有可能会共同对因变量产生影响。在多因素方差分析中,把因素单独对因变量产生的影响称之为”主效应”;把因素之间共同对因变量产生的影响,或者因素某些水平同时出现时,除了主效应之外的附加影响,称之为”交互效应”。多因素方差分析不仅要考虑每个因素的主效应,往往还要考虑因素之间的交互效应。
两因素方差分析原理如下,两个以上因素也同理:
多因素方差分析,需要满足6个条件:
条件1:观察变量唯一,且为连续变量。
条件2:有多个分组变量,且都为分类变量。
条件3:观测值相互独立。
条件4:观察变量不存在显著的异常值。
条件5:各组、各水平观察变量为正态(或近似正态)分布。
条件6:相互比较的各处理水平(组别)的总体方差相等,即通过方差齐性检验。
CancerStata 提供了一站式的多因素方差分析步骤:
- 数据是否适合做方差分析:提供正态性检验、QQ图、方差齐性检验;
- 进行多因素方差分析,可选交互作用或不选交互作用
- 事后检验:对各水平亚组进行两两比较,可以调整多重比较的P值,可选Tukey法,Scheffe法,Bonferroni法和Holm法
- 计算效应量(effect size)
- 计算和比较各水平亚组的估计边际平均值(Estimated marginal means)和置信区间,生成统计表,绘制统计图
准备数据
到”导入数据”页面下载示例数据看一下:
treatment是代表治疗组别的变量,这里有三个组Lev, Obs, 和Lev+5FU组。需要把变量属性设置成factor
blood 是代表结局的变量,为连续性变量。需要把变量属性设置成numeric
其他的分类变量如hospital, sex, obstruct等等,都算是分组处理因素。
探讨blood在不同组别、不同分组处理因素中均值的比较,就是多因素方差分析。
例如做一个两因素方差分析:
blood ~ treatment+sex
其中treatment有三组,sex有两组。
也可以包含交互作用:
blood ~ treatment+sex+treatment:sex
交互作用一般用冒号 : 连接两个变量
其中treatment和sex表示主效应,treatment:sex表示交互效应
如果要探讨三个因素,可以有多种方法:
blood ~ treatment+sex+obstruct 只考虑主效应
blood ~ treatment+sex+obstruct+treatment:sex 考虑一个交互作用
blood ~ treatment+sex+obstruct+treatment:sex+treatment:obstruct+sex:obstruct+treatment:sex:obstruct 考虑所有交互作用
开始方差分析
选择因变量,只能选择一个,如果菜单里没有你想要的变量,则返回去把它设置成numeric
选择代表组别的因子,这里我们选treatment和sex,如果菜单里没有,则返回去把你想要的组别变量设置为factor
选择交互作用,每点击一次”增加交互作用项”按钮,就可以增加一个交互作用项菜单,在菜单里选两个以上的变量,就能将其合成交互作用项。这里我们合成一个treatment:sex。如果选错了要修改,可以点击”重置清零”按钮。
使用条件判断:
这里可以勾选正态性检验和方差齐性检验等。
检验结果如下:
正态性检验仅供参考,P<0.05提示正态性不好,但即使正态性不佳,也可以做方差分析;
方差齐性检验,P<0.05时提示可能方差不齐;
Q-Q图是针对标准化残差做的,如果不太偏离这条直线,说明残差呈正态分布,可以做方差分析。
如果都不满足,可以考虑给因变量取对数或开平方后,再进行检测和做方差分析,
如果还不行,考虑非参数检验。
方差分析的选项
这里可以选择平方和(ss)的类型,默认选类型3;
可以选择是否计算effect size, 这里给了常见的三个参数;
也可以选择是否显示整体模型检验的参数
分析结果:
这里根据前面的选择,对treatment、sex以及它们的交互作用进行了方差分析,显示了平方和、均方、F值和P值,这里P值小于0.05表示该因素不同水平的blood均值的差异有统计学意义。而effect size则客观描述了标化量纲之后的效应大小。
事后检验
如果有些因子有三个组或以上,如这里的treatment就有三个组,则可以选择做事后检验进行两两比较。
三个组以上两两比较时,需要对P值进行校正,这里提供了Tukey法,Scheffe法,Bonferroni法和Holm法;如果只有两个组,则校正和不校正的P值没有区别。
另外,可选计算cohen’s d效应量及其置信区间。
事后检验的结果如下:
事后检验比较重要的参数是两组之间的差值Mean Difference (adjusted) 和SE,以及调整后的P值。
注意:表里的95% CI是Cohen’s d的可信区间,不是Mean Difference的可信区间。
估计边际平均值
所谓边际均值,就是在控制了其他因素之后,只是单纯在一个因素的作用下,因变量的变化。
举个简单的例子,如果只有一个自变量时,计算出来的边际均值和普通均值是一样的;当有两个及以上自变量时,计算边际均值和普通均值的出来的结果是不同的。
点击勾选需要计算边际均值的分组变量,交互作用也可以选。
分析结果如下:
这里的统计图,上下两条误差线可以用SE,也可以用置信区间表示。
统计表的解读:
例如三个治疗组,Lev+5FU、Obs、Lev 各自的blood边际均值和95% CI都可以在第一个表中找到;
两个性别,Female 和 Male各自的blood边际均值和95% CI可以在第二个表中找到;
而第三个表,交互作用表中,则有3*2=6个亚组,如男性接受Lev+5FU治疗组,blood边际均值为58.79
统计图的解读:
中间的圆点是均值,上下两条线是误差线。
在最后一个交互作用图中,横坐标是treatment, 图例分组是sex, 如果想颠倒过来,在选择边际均值项的菜单中,可以先选sex, 再选treatment, 图像的交叉顺序是根据菜单选择顺序来排列的。treatment:sex和sex:treatment在图像排列上有所不同。
下载报告
点击下载word文件即可
讨论:
方差分析对数据非正态性具有一定的耐受力,如果数据不是严重偏态或者只有部分组别数据不满足正态性要求,出于参数检验的统计学效能优于非参数检验的角度,还是可以使用方差分析方法,而不使用非参数检验。
多重比较一般分为事前检验(Prior tests)和事后检验(Post hoc tests)。事前检验是指在数据收集之前便决定了要通过多重比较来考察多个组与某个特定组之间的差别,多根据专业意义设定比较的策略。如果是事前检验,不论整体分析的结果如何,均可进行比较,并且一般不需要对检验水准进行太多修正。事后检验只有在方差分析得到有统计学意义的F值后才有必要进行,是一种探索性分析。对于事先未计划的多重比较(即事后检验),各组间的差别只是一种提示,要确认这种差别最好重新设计实验。
事后检验提供了”Tukey”法、“Scheffe”法、“Bonferroni”法和”Holm”法四种方法,均为在方差齐时使用。其中”Bonferroni”法为对检验水准的严格校正,校正后的检验水准为原始检验水准除以比较次数,当两两比较的次数较多时,结果偏保守。“Holm”法对检验水准的校正程度不如”Bonferroni”法严格,结果更为稳健。Scheffe法的检验效能优于Bonferroni法。Tukey法使用时需要样本数目相同,并可能产生较多的假阴性结果。