问候Two-way ANOVA的全家

对于做统计而言,软件和代码永远只是工具,想要真正吃透一个分析方法,还是得从最原本的知识开始梳理。

双因素方差分析的核心问题只有一个:怎样将来自所有统计数据的偏差合理地分配到每一个可能影响实验结果的因素上。

对ANOVA还不是很熟悉的人建议看看这一篇文章:对方差分析(ANOVA)的直观解释及计算,讲解地很清楚。


既然是双因素,就意味着需要考虑的影响条件有两个,比如我们想统计某种药物对人体产生的影响,可以通过测量不同血压和血糖条件下的药物浓度来判断,此时,血压和血糖就是两个不同的因素,药物浓度就是测量数据。推广到一般情况,有A、B两个因素的双因素方差分析设计表如下:


上表中A因素有r个水平,B因素有s个水平。

1. 均衡设计

Two-way ANOVA之所以如此关心数据设计的均衡性,是因为不均衡的设计会造成两个因素之间有相关性,给方差分配带来干扰。

关于一个Two-way ANOVA的实验设计是否均衡,其实定义很简单,下面的表格设计就是一个完全均衡(balanced)的设计,每一个因素对应的各自里的样本量(20)都是一样的。

这种设计对于方差分析来说是最理想的,然而在实际运用中很少有机会可以遇到。

再看下表这种设计,Soil因素和Woodchips因素对应的样本量不是完全一样的,所以是非均衡设计,但是要注意到虽然数量不同,group因素与time因素的样本比值是相同的(都是1.5倍),这种设计叫做unbalanced proportional design(非均衡成比例设计)。

这种设计虽然不均衡,但由于样本量成比例,分配均方差的时候也可以成比例分配。

然后下面这个表的设计就是既不均衡,又不成比例的了,叫做unbalanced disproportional design。

这种情况下分配均方差就比较麻烦了。下面两张PPT比较清晰地描述了不同设计之下的方差分配情况:


可以看到对于非均衡设计的数据,在分配方差的时候将三者重合的部分减去了,思路应该是“既然分不清该给谁,那就扔了谁都不给”。但是这个PPT没有给出具体是怎么计算的。

以上PPT是从YouTube视频中截取的,原视频链接:Nested ANOVA ,  Factorial ANOVA


2. 基本数学模型

首先说A、B两个因素没有交互作用的情况,此时Two-way ANOVA的均方差SST构成如下:

数学模型如下:

SSA是来自A因素的均方差,SSB是来自B因素的均方差,SSE是均方误差。此时ANOVA计算表如下:

然后来说A、B两个因素有交互作用的情况,此时Two-way ANOVA的均方差SST构成如下:

其中SSAB是来自两个因素交互产生的均方差。此时ANOVA计算表如下:

上面表格中的公式都有严格的推导过程,可以参考《概率论与数理统计》教材第九章的内容,后续如果有时间我也会自己再详细整理一遍。


3. 重复测量与嵌套设计

ANOVA中的重复测量问题前面简单提过,就是如果其中一个因素的每一个水平在每个个体上都有不止一个观察值,那么这个因素就称为重复测量因素,或组内因素(within subject),另一个因素则称为组间因素(between subject),此时的ANOVA称为repeated measure design。有时也有可能两个因素都是within subject。

重复测量的因素之所以会被单独考量,是因为重复对一个个体进行同一项实验,很有可能产生随机效应(random effect),需要重新分配均方差。对待随机效应,需要用到协方差,当然也有专门的协方差分析(ANCOVA)

嵌套设计相对来说是一种比较特殊的情况,想一想这样一个例子:如果我想统计AB两个省份每年的湖泊蒸发量,于是在A省选了4个湖泊,在B省选了4个湖泊,然后连续几年统计了这些湖泊每个季度的蒸发量。那么我们想知道这两个省的湖泊蒸发量有没有显著差异,但是注意到这个例子中的四个特殊情况:

                1. 统计的湖泊里没有一个同时在两个省份存在。 

                2. “湖泊”这个因素虽然看起来有8个水平(8个不同的湖泊),但都是在空间上隶属于“省份”这个因素的不同水平(A省和B省)。 

                3. 一个省内不止这4个湖泊,选择4个湖泊的时候有一定的随机性。

                4. 我们关心的两个省份之间的差异,对于各个湖泊之间的差异不是很关心。

这样,“湖泊”这个因素对应的统计数据严格来说不是一个独立的测量,它是“嵌套”在“省份”这个因素里的,这就违反了普通方差分析的前提,造成数据的假重复(pseudoreplication),使自由度也显得虚高(falsly increased df),在进行假设检验时会使结果出现假阳性,这就是嵌套设计的应用场景。

嵌套设计的ANOVA计算表如下:


相当于是把嵌套因素当做随机效应来分配方差了。另外关于随机效应,判断一个因素是不是随机效应就看这个因素的不同水平是不是随机选择的,拿上面的例子来说,AB两个省份是我们深思熟虑过之后选择的两个省份,因此省份因素带来的是固定效应(fixed effect);而湖泊是我们从两个省份里随机选择的,换句话说,湖泊这个因素的不同水平是来自于一个更大的总体(一个省里可能有100多个湖泊),因此湖泊就是一个随机因素,带来的就是随机效应。


4. Post hoc 与 contrast

做完ANOVA,算是完成了一半,如果分析结果显示双因素的影响具有显著差异,那么需要进一步知道差异的具体来源。举例来说,当我知道不同的血糖水平对健康有显著影响,那么我就想知道具体哪个血糖水平的影响最大。这就需要做事后分析了(post hoc),最常见的就是做多重检验,也就是将两个因素的不同水平两两之间的所有组合都做一遍检验。

这里需要了解下什么叫做family-wise error rate,也就是多重比较谬误。简单来讲,如果我们规定实验的差异显著阈值为5%,那么我们在一次实验中作出错误判断(Type II error,也就是假阳性)的概率是5%,看起来已经很低了,但是,如果我们做100次实验,那么每一次犯错误的概率就会叠加,到最后100%会犯错误,所谓“常在河边走,哪有不湿鞋”。

下表展示了一个因素的水平数、需要做的多重检验数量以及对应的错误率:


可以看到当多重检验数到91次的时候错误率已经接近100%了。

Tukey's HSD是比较重用的ANOVA post hoc方法,可以通过对p值的矫正避免多重比较谬误。关于post hoc还有很多值得研究的东西,后续会再补充一遍专门针对post hoc分析的笔记。

你可能感兴趣的:(问候Two-way ANOVA的全家)