ks检验与s-w检验_数据分析基础(2)——正态分布检验

ks检验与s-w检验_数据分析基础(2)——正态分布检验#寻真知派#如上⼀篇⽂章所述,样本所属总体服从正态分布是数据分析和数据挖掘等数据处理的重要前提。如果我们采集的样本并不能确认其总体是否服从正态分布,那么数据处理的结果就是不可靠的。因此,对样本数据进⾏正态分布检验⼗分必要。常⽤的正态分布检验⽅法有以下⼏种:
1.基于偏度和峰度的假设检验
基于偏度-峰度的检验是利⽤了正态分布偏度(3阶矩)和峰度(4阶矩)都为0的特点。
如果样本数据能满⾜偏度和峰度均为0的假设,则可以认为总体服从正态分布。由于该检验是基于偏度检验和峰度检验的,样本数量需要8个以上。以下normaltest函数就使⽤该原理进⾏正态分布检验。
北邮iptvaltest(X)
该函数输出两个结果,第⼀个为检验统计量,第⼆个为p值。如果p值⼤于0.05(常⽤显著⽔平)即可认定总体服从正态分布。
使⽤偏度和峰度拟合优度检验的还有Jarque–Bera检验法。其统计量为
怎样学好化学
S为偏度,K为峰度,n为样本数或⾃由度
同样,Jarque–Bera检验样本数量也需要8个以上。其使⽤⽅法如下:
scipy.stats.self_JBtest(X)
火烧赤壁缩写该函数输出两个结果,第⼀个为检验统计量,第⼆个为p值。如果p值⼤于0.05(常⽤显著⽔平)即可认定总体服从正态分布。
2.Kolmogorov-Smirnov检验
Kolmogorov-Smirnov检验⽤于⽐较⼀个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验⽅法。其原假设H0:两个数据分布⼀致或者数据符合理论分布。D=max| f(x)- g(x)|,当实际观测值D>D(n,α)则拒绝H0,否则则接受H0假设。D(n,α)为⾃由度为n,显著⽔平为α时的统计量阈值。
K-S检验原理
KS检验与其他⽅法不同是KS检验不需要知道数据的分布情况,是⼀种⾮参数检验⽅法,理论上可以检验任何⼀种分布情况(不限于正态分布检验)。当然付出的代价就是灵敏度没有专门针对某种分布的检验⽅法⾼(⽐如上⾯的normaltest)。另外,由于⼤多数KS检验软件在实现是都⽤⼤样本近似公式,因此KS算法更适合⼤样本(300以上)检验。
以下⽅法就是使⽤KS检验进⾏正态分布检验:
中国邮政华为合作kstest(X,"norm")
该函数输出两个结果,第⼀个为检验统计量,第⼆个为p值。如果p值⼤于0.05(常⽤显著⽔平)即可认定总体服从正态分布。
顺便说⼀下,Kolmogorov⼤神在统计学界可是个⾥程碑式的⼈,1933年,他出版了《概率论基础》⼀书,建⽴了概率论公理结论,这是⼀部具有划时代意义的巨著,困扰统计学界⼏百年的概率论基本定义的问题得以解决。当然他的贡献涉及到数学的所有领域,可以说是20世纪最杰出的、最有影响的数学家之⼀。
柯尔莫果洛夫 (Andrey Nikolaevich Kolmogorov,1903.4.25-1987.10.20)
3.Shapiro-Wilk检验
Shapiro-Wilk检验由S.S.Shapiro与M.B.Wilk提出,常简称为Shapiro检验(偶被称为W检验),专⽤于正态分布检验(8该⽅法将样本顺序编排,然后根据以下公式计算统计量W的值,该值越接近于1,且显著⽔平⼤于0.05时,就可以接受样本所属总体服从正态分布的假设。
以下⽅法就是使⽤Shapiro检验进⾏正态分布检验:
scipy.stats.shapiro(X)
该函数输出两个结果,第⼀个为检验统计量,第⼆个为p值。如果p值⼤于0.05(常⽤显著⽔平)即可认定总体服从正态分布。
4.Anderson-Darling检验
Anderson-Darling检验,简称Anderson检验。可以检验样本数据是否服从'norm', 'expon', 'gumbel', 'extreme1' or 'logistic'分布,是KS检验的增强版,也是⼀种⾮参数检验。适合于⼤样本(⼤于300)的总体分布检验。与KS检验相⽐,Anderson检验度量经验累积概率和理论累积概率之差的⽅法显得更加⾃然,考虑了所有的差异点,⽽不是像K-S检验那样只考虑⼀个最⼤的。下⾯的公式就是其⽅法:
以下⽅法使⽤Anderson检验进⾏正态分布检验:
scipy.stats.anderson(x, dist='norm')
其输出结果较为复杂,如:
AndersonResult(statistic=0.68097695613924714,
critical_values=array([ 0.555, 0.632, 0.759, 0.885, 1.053]),
significance_level=array([ 15. , 10. , 5. , 2.5, 1. ]))
第⼀个值为统计量,第三个值为显著⽔平百分数,第⼆个值为不同显著⽔平下的阈值。如果统计量⼩于某项阈值,则表⽰在对应显著⽔平下可以判定总体服从正态分布。
如上例,说明在0.05,0.025,0.01⽔平下,可以判定总体服从正态分布,⽽0.15,0.1显著⽔平下,不能确定总体是否服从正态分布。5.lilliefors检验
Lilliefors检验将KS检验改进为专门的正态分布检验。它⽤样本均值和标准差代替总体均值和标准差,来估计样本的总体是否服从这两个参数确定的正态分布,这就是所谓的Lilliefors正态性检验。在很多统计软件中通常采⽤这种⽅法。由于该检验⽅法基于KS检验,因此可⽤于较⼤样本的正态性分析(样本数量50以上300以内)。
以下⽅法使⽤Lilliefors检验进⾏正态分布检验:
statsmodels.stats.diagnostic.lilliefors(X)
该函数输出两个结果,第⼀个为检验统计量,第⼆个为p值。如果p值⼤于0.05(常⽤显著⽔平)即可认定总体服从正态分布。
6.Ryan-Joiner 检验
Ryan-Joiner检验通过计算数据与数据的正态分值之间的相关性来评估正态性。如果相关系数接近 1,则总体就很有可能呈正态分布。Ryan-Joiner 统计量可以评估这种相关性的强度;如果它未达到适当的临界值,您将否定总体呈正态分布的原假设。此检验类似于
Shapiro-Wilk 正态性检验。
日本海啸预警Ryan-Joiner检验统计量
该检验⽬前笔者还没有到python版的软件包,⽇后到再介绍给⼤家。
7.QQ图可视化检验
QQ图通过把测试样本数据的分位数与已知分布相⽐较,从⽽来检验数据的分布情况。利⽤QQ图鉴别样本数据是否近似于正态分布,只需看QQ图上的点是否近似地聚集在⼀条斜率为正的直线附近。如果是则说明是正态分布,该直线的斜率为标准差,截距为均值。绘图原理参看下图。
QQ图绘制过程
高弹性联轴器
以下⽅法可以根据样本数据绘制qq图。
import statsmodels.api as sm import pylab sm.qqplot(X, line='s') pylab.show()
散点集中在对⾓线附近,可接受样本整体服从正态分布
⽤以下⽅法同样可以绘制QQ图。
import matplotlib.pyplot as pltimport scipy.stats as statsstats.probplot(X, dist="norm", plot=plt)plt.show() #技术技能超级玩家#

本文发布于:2024-09-23 19:16:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/295766.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:检验   正态分布   样本   总体   服从   数据   统计
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议