我有一系列分数,我想检查它们是否遵循a = 15.5和b = 7的Gamma分布。我正在尝试
scipy.stats.kstest(myarray, gamma.pdf(15.5, 0.143))
kstest
命令的语法是什么?该文档仅显示正态分布的基本示例。
答案 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)