单因素方差分析(One-Way ANOVA)详解

单因素方差分析(One-Way ANOVA)详解

单因素方差分析(One-Way ANOVA)详解

1. 单因素方差分析的定义和用途

单因素方差分析(One-Way ANOVA)是一种统计方法,用于比较三个或更多总体的均值,以确定这些均值是否在统计上相等或至少有一个均值与其他均值不同。例如,医学研究人员可能想要比较三种不同的止痛药,以比较它们缓解偏头痛的平均时间。

注意:方差分析的核心思想是将总变异分解为组间变异和组内变异,通过比较这两部分变异的大小来判断各组均值是否存在显著差异。

2. 假设检验的步骤和假设

对于单因素方差分析假设检验,我们将遵循假设检验的一般步骤:

1
写出零假设和备择假设
2
确定显著性水平
3
计算检验统计量
4
确定p值
5
做出统计决策
6
解释结果

假设陈述

对于单因素方差分析,零假设和备择假设总是如下所述:

H0: 所有总体均值相等:µ123=…
Ha: 至少有一个总体均值与其他均值不同

3. 使用单因素方差分析的条件

使用单因素方差分析需要满足以下条件:

check_circle 样本是随机的,并且选自近似正态分布的总体
check_circle 样本相互独立
check_circle 总体方差近似相等

注意:在本讨论中,我们假设总体方差不相等。当这些条件满足时,F分布被用作进行假设检验的基础。

4. F分布的介绍

F分布是一个右偏分布(向右偏斜),分布的形状取决于两个不同的自由度,分别称为分子自由度和分母自由度。F分布的典型形状是右偏的,随着自由度的增加,分布逐渐变得更加对称。

该假设检验的检验统计量将是两个方差的比率,即样本间方差与样本内方差的比率。

检验统计量 = 样本间方差 / 样本内方差

检验统计量的分子(样本间方差)有时被称为由于处理或解释变异引起的变异。

检验统计量的分母(样本内方差)有时被称为由于误差或未解释变异引起的变异。

5. 手动计算检验统计量的详细步骤

为了进行单因素方差分析,我们需要按照以下步骤计算检验统计量。为便于说明,我们假设正在比较三个均值,但请记住,ANOVA方法可以应用于三个或更多均值。

1
找出三个样本中每个样本的均值。将这些均值标记为1, x̄2, x̄3。找出三个样本中每个样本的方差。将这些方差标记为s12, s22, s32
2
找出总均值(标记为=)。这是三个样本中所有数据值的总和除以总样本大小。
3
根据以下公式计算称为”组间平方和(SSB)”的量:
SSB = n1(x̄1-x̄=)2 + n2(x̄2-x̄=)2 + n3(x̄3-x̄=)2
4
根据以下公式计算称为”组内平方和(SSW)”的量:
SSW = (n1-1)s12 + (n2-1)s22 + (n3-1)s32
5
计算分子自由度(dfn)和分母自由度(dfd)。

对于分子自由度,计算为组数减1。例如,如果医学研究人员正在比较三种不同的止痛药以比较它们缓解偏头痛的平均时间,那么有三个组,因此分子自由度为3-1=2。

对于分母自由度,计算为总样本大小减去组数。

6
根据以下公式计算称为”组间均方(MSB)”的量:
MSB = SSB / dfn
7
根据以下公式计算称为”组内均方(MSW)”的量:
MSW = SSW / dfd
8
根据以下公式计算检验统计量(F. :
F = MSB / MSW

一旦获得检验统计量,p值计算为F分布曲线下检验统计量右侧的面积(注意,ANOVA假设检验总是被视为”右尾”检验)。

6. ANOVA汇总表的结构

通常,这些计算的结果组织在一个ANOVA汇总表中,如下表所示:

变异来源 平方和 自由度 均方 F检验统计量 p值
组间 SSB dfn MSB MSB/MSW F检验统计量右侧的面积
组内 SSW dfd MSW N/A N/A

7. 使用Python进行单因素方差分析

如前所述,由于这些计算的复杂性,通常使用技术来计算检验统计量和p值。

使用Python,scipy库提供了f_oneway()函数,该函数为单因素方差分析假设检验提供检验统计量和p值。

语法是用数据数组作为参数调用函数,如下所示:

from scipy.stats import f_oneway # 调用函数 f_statistic, p_value = f_oneway(Array1, Array2, Array3, …) # 输出结果 print(“F统计量:”, f_statistic) print(“p值:”, p_value)

该函数返回单因素方差分析假设检验的F检验统计量和p值。

8. 示例分析:航空公司延误时间比较

下面是一个逐步示例,说明这个ANOVA假设检验过程。

问题

一位航空公司经理声称,从波士顿到达拉斯的航班平均延误时间对于三家航空公司是相同的:航空公司A. B和C。以下是从三家航空公司的航班样本中收集的到达延误数据(以分钟为单位):

航空公司A 航空公司B 航空公司C
8 13 11
12 0 15
7 2 9
9 7 11
11 6 12
4 5 N/A

使用此样本数据检验三家航空公司A. B和C的平均到达延误时间相同的假设。使用0.05的显著性水平进行分析。假设样本是独立的,取自近似正态分布的总体,并且每个总体具有近似相同的方差。

解决方案

1
写出零假设和备择假设:
H0: µA = µB = µC(所有航空公司的平均延误时间相等)
Ha: 至少有一个航空公司的平均延误时间与其他航空公司不同
2
确定显著性水平:α = 0.05
3
计算每个样本的均值和方差:

航空公司A. nA = 6,x̄A = 8.5,sA2 = 8.7

航空公司B. nB = 6,x̄B = 5.5,sB2 = 16.3

航空公司C. nC = 5,x̄C = 11.6,sC2 = 4.3

4
计算总均值:x̄= = (8.5×6 + 5.5×6 + 11.6×5) / (6+6+5) = 8.3
5
计算组间平方和(SSB):
SSB = 6(8.5-8.3)2 + 6(5.5-8.3)2 + 5(11.6-8.3)2 = 90.3
6
计算组内平方和(SSW):
SSW = (6-1)×8.7 + (6-1)×16.3 + (5-1)×4.3 = 133.9
7
计算自由度:

分子自由度:dfn = 3-1 = 2

分母自由度:dfd = (6+6+5)-3 = 14

8
计算组间均方(MSB)和组内均方(MSW):
MSB = SSB / dfn = 90.3 / 2 = 45.15
MSW = SSW / dfd = 133.9 / 14 = 9.56
9
计算F检验统计量:
F = MSB / MSW = 45.15 / 9.56 = 4.72
10
确定p值:对于F(2,14) = 4.72,p值 ≈ 0.026
11
做出统计决策:由于p值(0.026) < α(0.05),我们拒绝零假设。
12
解释结果:有足够的证据表明,至少有一家航空公司的平均到达延误时间与其他航空公司不同。

使用Python进行计算

from scipy.stats import f_oneway # 定义数据 airline_a = [8, 12, 7, 9, 11, 4] airline_b = [13, 0, 2, 7, 6, 5] airline_c = [11, 15, 9, 11, 12] # 执行单因素方差分析 f_statistic, p_value = f_oneway(airline_a, airline_b, airline_c) # 输出结果 print(“F统计量:”, f_statistic) print(“p值:”, p_value) # 做出决策 alpha = 0.05 if p_value < alpha: print(“拒绝零假设:至少有一家航空公司的平均延误时间与其他航空公司不同”) else: print(“无法拒绝零假设:所有航空公司的平均延误时间相同”)

结论:通过单因素方差分析,我们发现三家航空公司的平均到达延误时间存在显著差异。这表明航空公司经理的声称不成立,至少有一家航空公司的平均延误时间与其他航空公司不同。

发表评论

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 知差(chai)网 🐾 DeepracticeX 社区 🐾 老薛主机 🐾