【3.2.1】F检验(方差齐性检验, ANOVA )

F检验又叫方差齐性检验。在两样本t检验中要用到F检验。

统计中我们也常常需要对多组数据的方差齐性进行检验,作为选择合适统计学方法的重要指标之一。方差齐性检验即两组或多个总体之间的方差进行齐性检验,可以理解为检验多组数据间的离散程度的大小,反应在频数直方分布图为曲线的胖瘦程度不一。

还是用身高的栗子来说一下。若大多数人的身高与平均身高相差不大,则该组数据离散趋势小,我们可以说方差齐性大,即为下图曲线瘦的情况。反之,大多数人身高与平均身高相差大时,则方差越不齐,曲线越胖。

我们常用的方差齐性检验为F检验,具体可通过SPSS或其他软件得到P值,再查相应的F界值表可得到该组数据方差是否齐。

从两研究总体中随机抽取样本,要对这两个样本进行比较的时候,首先要判断两总体方差是否相同,即方差齐性。

  • 若两总体方差相等,则直接用t检验
  • 若不等,可采用t’检验或变量变换或秩和检验等方法。
  • 其中要判断两总体方差是否相等,就可以用F检验。

简单的说就是 检验两个样本的方差是否有显著性差异,这是选择何种T检验(等方差双样本检验,异方差双样本检验)的前提条件。

F检验法是英国统计学家Fisher提出的,主要通过比较两组数据的方差 S^2,以确定他们的精密度是否有显著性差异。至于两组数据之间是否存在系统误差,则在进行F检验并确定它们的精密度没有显著性差异之后,再进行t检验。

样本标准偏差的平方,即(“^2”是表示平方):

S^2=∑(X-X平均)^2/(n-1)

两组数据就能得到两个S^2值,S大^2和S小^2

F=S大^2/S小^2

由表中f大和f小(f为自由度n-1),查得F表,

然后计算的F值与查表得到的F表值比较,如果

  • F < F表 表明两组数据没有显著差异;
  • F ≥ F表 表明两组数据存在显著差异

一、方差分析的基本思想

1. 概述

方差分析(analysis of variance, ANOVA):

用于两个或两个以上样本均数的比较,还可分析两个或多个研究因素的交互作用以及回归方程的线性假设检验等。

基本思想:

  • 把全部观察值间的变异 —— 总变异按设计和需要分解成两个或多个组成部分,再作分析。

  • 首先将总变异(SS)分解为组间变异(SS组间),也叫处理变异和组内变异(SS组间)也叫误差变异,然后比较两者的平均变异MS组间和MS组内,比较时采用两者的比值F值,即:

F = MS 组间 / MS组内

2.例子

例1:为研究钙离子对体重的影响作用,某研究者将36只 肥胖模型大白鼠随机等分为三组,每组12只,分别给予 高脂正常剂量钙(0.5%)、高脂中剂量钙(1.0%)和高脂高 剂量钙(1.5%)三种不同的饲料,喂养9周,测其喂养前后 体重的差值。问三个组不同喂养方式下大白鼠体重的改变是否不同?

总变异:反映全部个体之间总的变异情况。

$$SS_{总} = \sum _{i} \sum_{j}\left(X_{ij} - \bar X \right)^{2}$$ v = N-1

组内变异

反映各组内个体间的差异,体现为每组的原始数据与该组均数的差异,因此可以认为是随机误差,又称误差变异。

$$SS_{组内} = \sum_{i}\sum_{j}\left(X_{ij} - \bar X_{i} \right)^2 = \sum_{i}\left(n_{i}\right)S_{i}^{2} $$

MS组内 = SS组内 , v组内 v组内 = v2 = N-k

组间变异:

反映各组间均数的差异,即各组间均数与总 的均数的差异,该变异除随机误差外,有可能存在处理因素的作用。

$$ SS_{组间} = \sum_{i}n_{i}\left(\bar X _{i} - \bar X \right) ^{2}$$

MS组间 = SS组间 / v组间 , v组间 = v1 = k-1

3.方差分析的基本思想

  • H0: μ1 =μ2 =… = μk
  • H1: 至少有两个总体均数不相等

在本例中,若三组饲料的处理效应相同,则组间变异应与组内变异一样,只反映随机误差的作用大小。

F = MS组间 / MS组内

如果三个总体均数相等,F 的数值不会太大。相反,如果的数值过大,“三个总体均数 相等”这个假设就值得怀疑了。

总离均差平方和分解为组间离均差平方和组内离均差平方和:

SS = SS组内 +SS组间

相应的总自由度分解为组间自由度和组内自由度。

v总 = v组间 +v组内

表2 例1资料的方差分析表

变异来源 SS df MS F P
总变异 47758.32 35 - - -
组间(处理组间) 31291.67 2 15645.83 31.36 <0.001
组内(误差) 16466.65 33 498.99 - -

总结:

  1. 方差分析常用于两个及两个以上独立样本均数的比较,当用于两个均数的比较时,同一资料所得结果与t检验等价,且有如下关系: t2 = F
  2. 方差分析的基本思想是把全部数据的总的离均差平方和(SS )分解成若干部分,其总自由度(v总)也作相应的分解。

二、完全随机与随机区组设计资料的方差分析

2.1 完全随机设计

完全随机设计(completely randomized design): 是将同质的受试对象随机地分配到各处理组,再观察其 实验效应。

完全随机设计是最常见的研究单因素两水平或多水平的实验设计方法,属单向方差分析(one­way ANOVA)。

完全随机设计资料方差分析的一般步骤

以上一节的例1为例

(1)建立检验假设,确定检验水准

H0 : 三组不同喂养方式下大白鼠体重改变的总体平均水 平相同。
H1 : 三组不同喂养方式下大白鼠体重改变的总体平均水平 不全相同。
a = 0.05

(2)计算检验统计量

表1 例1资料的方差分析表

变异来源 SS df MS F P
总变异 47758.32 35
组间(处理组间) 31291.67 2 15645.83 31.36 <0.001
组内(误差) 16466.65 33 498.99

(3) 确定P值并作出推断结论

查F界值表,得F0.05(2,32)=3.29,F0.0(12,32)=5.34 。

由F = 31.36 ,查表得到P < 0.01。按 a = 0.05 水准,差别 有统计学意义,可以认为三组不同喂养方式下大白鼠体重 改变的总体平均水平不全相同,即三个总体均数中至少有 两个不等。

2.2 随机区组设计资料方差分析

随机区组设计(randomized block design) :又称配伍组设计,通常是将受试对象按性质(如动物的 窝别、体重等非实验因素)相同或相近者组成b个区组(配 伍组),每个区组中的受试对象分别随机分配到k个处理 组中去。

例2 为探索丹参对肢体缺血再灌注损伤的影响,将30只纯种 新西兰实验用大白兔,按窝别相同分为10个区组。每个区 组的3只大白兔随机接受三种不同的处理,即在松止血带前 分别给予丹参2ml/kg、丹参1ml/kg、生理盐水2ml/kg,并分 别测定松止血带前及松后1小时后血中白蛋白含量(g/L),算 出白蛋白的减少量如表2所示。问三种处理效果是否不同?

随机区组设计方差分析的总变异可以分为处理的变异、区组的变异和误差三部分。

SS总 = SS处理 + SS区组 + SS误差 v总 = v处理 + v区组 + v误差

随机区组设计资料方差分析的一般步骤

以例2为例

(1)建立检验假设,确定检验水准

对于处理组:

H0 : 三个处理组总体均数相等。
H1 : 三个处理组总体均数不全相等。
a = 0.05

对于区组:

H0 :十个区组总体均数相等。
H1 : 十个区组总体均数不全相等。
a = 0.05

(2)计算检验统计量

表3 例2资料的方差分析表

变异来源 SS df MS F P
总变异 19.0385 29
处理组 13.7018 2 6.8509 32.639 <0.001
区组 1.5577 9 0.1731 0.825 >0.05
误差 3.7790 18 0.2099

(3)确定P值并作出推断结论

计算出处理和区组的F值,并根据相应的自由度查。F界值表得出P值。对于处理组,P < 0.01,拒绝H0 ,可 认为三种不同的处理效果不同,即三个总体均数中至少 有两个不相同。

对于区组, P >0.05,不能拒绝H0 ,即尚不能认为 十个区组的总体均数不同。

三、多个样本均数的两两比较

  1. 在研究设计阶段未预先考虑或预料到,经假设检验得出 多个总体均数不全等的提示后,才决定进行多个均数的两两事后比较。这类情况常用于探索性研究,往往涉及到全 部 均 数 两 两 之 间 进 行 比 较 , 可 采 用 SNK(Students­ Newman­Keuls) 法、Bonferroni 法等。

  2. 在设计阶段就根据研究目的或专业知识而计划好的某些 均数间的两两比较。

它常用于事先有明确假设的证实性研究,如多个处理 组与对照组的比较,某一对或某几对在专业上有特殊意义的均数间的比较等,可采用Dunnett检验、LSD­t检验,也 可用Bonferroni 法。

  • SNK法: 属于多重极差检验,用于每两个均数间的比较。
  • Bonferroni法:若每次检验水准为a' ,共进行m次比较,若当H0 为真时,犯第一类错误的累积概率 a 不超过 ma' ,也即a' = a / m 。此方法较为保守,检验功效低于SNK法。
  • Dunnett法:又称Dunnett–t 检验,适用于k–1个实验组与 对照组均数的比较。

SNK法(又称q检验)

例3 请对第二节例1资料喂养9周后体重差值的三组总体均数进行两两比较。

(1)建立检验假设,确定检验水准

H0 :µA = µB ,即两对比组的总体均数相等。
H1 :µA ≠ µB ,即两对比组的总体均数不等。
α =0.05

(3)确定P 值,下结论:

以组内自由度 v组内 =33(本例取30)和对比 组内包含组数 α 查 q 界值表,得q(0.05,30)和q(0.01,30) 的界值如表1所示。

按 α = 0.05水准,组次 2 和 3(即中剂量钙 1.0%与高 剂量钙 1.5%)不拒绝 H0,差别无统计学意义,还不能认 为这两种剂量钙喂养9周前后体重差值不同。

其他两两组间均拒绝 H0,差别有统计学意义,说明中、 高剂量钙与正常钙喂养9周前后体重差值不同。

Dunnett 法(又称 Dunnett­t 检验)

例4 对第二节例2资料,问两种不同剂量丹参浓度分别与生 理盐水对照组比较其总体均数是否不同?

(1)建立检验假设,确定检验水准

H0 :µT =µC , 即试验组与对照组的总体均数相等。 
H1 :µT ≠µC , 即试验组与对照组的总体均数不等。 
α =0.05

(3)确定P值并作出推断结论:

根据自由度 v误差=18,试验组数 α = k­ - 1 =2 (不含对照组)

查Dunnett­t界值表。

按 α =0.05水准,丹参2ml/kg 与生理盐水组、丹参 1ml/kg与生理盐水组均拒绝H0,差别有统计学意义,可以 认为两组试验组与对照组相比较大白兔血中白蛋白的减 少量不同。

Bonferroni法

例5 对例1资料,使用Bonferroni法对分别给予组1(高脂正常剂量 钙0.5%)、组2(高脂中剂量钙1.0%)和组3(高脂高剂量钙1.5%)三种 不同的饲料,喂养9周后体重差值的三组总体均数进行两两比较。

(1)建立检验假设,确定检验水准

H0 :µA = µB,即两对比组的总体均数相等。 
H1 :µA ≠ µB,即两对比组的总体均数不等
α ’ =  α /m == 0.05/3 = 0.0167

(3)确定P值并作出推断结论:

按照 α' = 0.0167 的水准,组2与组3差别无统计学意义, 其他两两组间差别有统计学意义。

四、方差分析的前提条件和数据变换

4.1 方差分析的前提条件

理论上讲,进行方差分析的数据应满足如下两个基本假设:

  1. 各样本是相互独立的随机样本,均服从正态分布;
  2. 各样本的总体方差相等,即方差齐性。

4.2 方差齐性检验的主要方法:

Bartlett x2检验:资料服从正态分布的多个总体方差齐 性检验的方法 。

Levene检验:资料是任意分布时的方差齐性检验法,既可用于检验两总体方差齐性,也可用于检验多个总体的方差 齐性。

4.3 方差齐性检验的基本步骤:(以例1为例)

(1)建立检验假设,确定检验水准

Ho : σ21 = σ22 =σ23 即三个总体方差全相等。 H1 : 三个总体方差不全相等。 α = 0.10

(2)计算检验统计量

(3)确定P值并作出推断结论

以自由度ν=2,查x2界值表,得0.50<P<0.75。按 α = 0.1,不能拒绝H0 ,差异无统计学意义,尚不能认为三个总体方差不齐。

考察前提条件的残差图法

残差的计算公式:

完全随机设计资料: $$ e_{ij} = X_{ij} - \bar X_{i}$$ 随机区组设计资料: $$e_{ij} = X_{ij} - \bar X _{i} - \bar X_{j} + \bar X$$

4.4 数据变换

对于一些明显偏离正态性和方差齐性条件的资料,可 以通过某种形式的数据变换使之满足方差分析、t 检验或 其它统计方法对资料的要求。

所谓数据变换(data transformations),即对原始数据 作某种函数变换,它虽然改变了资料分布的形式,但未改 变各组资料间的关系,其缺点是分析结果的解释欠直观

常用的数据变换方法有

1.对数变换(logarithmic transformation) :将原始数据取自 然对数或常用对数。其变换公式为

X' = ln( X + a )

a 为零或正数

该变换适用于:

  1. 对数正态分布资料,如抗体滴度资料,疾病潜伏期等。

  2. 标准差与均数成比例,或变异系数接近甚至等于某一常数 的资料。

  3. 平方根变换(square root transformation) :

将原始数据开算术平方根。 其变换公式为:

X’= √X 或 X’= √(X +0.5)

该变换适用于方差与均数成比例的资料,如服从 Poisson分布的资料。

3.平方根反正弦变换(arcsine square root transformation), 又称角度变换:就是将原始数据开平方根再取反正弦。 其变换公式为:

X‘ = arcsin √(X)

该变换适用于百分比的数据资料

例如,X = 0.46 , 则变换为:

X‘ = arcsin √0.46 = 42.71

五、代码实现

5.1 R语言的实现

result<- aov(x~y)
summary(result)

6.1 F-Test in Python

x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55]
y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]

#define F-test function
def f_test(x, y):
    x = np.array(x)
    y = np.array(y)
    f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic 
    dfn = x.size-1 #define degrees of freedom numerator 
    dfd = y.size-1 #define degrees of freedom denominator 
    p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic 
    return f, p

#perform F-test
f_test(x, y)

(4.38712, 0.019127)

The F test statistic is 4.38712 and the corresponding p-value is 0.019127. Since this p-value is less than .05, we would reject the null hypothesis. This means we have sufficient evidence to say that the two population variances are not equal.

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn