scipy kstest在不同范围内不一致



好的,所以我试图使用kstest的scipys实现来评估哪种分布最适合数据。我对kstest工作原理的理解是,统计数据表示零假设的概率(即返回的概率是所讨论的模型对数据错误的概率)。对于0.0和1.0 之间的均匀分布,这与预期的一样有效

a=np.随机.均匀(大小=499)

print(scipy.stats.kstest(a,'uniform',args=(0.0,1.0))

KstestResult(统计=0.010517039009963702,p值=0.63796173656227928)

然而,当我将均匀分布边界从(0.0,1.0)转移到(2.0,3.0)时,K-S统计量的异常高

a=np.随机.均匀(2.0,3.0,大小=499)

print(scipy.stats.kstest(a,'uniform',args=(2.0,3.0))

KstestResult(统计=0.6667170083278283,p值=0.0)

第二种情况下的测试统计值是否也应该较低,因为通过的参数与以前一样接近分布?

uniformnumpy(您使用)和scipy.stats(ks测试使用)版本的工作方式不同:

>>> np.random.uniform(2,3,5000).max()
2.9999333044165271
>>> stats.uniform(2,3).rvs(5000).max()
4.9995316751114043

numpy中,第二个参数被解释为上界,在scipy.stats中,它是scale参数,即宽度。

相关内容

  • 没有找到相关文章

最新更新