如何使用scipy.stats.kstest/basic questions关于Kolmogorov–Smirnov tes

2024-10-09 20:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

问题1
如果参考分布是常数,那么什么词可以代替上面的poisson?
问题2
什么是args=(1,)的意思?
问题3
如果有人对ks测试感兴趣,这里是wiki链接。
http://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test
我们可以编写自己的python代码来练习吗?我们可以很容易地得到max(D),但是如何在链接中得到Pr(k<;=x)max(D)Pr(k<;=x)之间的关系是什么?


Tags: sample代码orgimporthttp链接statsnp
1条回答
网友
1楼 · 发布于 2024-10-09 20:27:23

问题2:看这个,我有一个名为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,西格玛为1。 如果不需要标准的cdf,可以使用args=()将其他参数传递给cdf。在这种情况下,我只及格了。也就是说,我们测试x1和平均值=2和西格玛=1的正态分布之间的差异。

问题3:简短的回答是,是的。但是,为什么要重新发明轮子呢?如果你想知道它是如何实现的,只需检查源代码。它在第3292行的your_package_folder\scipy\stats\stats.py中。

相关问题 更多 >

    热门问题