1. Kruskal-Wallis介绍

Kruskal-Wallis也称为H 检验,是一种非参数检验,不需要知道原始数据的分布和总体参数。 KW检验是一种秩和检验,根据所有数据从小到大排序,算出每个数据的秩。其中Ri为每组的秩和,ni为每组的样本个数。当每组样本中的观察数目有 5 个或 5 个以 上,则样本统计量 KWC 的分布与自由度为 k-1 的 卡方分布非常接近。因此,KW 统计量可利用卡 方分布进行检验。

kw检验Python kw检验是秩和检验吗_数据


如果样本中存在结值(数据相同秩值的个数),则校正系数C为:

kw检验Python kw检验是秩和检验吗_kw检验Python_02


参考资料:

蒲 虎.Kruskal-Wallis 检验原理介绍及其应用[J].兴义民族师范学院学报.

python实现

from scipy import stats
A=[1,3,6,9,0]
B=[3,5,1,4,11,34]
C=[1,9,5,3,0,2,4,5,7,12]
kw=stats.kruskal(A,B,C).pvalue
print(kw)

stats.kruskal 官方详细介绍:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kruskal.htmlkw检验Python kw检验是秩和检验吗_python_03

在小样本的情况下:k=3,ni<=5时,KW统计量可通过表查询得到
在大样本情况下:ni>5时,N越大,kw在零假设下近似服从自由度为(k-1)的卡方分布,因此KW 统计量可利用卡 方分布进行检验。

Kruskal-Wallis方法举例:

有三个工厂生产一种零件,各工厂生产零件的重量(g)如下:

H0: 三个工厂生产的零件重量无显著差异

H1: 三个工厂生产的零件重量有显著差异

kw检验Python kw检验是秩和检验吗_python_04


kw检验Python kw检验是秩和检验吗_数据_05


通过查卡方检验表可知,自由度为k-1=2,显著性水平为0.05的时候,卡方值为5.9915。KWC>5.9915。所以拒绝原假设,认为三组数据是有显著差异的。秩和最低的C组和秩和最低的B组是有差异的。

2.卡方检验的介绍

卡方检验是非参数检验的一种,主要比较两个或两个以上的变量之间是否有关联性。也就是在一定显著水平下比较实际次数与理论(期望)次数的差异。卡方值越大代表差异越大,卡方值为0代表实际值完全符合理论值。
H0:实际值与理论值没有显著差异。
卡方检验一般是对于无序分类变量在两组或多组之间的分布是否一致,除此之外,还有其他应用:
1.检验某种连续变量的分布是否与理论分布一致
2.检验某个分类变量的概率是否等于某个指定概率
3.检验某两个分类变量是否独立
4.检验某两种方法的结果是否一致

参考:

晋丹星.卡方检验在大学生英语期末成绩与学习方式分析中的应用[J].海外英语.

卡方检验统计量为:

kw检验Python kw检验是秩和检验吗_数据_06


其中Ai为i水平的观察频数,Ei为i水平的期望频数,n为总频数,pi为i水平的期望频率。i水平的期望频数Ei = n * pi,k为单元格数。当n比较大时,卡方统计量近似服从k-1自由度的卡方分布。

python实现

from scipy import stats
A=[1,3,6,9,0]
B=[3,5,12,54,11]
chi=stats.chisquare(A,B).pvalue
print(chi)

stats.chisquare 官方详细介绍:
http://pageperso.lif.univ-mrs.fr/~francois.denis/IAAM1/scipy-html-1.0.0/generated/scipy.stats.chisquare.html

kw检验Python kw检验是秩和检验吗_ci_07