对于我们得到的一组数据,我们日常生活中遇到最多的,应用范围最广的就是正态分布。如果要确定数据是否为正态分布,就要进行正态性检验。检验数据分布常用的检验方法有χ²检验,偏度-峰度检验以及夏皮罗-威尔克法较为有效。
偏度-峰度检验
随机变量X的偏度和峰度是指的是X的标准化变量[X-E(X)]/D(X)½的三阶矩和四阶矩。
(PS:关于数据的描述:随机变量的0阶矩为总概率1,1阶矩为数据的期望,2阶矩为表示方差,3阶矩表示偏度,4阶矩表示峰度)
设X1,X2,.....,Xn是来自总体X的样本,则v1,v2的矩估计量分别是,若总体X为正态变量,则可证明当n充分大时,近似的有
G1~N(0,6(n-2)/(n+1)(n+2)
G2~N(3-(6/(n+1)),24n(n-2)(n-3)/(n+1)²(n+3)(n+5)
相关正态性检验方法有K-S检验,明日再补充
KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布
相关软件包在python scipy.stats.kstest中
KS检验是基于样本累积分布函数来进行判断的。可以用于判断某个样本集是否符合某个已知分布,也可以用于检验两个样本之间的显著性差异。KS检验是基于累积分布函数的,如果要进行分布检验,以正态分布为例,首先会画出典型正态分布的累积分布图。然后绘制出数据的累积分布图,通过比较二者最大差值是否大于边界值来判断边界值和D的关系, 如果D小于边界值,则可以认为样本的分布符合已知分布,否则不可以。
除KS检验方法外,还有AD检验和W检验可以用来检测数据的分布特性:
- W检验(Shapiro-Wilk的简称)是基于两个分布的相关性来进行判断,会得出一个类似于皮尔逊相关系数的值。 值越大,说明两个分布越相关,越符合某个分布。
- AD检验是在KS基础上进行改造的,KS检验只考虑了两个分布之间差值最大的那个点,但是这容易受异常值的影响。 AD检验考虑了分布上每个点处的差值。
总结
- 经常使用的拟合优度检验和Kolmogorov-Smirnov检验的检验功效较低,在许多计算机软件的Kolmogorov-Smirnov检验无论是大小样本都用大样本近似的公式,很不精准,一般使用Shapiro-Wilk检验和Lilliefor检验。
- Kolmogorov-Smirnov检验只能检验是否一个样本来自于一个已知样本,而Lilliefor检验可以检验是否来自未知总体。
- Shapiro-Wilk(W检验)检验和Lilliefor检验都是进行大小排序后得到的,所以易受异常值的影响。见scipy.stats.shapiro
- Shapiro-Wilk检验只适用于小样本场合(3≤n≤50),其他方法的检验功效一般随样本容量的增大而增大。
- 拟合优度检验和Kolmogorov-Smirnov检验都采用实际频数和期望频数进行检验,前者既可用于连续总体,又可用于离散总体,而Kolmogorov-Smirnov检验只适用于连续和定量数据。
- 拟合优度检验的检验结果依赖于分组,而其他方法的检验结果与区间划分无关一般数据不是正态就是偏态,如果偏态不严重可以对数据取平方根来进行转换。如果偏态很严重,则可以对数据进行对数转换。转换方法在偏态文章中也有讲过。
SS 规定:当样本含量3 ≤n ≤5000 时,结果以Shapiro - Wilk (W 检验) 为准,当样本含量n > 5000 结果以Kolmogorov - Smirnov 为准。
AS 规定:当样本含量n ≤2000 时,结果以Shapiro - Wilk (W 检验) 为准,当样本含量n >2000 时,结果以Kolmogorov - Smirnov (D 检验) 为准。