好的,所以我试着用the的实现kstest作为评估哪个分布最适合数据的一种方法。我对kstest如何工作的理解是,统计表示零假设的概率(即返回的概率是所讨论的模型对数据错误的概率)。这在0.0和1.0之前的均匀分布中的工作原理与预期一样。
A= np.random.uniform(size=4999) 打印(scipy.stats.kstest(a,“制服”,args=(0.01.0) KstestResult(statistic=0.010517039009963702,pvalue=0.63796173656227928)
然而,当我将均匀分布的界限从(0.0,1.0)移到(2.0,3.0)时,K统计量异常高。
A= np.random.uniform(2.0,3.0,size=4999) 打印(scipy.stats.kstest(a,“制服”,args=(2.0,3.0) KstestResult(statistic=0.66671700832788283,pvalue=0.0)
在第二种情况下,测试统计量的值不应该也很低,因为通过的参数与以前的分布相近吗?
发布于 2017-02-11 21:33:44
numpy
(由您使用)和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
参数,即宽度。
https://stackoverflow.com/questions/42183717
复制相似问题