如何在Python中执行 Kruskal-Wallis 测试
Kruskal-Wallis 检验是一种非参数检验,是单向方差分析的替代方法。我们所说的参数是指数据不假定来自特定分布。该测试的主要目的是确定至少三个独立组的中位数之间是否存在统计学差异。
假设:
Kruskal-Wallis 检验具有如下讨论的零假设和备择假设:
- 原假设 (H0):所有数据组的中位数相同。
- 备择假设:(Ha):所有数据组的中位数不相等。
逐步实施:
让我们考虑一个示例,其中研发团队想要确定使用三种不同的发动机油是否会导致汽车行驶里程的差异。该团队决定选择 15 辆相同品牌的汽车,并将它们分成三组(每组 5 辆)。现在,每组都只掺杂了一种发动机油(使用了所有三种发动机油)。然后他们被允许在同一条轨道上跑20公里,一旦他们的旅程结束,里程就会被记录下来。
第 1 步:创建 数据
第一步是创建数据。我们需要创建三个数组来保存汽车的里程数(每组一个)。
Python3
data_group1 = [7, 9, 12, 15, 21]
data_group2 = [5, 8, 14, 13, 25]
data_group3 = [6, 8, 8, 9, 5]
Python3
# Import libraries
from scipy import stats
# Defining data groups
data_group1 = [7, 9, 12, 15, 21]
data_group2 = [5, 8, 14, 13, 25]
data_group3 = [6, 8, 8, 9, 5]
# Conduct the Kruskal-Wallis Test
result = stats.kruskal(data_group1, data_group2, data_group3)
# Print the result
print(result)
第 2 步:执行 Kruskal-Wallis 检验
Python为我们提供了来自 scipy.stats 库的 kruskal()函数,我们可以使用它轻松地在Python中进行 Kruskal-Wallis 测试。
Python3
# Import libraries
from scipy import stats
# Defining data groups
data_group1 = [7, 9, 12, 15, 21]
data_group2 = [5, 8, 14, 13, 25]
data_group3 = [6, 8, 8, 9, 5]
# Conduct the Kruskal-Wallis Test
result = stats.kruskal(data_group1, data_group2, data_group3)
# Print the result
print(result)
输出:
第三步:分析结果。
在此示例中,检验统计量等于 3.492,相应的 p 值为 0.174。由于 p 值不小于 0.05,我们不能拒绝所有三组汽车的中位里程相同的原假设。因此,我们没有足够的证据表明使用不同类型的发动机油会导致汽车行驶里程出现统计学上的显着差异。