非参数检验(non-parametric test):对总体分布形式没有要求,不比较总体参数,只比较总体分布的位置是否相同,也被称为无分布方法(distribution-free method)。相对于参数检验基本只能用于数值型数据的情况,非参数检验还可以用于类别型数据。
由于很多参数检验要求总体服从正态分布,因此对于不服从正态分布的情况,统计学家想到用排序的方法来规避,用样本的排序情况来推断总体的分布情况。
将数据从小到大排序后确定的次序号称为“秩”,而这些次序号的和称为“秩和”。秩和检验就是用秩和作为统计量进行假设检验的方法。
非参数检验大多借助秩和或符号技术对原始序列进行转化,然后再用类似参数检验的手段来进行检验。
下面按用途分类,介绍几种非参数检验类型:
1,比较样本和总体的中位数是否相同,以此来检验样本和总体之间的差异性(用于此种用途的非参数检验方法即是单样本t检验的替代方法)
符号检验(Sign Test):略
例子:https://www.statisticshowto.datasciencecentral.com/one-sample-median-test/
可以用statsmodels来进行检验:
statsmodels.stats.descriptivestats.
sign_test
(samp, mu0=0)
威尔科克森符号秩检验 或 威尔科克森符号秩和检验 (Wilcoxon Signed Rank Test / Wilcoxon Signed Rank Sum Test) ):略
符号检验只利用了数据大于0或小于0的信息,即数据是正号或负号,但是对数据之间差异大小这个信息没有利用。而Wilcoxon符号秩检验既考虑正负符号,也利用差值大小,因此比符号检验更有效。
可以用scipy来进行检验:
scipy.stats.
wilcoxon
(x, y=None, zero_method=’wilcox’, correction=False, alternative=’two-sided’)
2,比较两个样本中成对观测值的差值中位数是否和假设的中位数相同(配对样本),以此来检验同一个总体经过不同处理后的差异或接受处理前后的差异(用于此种用途的非参数检验方法即是配对t检验的替代方法)
符号检验(Sign Test):将样本的成对观测值相减,然后求取差值的符号,如果正负符号的个数相差不大,那就说明两总体分布情况相同。举个例子,比如说差值的正负符号一共有10个,其中2个是正号,其余8个是负号,那就可以用二项分布来检验,相当于试验了10次,有2次成功,因为我们比较的是中位数,因此成功的概率就是0.5,那么试验10次里面成功2次的概率就是,算出来差不多是0.044(小于α=0.05),因此我们可以说两样本分布情况不同。符号检验适用于总体偏斜分布的情况。
例子:https://www.statisticshowto.datasciencecentral.com/sign-test/
可以用statsmodels来进行检验:
statsmodels.stats.descriptivestats.
sign_test
(samp, mu0=0)
威尔科克森符号秩检验 或 威尔科克森符号秩和检验 (Wilcoxon Signed Rank Test / Wilcoxon Signed Rank Sum Test) ):将样本的成对观测值相减,然后求取差值的符号和绝对值,并基于绝对值的排序等级(升序)求秩和,比较正秩和或负秩和的大小,如果正负秩和相差不大,那就说明两样本分布情况相同。当n(n+1)/2>20时,正秩和或负秩和的抽样分布近似服从正态分布,可以使用z检验来查看正秩和或负秩和的抽样均值是否和总体均值相同,其总体均值为,总体标准差为,以此计算出z值和p值来进行判断。威尔科克森符号秩检验适用于总体对称分布的情况。
例子:https://www.statisticshowto.datasciencecentral.com/wilcoxon-signed-rank-test/
可以用scipy来进行检验:
scipy.stats.
wilcoxon
(x, y=None, zero_method=’wilcox’, correction=False, alternative=’two-sided’)
3,比较两个样本的中位数是否相同(独立样本),以此来检验两个总体之间的差异性(用于此种用途的非参数检验方法即是独立样本t检验的替代方法)
曼-惠特尼U检验(Mann-Whitney U Test):也称为威尔科克森秩和检验(Wilcoxon rank-sum test),Mann-Whitney-Wilcoxon Test(MWW)或Wilcoxon-Mann-Whitney test。把两组样本混和在一起,然后基于值的排序等级(升序)分别求出两组样本的秩和,比较两组样本秩和的大小,如果相差不大,那就说明两样本分布情况相同。当n1>=7并且n2>=7时,两组样本秩和的抽样分布近似服从正态分布,可以使用z检验来查看两组秩和的抽样均值是否和总体均值相同,其总体均值为,总体标准差为,以此计算出z值和p值来进行判断。曼-惠特尼U检验可以用于数值型数据和类别型数据。
例子:https://www.statisticshowto.datasciencecentral.com/mann-whitney-u-test/
可以用scipy来进行检验:
scipy.stats.
mannwhitneyu
(x, y, use_continuity=True, alternative=None)
4,比较三个及以上样本的中位数是否相同(独立样本),以此来检验多个总体之间的差异性(用于此种用途的非参数检验方法即是单因素方差分析的替代方法)
Kruskal-Wailis检验(Kruskal-Wailis H Test):把全部样本混和在一起,然后基于值的排序等级(升序)分别求出各组样本的秩均值,如果各组样本的秩均值相差不大,那就说明这些样本分布情况相同。当每组样本的观测值数量都大于5时,检验统计量(H)的抽样分布近似服从自由度为k-1的卡方分布(k为总体个数),可以用卡方检验来查看各组样本秩和均值是否相同。H检验统计量的计算公式:,其中k:样本组数,ni:样本i中观测值的个数,n:观测值的总数,Ri:样本i的秩和。
例子:https://www.statisticshowto.datasciencecentral.com/kruskal-wallis/
可以用scipy来进行检验:
scipy.stats.
kruskal
(*args, **kwargs)
5,比较样本和总体的比率是否相同,以此来检验样本和总体之间的差异性(用于此种用途的非参数检验方法即是单样本比率检验的替代方法)
二项分布检验(Binomial Test):在大样本的情况下(np≥5,n(1-p)≥5),比率p的抽样分布近似服从正态分布,因此,可以用z检验来查看。如果不满足大样本的情况,那么就要用二项分布来检验,用和α进行比较来判断。
注:如果不是双尾检验,则需用累积分布函数。
例子:https://www.statisticshowto.datasciencecentral.com/binomial-test/
可以用scipy来进行检验:
scipy.stats.
binom_test
(x, n=None, p=0.5, alternative=’two-sided’)
此外,还有其他很多非参数检验方法,请见下图:(下图摘自:https://zhuanlan.zhihu.com/p/49472487)