python的数据正态性检验
- 5.代码实现
对数据正态性进行检验,原假设H0:样本数据服从正态分布。
是一种
Shapiro-Wilk test
,The Shapiro-Wilk test tests the null hypothesis(零假设) that the data was drawn from a normal distribution。
适用于小样本数据,只能检查正态分布。
s,p=(x)
返回值s为检验统计量,p为p值,当p值大于指定的显著性水平,则接受原假设。
statistic,p=(a, axis=0, nan_policy='propagate')
参数介绍:axis
:默认为0,根据哪一维度进行检验。axis=None 表示对整个数据做检验。nan_policy
:当输入的数据中有nan时,‘propagate’,返回空值;‘raise’ ,抛出错误;‘omit’ 时,忽略空值。
返回值中,第一个是统计量,第二个是P值。
是一种K-S检验。它不局限于正态检验,可以检验多种分布。
statistic,p=(rvs, cdf, args=(), N=20, alternative='two-sided', mode='approx')
参数介绍:rvs
:待检验数据。cdf
:检验分布,例如’norm’,‘expon’,‘rayleigh’,'gamma’等分布,设置为’norm’时表示正态分布。alternative
:默认为双侧检验,可以设置为’less’或’greater’作单侧检验。model
:定义用于计算p值的分布,‘approx’(默认值),表示使用检验统计量的精确分布的近似值;‘asymp’:使用检验统计量的渐进分布。
返回值中,第一个为统计量,第二个为P值。
不局限于正态检验,可以检验多种分布(正态分布、指数分布、logistic 或者 Gumbel等分布)。
statistic,critical_values,significance_level=(x, dist='norm')
参数介绍:x
:样本数据dist
:要检验的分布
返回值中,第一个表示统计值,第二个表示评价值,第三个是显著性水平;评价值和显著性水平对应,不同分布显著性水平不同。
结果说明:当统计值大于评价值时,表示在对应显著性水平下,拒绝原假设。
5.代码实现
import numpy as np
from scipy import stats
b = (0, 10, 100)
# Shapiro-Wilk test
s,p = (b)
print(s,p)
# kstest
s,p = (b, 'norm')
print(s,p)
# normaltest
s,p = (b)
print(s,p)
# Anderson-Darling test
s,c,p = (b,dist='norm')
print(s,c,p)