第六章 协方差分析 协方差分析是把方差分析与回归分析结合起来的一种统计分析方法。它用于比较一个变量Y在一个或几个因素不同水平上的差异,但Y在受这些因素影响的同时,还受到另一个变量X的影响,而且X变量的取值难以人为控制,不能作为方差分析中的一个因素处理。此时如果X与Y之间可以建立回归关系,则可用协方差分析的方法排除X对Y的影响,然后用方差分析的方法对各因素水平的影响作出统计推断。在协方差分析中,我们称Y为因变量,X为协变量。 也许有人会问随机因素的影响也是不能人为控制的,为什么不能把X作为一种随机因素处理呢?这里的差异主要在于作为随机因素处理时虽然每一水平的影响是不能人为控制的,但我们至少可以得到几个属于同一水平的重复,因此可以把它们分别用另一因素的不同水平处理。最后在进行方差分析时,我们才能排除这一随机因素的影响,对另一因素的各水平进行比较。这一点可从以下的计算公式中看出来:   在上述公式中,如果第一个下标 i变化时相同的j所代表的第二个因素的水平都不相同,就没有理由认为下面的(*)式一定会成立,也就不能认为SSA仅是第一个因素的影响了。对于系统分组的方差分析,虽然不同的i中同一个j的取值可以不同,但仍要求  (*) 这样就保证了在中可以消去第二个因素的影响。如果我们对第二个因素的取值完全无法控制,那就意味着对于不同的 i,βj的变化是完全没有规律的,当然也就不可能满足上述的(*)式,此时就没有办法采用方差分析的方法,只能把第二个因素视为另一个变量X,试试用协方差分析的方法排除它的影响了。 例如当我们考虑动物窝别对增重的影响时,一般我们可把它当作随机因素处理,这一方面是由于它不容易数量化,另一方面是同一窝一般有几只动物,可分别接受另一因素不同水平的处理;如果我们考虑试验开始前动物初始体重的影响,这时一般方法是选初始重量相同的动物作为一组,分别接受另一因素的不同水平处理,此时用方差分析也无问题。但若可供试验的动物很少,初始体重又有明显差异,无法选到相同体重的动物,那就只好认为初始体重X与最终体重Y有回归关系,采用协方差分析的方法排除初始体重的影响,再来比较其他因素例如饲料种类,数量对增重的影响了。 消除初始体重影响的另一种方法是对最终体重与初始体重的差值即y-x进行统计分析。这种方法与协方差分析的生物学意义是不同的。对差值进行分析是假设初始体重对以后的体重增量没有任何影响,而协方差分析则是假设最终体重中包含初始体重的影响,这种影响的大小与初始体重成正比。如果这一比值为1,协方差分析与对差值进行方差分析是相同的。但如果比值不为1,它们的结果将是不同的。也就是说协方差分析是假设使初始体重不同的因素在以后的生长过程中也会发挥作用,而对差值进行方差分析是假设这些因素以后不再发挥作用;这两种生物学假设显然是不同。希望同学们在学习一种统计方法时不仅要注意它与其他方法算法上有什么不同,更要注意算法背后的生物学假设有什么不同,这种深层次的理解有助于我们在今后的工作中选取正确的统计方法。 由于协方差分析的过程包含了对协变量影响是否存在及其大小等一系列统计检验与估计,它显然比对差值进行分析等方法有更广泛的适用范围,因此除非有明显证据说明对差值进行分析的生物学假设是正确的,一般情况下还是应采用协方差分析的方法。 协方差分析的计算是比较复杂的。在本章中我们重点介绍最简单的协方差分析的算法,即一个协变量,单因素的协方差分析。 §6.1 协方差分析的基本原理 我们以最简单的情况:一个协变量,单因素的协方差分析为例对协方差分析的基本原理加以说明。 统计模型: 在协方差分析中,我们认为每一个因变量的观察值可分解为以下各部分的和:  (6.1) i = 1, 2 … a, j = 1, 2 … n。 其中 yij:第i水平的第j次观察值。 xij:i水平的j次观察的协变量取值。 :xij的总平均数。 :yij的总平均数。 :第i水平的效应。 β:Y对X的线性回归系数。 :随机误差。 需要满足的条件为: (1)~NID(0, σ2) (2)β≠0,即Y与X存在线性关系,且各水平回归系数相等,即协变量的影响不随水平的变化而改变。 (3)处理效应之和为0,即:。 上述第三个条件说明该因素为固定因素。若为随机因素,则应该为处理效应的方差为0。模型(6.1)式也可写为: , (6.2) 这种写法看起来简单一点,它的缺点是((不再是Y的总平均值,因为。我们以后的讨论针对(6.1)式进行。 协方差分析的统计量: 进行协方差分析需计算以下统计量:    其中S,T,E分别代表总的,处理的和误差的(包括协变量的影响)平方和及交叉乘积和。它们的关系可表示为: S = T + E 这实际是平方和的分解。同学们可自行证明其交叉项为0。 三、协方差分析的原理: 协方差分析的核心思想是通过对因变量Y进行调整,消去协变量X的影响,从而能对另一因素不同水平的影响进行统计检验。在模型中,各参数的估计量为:  其中。误差平方和为:  它的自由度为:dfe = a(n ? 1) ? 1。这是因为Syy的自由度为an ? 1, Tyy的自由度为a ? 1, 所以Eyy的自由度为an ? 1 ? a + 1 = a(n ? 1), 而b*Exy为一个一元回归平方和,自由度为1,所以SSe的自由度为a(n ? 1) ? 1。 MSe = SSe / [a(n ? 1) ? 1] 注意上述计算中用的是E而不是S,即对每一个水平分别计算后再加起来的,因此是排除了影响的回归。 我们希望检验:。在此假设下,统计模型变为:  这是一个一元回归问题,此时和的最小二乘估计为:   误差平方和为:  df = an ? 2。 其中为Y对X的回归平方和。 若H0不成立,则中会有的影响,因此会明显偏大。它们的差就是各对总变差的贡献,自由度为a ? 1。所以我们可用下述统计量对H0作检验:  (6.3) 若F大于查表得到的上单尾分位数,则拒绝H0,即各水平效应明显不同。 我们可以把协方差分析与方差分析作一比较: 若不存在协变量影响,即=0,模型变为:  这是单因素方差分析。总变差为Syy,误差平方和为Eyy,处理平方和Tyy = Syy ? Eyy,我们用  作统计检验。 若( ( 0,我们用它对Syy和Eyy作调整:把Eyy调整为SSe作为误差估计,由于又用了一个估计量b*,又减少了一个自由度,SSe的自由度变为a(n ? 1) ? 1; Syy调整为,它与SSe的差作为处理平方和的估计,它的自由度仍为a ? 1。因此,调整后的统计量变为(6.3)式。 从上面的分析可见,处理平均数实际上包括了处理效应和协变量的回归效应,经过调整后变为:  已消去了协变量的影响,只有处理效应了。它是模型中的最小二乘估计。可以证明它的标准误差为:  这实际上一元回归中条件均值估计的标准误差。 进行协方差分析应满足的条件有: (1)(ij ~ NID(0, (2) (2)(1 = (2 = … = (a = ( (3)( ( 0 在做协方差分析的过程中应对上述条件进行检验。 §6.2 协方差分析的计算过程 本节中我们给出较详细的协方差分析计算过程,包括全部应进行的条件检验。 (1)对各处理水平,分别计算协变量与因变量的回归方程,并求出各处理内的剩余平方和,令,称为组内剩余平方和,其自由度。 (2)令,并利用它们检验方差齐性。可选取差异最大的两个的比值作Fmax统计检验,若无显著差异,则可认为具有方差齐性。 (3)把各处理水平的平方和及交叉乘积和合并得到Eyy, Exx, Exy;并求得公共回归系数,及,称为误差平方和,它的自由度为dfe = a(n ? 1) ? 1。 (4)检验各处理水平的回归线是否平行: H0: (1 = (2 = … = (a = (。由于组内剩余平方和完全是由随机误差引起,而用共同的b*计算出的SSe则包含了随机误差及各水平回归系数bi的差异的影响,而且可证明它是可以分解的,所以有:  其自由度,令  然后用  作检验。若差异不显著,则可认为各相等。 (5)检验回归是否显著: H0: ( = 0。利用(2)的结果,。SSe = Eyy ? SSR,dfe = a(n ? 1) ? 1。令MSe = SSe / (a(n ? 1) ? 1),可用  对上述H0作检验。若差异显著则作协方差分析,若差异不显著则直接作单因素方差分析。 (6)协方差分析: 计算:    令 ,  利用上述统计量F对作上单尾检验。若差异显著,则认为各处理水平间效果有显著差异。 (7)计算调整平均数,即的估计值。  其标准差为: 必要时可用它对上述估计值间差异是否显著作检验。 总结:协方差分析的原理及步骤(设a=3) (1)检验条件:先作三条回归线,求出各组的误差估计并检验是否相等(方差齐性),通过检验后合并各求出为误差估计。 再假设三线平行(有共同的b*),在此假设下求出SSe,用对检验上述假设。通过检验后用MSe代替。 再检验b*是否为0。令;通过检验则直接作方差分析,否则做协方差分析。 (2)协方差分析:检验各水平效应是否均为0:。在此假设下,可把三组数据合并,作一个回归方程,它的剩余平方和包含了的影响。令,检验影响是否明显比随机误差大。 (3)对平均数进行调整,即对作出估计,必要时进行多重比较。 例6.1 比较三种猪饲料A1,A2,A3的效果。X为初始重量,Y为增重量,数据见下表。 A1 X 15 13 11 12 12 16 14 17    Y 85 83 65 76 80 91 84 90   A2 X 17 16 18 18 21 22 19 18    Y 97 90 100 95 103 106 99 94   A3 X 22 24 20 23 25 27 30 32    Y 89 91 83 95 100 102 105 110   解:首先进行条件的检验。 对每一种饲料分别作回归分析,得: Syy1 = 487.5, Sxy1 = 110.5, Sxx1 = 31.5, a1 = 33.516, b1 = 3.506,  Syy2 = 184, Sxy2 = 65, Sxx2 = 27.875, a2 = 54.570, b2 = 2.332,  Syy3 = 566.875, Sxy3 = 245.375, Sxx3 = 115.875, a3 = 43.131, b3 = 2.118,  组内剩余平方和: (2)检验方差齐性:由于各水平重复数均为8,误差自由度均为6。可选差异最大的和作检验: Fmax = 99.873 / 32.431 = 3.080 由于共有3组,因此a=3;各组自由度均为6,因此v=6。查Fmax,临界值表。得: Fmax, 0.05(3, 6)= 8.38 > Fmax, 可认为具有方差齐性。 (3)合并各水平的平方和及交叉乘积和: Eyy = 1238.375, Exy = 420.875, Exx = 175.25 b* = Exy / Exx = 2.402, SSe = Eyy ?= 227.615 (4)检验回归线是否平行: H0 : b1 = b2 = b3 = b* SSb = SSe ?= 48.038  查表,F0.95(2, 18) = 3.55 > F, ∴接受H0,可认为三回归线平行,即有公共回归系数b*。 (5)检验回归是否显著:H0 : β= 0  查表,F0.99(1, 20) = 8.096 < F,∴差异极显著,X与Y有极显著线性关系,应作协方差分析。 (6)把所有数据放在一起,算得: Syy = 2555.958, Sxy = 1080.75, Sxx = 720.5 (7)协方差分析:  查表,F0.99(2, 20) = 5.849 < F,∴拒绝H0,各不同饲料增重效果差异极显著。 (8)为比较各饲料好坏,计算调整平均数: 。 代入数据,得:  从调整后的数据看来,第二种饲料效果最好,第一种稍差,而第三种差得较多。但从调整前的数据看是第二种最好,第三种几乎与第二种相同,而第一种差得多。这种调整前的差异是不正确的,因为它包含了初始体重的影响。第三组初始体重明显偏大,而第一组偏小,这影响了对两种饲料的正确评价。 如果希望对各调整后的平均数据作统计比较,可用公式计算它们的样本方差:(分别记为)。  自由度均为20。 先比较和:  查表,得:t0.979(20) = 2.086,t0.995(20) = 2.845 ∴差异已接近显著水平,但仍未达到。故应认为第二种饲料近似地与第一种相同。 再比较和:  ∴差异极显著。第三种饲料极明显地差于第一种。由于第二种平均值大于第一种,方差小于第一种,故第二种与第三种的差异更大。即第三种极明显地差于其他两种。 注意由于MSe是用全部数据算出的公共的误差估计,其自由度为20,因此的子样方差为 , 自由度仍应为20,而不是40。 作业 6.1 为使小麦变矮,增强抗倒伏力,喷洒了三种药物。X为喷药前株高,Y为喷后株高。 药物1 X 29 31 33 33 37 40   Y 112 106 115 117 120 117  药物2 X 40 41 43 46 48 49   Y 112 106 110 117 121 114  药物3 X 33 34 37 37 41 42   Y 107 112 117 109 120 116  先作单因素方差分析,再作协方差分析,并对结果加以比较。 6.2 为比较三头公牛后代产奶量,收集以下数据:y为头胎产奶量,x为产奶期间的平均体重。请进行统计检验。 公牛  女儿1 女儿2 女儿3 女儿4 女儿5 女儿6 女儿7  A x 364 368 397 317 348 407 319   y 4370 4720 5310 3340 4360 5560 3360  B x 344 330 336 352 267 315    y 2990 3820 4200 4490 3740 3920   C x 377 325 324 347 324     y 4700 5010 4160 3870 5510