炎炎夏日,挡不住我们似火的学习激情,今天带大家一步步学习方差分析。

当解释变量包含名义型和有序型的因子时,我们关注的重点往往在于组间的差异分析。这是非常必要的,尤其是考虑到科学研究中样品分组是普遍存在的,而样品组或者聚类分析获得的聚类簇都不能转化为连续的数值,均需要作为引子进行分析。这种组间的比较分析我们可以称之为方差分析(analysis of variance,ANOVA)。方差分析通过F检验来进行效果评测,与t检验一样,是一种参数检验方法,需要用到总体分布的参数特征(均值、方差),因此是针对符合正态分布总体的样本数据进行分析。

方差分析的基本原理是认为不同处理组的均数间的差别来源有两个:

实验条件,即不同的处理造成的差异,称为组间差异。用变量在各组的均值与总均值之偏差平方和的总和表示,记作SSb,组间自由度dfb。

随机误差,如测量误差造成的差异或个体间的差异,称为组内差异,用变量在各组的均值与该组内变量值之偏差平方和的总和表示,记作SSw,组内自由度dfw。

总偏差平方和SSt=SSb+SSw。假如结果受实验条件影响显著,那么SSb应远小于SSw。

组内SSw、组间SSb除以各自的自由度(组内dfw=n-m,组间dfb=m-1,其中n为样本总数,m为组数),得到其均方MSw和MSb,假如处理没有作用,即各组样本均来自同一总体,那么MSb/MSw≈1。假如处理确实有作用,组间均方是由于误差与不同处理共同导致的结果,即各样本来自不同总体。那么有MSb>>MSw。

现构造统计量F=MSb/MSw,服从F分布。可以使用F检验来判断。

假如只有一个类型变量,也即只有一组分类情况,则称为单因素方差分析(one-way ANOVA),若有两个甚至更多个因子,则为多因素方差分析。假如不同小组之间个体是相互独立的,例如不同药物注射的小鼠,则是独立测量方差分析;如不同小组之间个体相同,例如注射药物小鼠不同阶段,或者微生物物种在不同样品组的分布,则是重复测量方差分析。在科学研究中,某些因素经常伴随出现,例如高血压与高血脂,又或是地理位置与土壤类型,假如我们只关心其中一个因子,另一个因子则为干扰因子也即协变量,这时候要排除干扰因子的影响,需要做协方差分析(ANCOVA)。以上均是根据因子数目及属性划分,响应变量也即因变量只有一个时为一元方差分析,两个或两个以上时为多元方差分析(MANOVA)

在R语言中方差分析可以使用aov()函数进行分析,此函数的使用方法如下所示:


aov(formula, data=data.frame)


函数中表达式(formula)符号及书写方法如下所示:


方差在数据分析中的应用 例子 方差分析的数据分析图_多因素方差分析中预测因素的筛多


注意,如果不同小组为非均衡设计(也即不同小组样本数目不同),则表达式中因子顺序会对结果有影响(也即A*B与B*A结果不同)。一般来说,越基础的效应应该放在表达式前面(也可以理解为干扰变量在前)。常见方差分析及表达式如下所示:


方差在数据分析中的应用 例子 方差分析的数据分析图_方差分析_02