Python正态检验
https://blog.csdn.net/cyan_soul/article/details/81236124
https://blog.csdn.net/QimaoRyan/article/details/72861387
官方文档:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.kstest.html
scipy.stats.kstest
from scipy import stats
kstest(rvs, cdf, args=(), N=20, alternative=’two_sided’, mode=’approx’, **kwds)
from scipy import stats
stats.kstest(df['value'], 'norm', (u, std))
# 结果返回两个值:statistic → D值,pvalue → P值
# p值大于0.05,很可能为正态分布
rvs:待检验的数据
cdf:检验方法,这里我们设置为‘norm’,即正态性检验
alternative:默认为双尾检验,可以设置为‘less’或‘greater’作单尾检验
scipy.stats.normaltest
scipy.stats.normaltest(a, axis=0, nan_policy=’propagate’)
a:待检验的数据,至少8个
axis:默认为0,表示在0轴上检验,即对数据的每一行做正态性检验,我们可以设置为 axis=None 来对整个数据做检验
nan_policy:当输入的数据中有空值时的处理办法。默认为 ‘propagate’,返回空值;设置为 ‘raise’ 时,抛出错误;设置为 ‘omit’ 时,在计算中忽略空值。
scipy.stats.anderson
anderson 是修改版的 kstest,说是增强版也不为过。也可以做多种分布的检验,默认的检验时正态性检验。
scipy.stats.anderson(x, dist=’norm’)
anderson 有三个输出值,第一个为统计数,第二个为评判值,第三个为显著性水平, 评判值与显著性水平对应
对于正态性检验,显著性水平为:15%, 10%, 5%, 2.5%, 1%
scipy.stats.shapiro
from scipy.stats import shapiro
test_shapiro = shapiro(s['value'])
注:至少输入3个数据,样本量大于5000时可能不准