如何执行kolmogorov-Smirnov测试来测试Gamma函数?

时间:2016-11-14 22:51:33

标签: python python-3.x scipy

我有一系列分数,我想检查它们是否遵循a = 15.5和b = 7的Gamma分布。我正在尝试

scipy.stats.kstest(myarray, gamma.pdf(15.5, 0.143))

kstest命令的语法是什么?该文档仅显示正态分布的基本示例。

2 个答案:

答案 0 :(得分:1)

from scipy import stats
stats.kstest(myarray, 'gamma', (15.5, 7))

答案 1 :(得分:1)

要使用Gamma分布,请将字符串'gamma'作为第二个参数传递,并使用args参数设置形状参数,位置和比例。

这是一个例子。首先,我需要一些数据来处理:

In [46]: from scipy.stats import gamma, kstest

In [47]: np.random.seed(123)

In [48]: sample = gamma.rvs(a=15.5, loc=0, scale=1./7, size=100)

使用形状为15.5,位置为0和比例为1/7的Gamma分布进行测试。由于args提供了位置参数,因此我们必须包含位置:

In [49]: kstest(sample, 'gamma', args=(15.5, 0, 1./7))
Out[49]: KstestResult(statistic=0.058075855762720785, pvalue=0.88868922608343937)

如果我们尝试不同的比例,我们会看到p值下降:

In [50]: kstest(sample, 'gamma', args=(15.5, 0, 0.16))
Out[50]: KstestResult(statistic=0.18210965421938488, pvalue=0.002249786773449225)

In [51]: kstest(sample, 'gamma', args=(15.5, 0, 0.175))
Out[51]: KstestResult(statistic=0.29663539668929456, pvalue=2.6970075950316641e-08)