5

帮助链接是http://docs.scipy.org/doc/scipy-0.7.x/reference/generated/scipy.stats.kstest.html 我现在可以计算 ks-test 值,但我不明白。代码如下。

from scipy import stats
import numpy as np
sample =np.loadtxt('mydata',delimiter=",",usecols=(2,),unpack=True)
print stats.kstest(sample, 'poisson', args=(1,))

Q1
如果参考分布是恒定的,什么词可以代替上面的“泊松”?
Q2
是什么意思args=(1,)
Q3
如果有人对 ks-test 感兴趣,这里是 wiki 链接。
http://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test
我们可以自己写python代码来练习吗?我们可以很容易地得到max(D),但是如何在链接中得到Pr(k<=x)max(D)Pr(k<=x)之间的关系是什么?

4

1 回答 1

8

Q2:看看这个,我有一个数组叫x1

>>> stats.kstest(x1, 'norm')
(0.50018855199491585, 0.0)
>>> stats.kstest(x1, stats.norm.cdf)
(0.50018855199491585, 0.0)
>>> stats.kstest(x1, stats.norm.cdf, args=(0,))
(0.50018855199491585, 0.0)
>>> stats.kstest(x1, stats.norm.cdf, args=(2,))
(0.84134903906580316, 0.0)
>>> stats.kstest(x1, 'norm', args=(2,))
(0.84134903906580316, 0.0)

如果您传递发行版的名称,即 ,则'norm'实际传递给kstest的是标准发行版cdf。按照标准,这意味着正态分布的均值 == 0 和 sigma = 1。如果您不想要标准cdf,可以将附加参数传递给cdfusing args=()。在这种情况下,我只通过了平均值。也就是说,我们测试x1平均值==2 和 sigma=1 的正态分布之间的差异。

Q3:简短的回答是,是的。但是,为什么要重新发明轮子?如果您想知道它是如何实现的,只需查看源代码即可。它位于your_package_folder\scipy\stats\stats.py第 3292 行。

于 2013-09-25T16:21:37.620 回答