现在我正在处理一个时间序列事件,并希望显示它不是随机生成的事件。为此,我试图在scipy中使用kstest。顺便说一下,我有一个关于泊松分布的cipy.stats.kstest的问题,如下所示
- 代码1
from scipy.stats import poisson, kstest
noPts = 100 # <<<<<<<<<<<<---------------
lambdaPoisson = 10
my_data = poisson.rvs(size = noPts, mu = lambdaPoisson)
ks_statistic, p_value = kstest(my_data, 'poisson', args=(lambdaPoisson,0))
print(ks_statistic, p_value)
0.18677614630310613 0.0015821590670650476
字符串
代码2
from scipy.stats import poisson, kstest
noPts = 1000 #<<<<<<<<<<<--------------
lambdaPoisson = 10
my_data = poisson.rvs(size = noPts, mu = lambdaPoisson)
ks_statistic, p_value = kstest(my_data, 'poisson', args=(lambdaPoisson,0))
print(ks_statistic, p_value)
0.13477614630310608 2.6511802749311937e-16
型
我期望更多的数据点将导致两个分布之间更精确的统计匹配(poisson.rvs vs. kstest(Poisson).是的,ks_statistics正在变小。但是p值变得非常小,这拒绝了零假设,这非常奇怪,因为两个分布是具有相同参数的相同“泊松”。我做错了什么?
有人能理解并解释一下这里的差异吗?
1条答案
按热度按时间zfciruhq1#
kstest
的文档说它只对连续分布有效。泊松分布是离散的。