如何在Python中进行邓恩氏检验

如何在Python中进行邓恩氏检验

如果Kruskal-Wallis检验产生了具有统计学意义的结果,应使用Dunn检验来确定哪些组是不同的。在你的方差分析显示三个或更多的平均值有明显的差异后,你可以应用邓恩检验来确定哪些特定的平均值与其他的不同。Dunn’s Multiple Comparison Test是一种非参数性的事后检验,它不假定你的数据来自某种分布。

为了进行duns测试,用户需要调用scikit-posthocs库中的posthoc_dunn()函数。

posthoc_dunn() 函数:

语法:

scikit_posthocs.posthoc_dunn(a, val_col: str = None, group_col: str = None, p_adjust: str = None, sort: bool = True)

参数:

  • a : 它是一个数组类型的对象或一个数据框架对象或系列。
  • group_col : 预测变量或因变量的列
  • p_adjust:P值可以用这个方法来调整。它是一个字符串类型,可能的值是 :
    • ‘bonferroni’
    • hommel
    • holm-sidak
    • holm
    • simes-hochberg

安装posthocs库的语法:

pip install scikit-posthocs

这是一个假设检验,两个假设如下:

  • 无效假设。给定的样本有相同的中位数
  • 替代假说。给定的样本有一个不同的中位数。

在这个例子中,我们导入软件包,读取鸢尾花的CSV文件,并使用posthoc_dunn()函数进行dunns测试。dunn测试是针对三种植物的萼片宽度进行的。

# importing packages and modules
import pandas as pd
import scikit_posthocs as sp
 
# reading CSV file
dataset= pd.read_csv('iris.csv')
 
# data which contains sepal width of the three species
data = [dataset[dataset['species']=="setosa"]['sepal_width'],
        dataset[dataset['species']=="versicolor"]['sepal_width'],
        dataset[dataset['species']=="virginica"]['sepal_width']]
 
# using the posthoc_dunn() function
p_values= sp.posthoc_dunn(data, p_adjust = 'holm')
 
print(p_values)

输出:

如何在Python中进行邓恩氏检验

  • 对于第1组和第2组之间的差异,调整后的P值为3.247311e-14
  • 对于第2组和第3组之间的差异,调整后的P值为1.521219e-02

我们进一步检查p_值是否高于显著性水平。假的代表两组在统计上有意义,或者拒绝了无效假设。

p_values > 0.05

输出:

如何在Python中进行邓恩氏检验

在这个例子中,我们把显著性水平定为0.05。没有两组(物种)具有统计学意义,因为没有两组的P_值超过0.05。因此,我们可以说无效假设是假的,而替代假设是真的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程