如何用 python 执行 dunn 检验
Kruskal-Wallis 检验用于确定三个或更多独立组的中位数之间是否存在统计显着差异。它被认为是 单向方差分析的非参数等效项。
如果 Kruskal-Wallis 检验的结果具有统计显着性,则适合执行Dunn 检验来准确确定哪些组不同。
本教程介绍如何在 Python 中执行 Dunn 测试。
示例:Python 中的 Dunn 测试
研究人员想知道三种不同的肥料是否会导致不同程度的植物生长。他们随机选择 30 种不同的植物,并将它们分成三组,每组 10 株,并为每组施用不同的肥料。一个月后,他们测量了每株植物的高度。
运行 Kruskal-Wallis 检验后,他们发现总体 p 值具有统计显着性,这意味着三组的中值增长并不相同。然后他们执行 Dunn 测试来准确确定哪些组是不同的。
要在 Python 中执行 Dunn 测试,我们可以使用 scikit-posthocs 库中的posthoc_dunn()函数。
下面的代码展示了如何使用这个函数:
步骤 1:安装 scikit-posthocs。
首先我们需要安装 scikit-posthocs 库:
pip install scikit-posthocs
步骤 2:执行 Dunn 检验。
然后我们可以创建数据并执行 Dunn 测试:
#specify the growth of the 10 plants in each group group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8] group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8] group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9] data = [group1, group2, group3] #perform Dunn's test using a Bonferonni correction for the p-values import scikit_posthocs as sp sp. posthoc_dunn (data, p_adjust = ' bonferroni ') 1 2 3 1 1.000000 0.550846 0.718451 2 0.550846 1.000000 0.036633 3 0.718451 0.036633 1.000000
请注意,我们选择对 p 值使用 Bonferroni 校正来控制族误差率,但p_adjust参数的其他潜在选择包括:
- 西达克
- 霍尔姆-西达克
- 西姆斯霍赫贝格
- 曼尔
- fdr_bh
- fdr_by
- fdr_tsbh
有关每种 p 值调整方法的更多详细信息,请参阅文档。
第 3 步:解释结果。
从 Dunn 检验的结果中,我们可以观察到以下几点:
- 第 1 组和第 2 组之间差异的调整后 p 值为0.550846 。
- 第 1 组和第 3 组之间差异的调整 p 值为0.718451 。
- 第 2 组和第 3 组之间差异的调整 p 值为0.036633 。
因此,只有第 2 组和第 3 组在 α = 0.05 时具有统计显着差异。