您的数据是以mu = 0.07和sigma = 0.89生成的。
您正在使用平均值0和标准偏差1的正态分布来测试此数据。
零假设(H0)是您的数据是样本的分布等于标准正态分布,平均值为0,标准偏差为1。
小的p值表示将具有与D一样大的测试统计量,其概率为p值。
换句话说,(p值〜8.9e-22),H0是非常不可能的。
这是合理的,因为手段和标准偏差不匹配。
比较你的结果:
In [23]: import scipy.stats as stats
In [24]: stats.kstest(np.random.normal(0,1,10000),'norm')
Out[24]: (0.007038739782416259, 0.70477679457831155)
为了测试你的数据是高斯,你可以移动和重新调整它,所以它是正常的平均值0和标准偏差1:
data=np.random.normal(mu,sigma,10000)
normed_data=(data-mu)/sigma
print(stats.kstest(normed_data,'norm'))
# (0.0085805670733036798, 0.45316245879609179)
警告:(非常感谢user333700 !!)如果不了解mu和sigma,估计参数会使p值无效:
import numpy as np
import scipy.stats as stats
mu = 0.3
sigma = 5
num_test