0

非常简单的测试:

  1. 使用泊松分布生成数字的随机分布。使用 KS 检验确定它是否与泊松分布匹配。
  2. 使用泊松分布生成 (x2) 随机数字分布。使用 (x2) 边 KS 测试来确定它们是否相同。

从上面看,(1) 给出了一个p 值,而 (2) 给出了一个p 值。为什么?

代码 1

from scipy.stats import kstest, poisson

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.1239297144718523 7.61680985798287e-14

代码 2

from scipy.stats import ks_2samp, poisson

noPts = 1000
lambdaPoisson = 10

my_data1 = poisson.rvs(size = noPts, mu = lambdaPoisson)
my_data2 = poisson.rvs(size = noPts*1000, mu = lambdaPoisson)

ks_statistic, p_value = ks_2samp(my_data1, my_data2)
print(ks_statistic, p_value)

结果: 0.023672000000000026 0.6301973762116004

4

1 回答 1

0

ks_statistic 测试两个分布是否相同。但是,使用相同的 lambda (10) 生成不同大小的分布会生成不同的分布,因此检验并不显着。

图。1

如果您希望两个分布相同,则 mydata2 的 lambda 需要乘以与大小相同的因子(在您的情况下为 1000)。我不是统计学家,所以我不完全理解为什么。但随后的测试意义重大。如果您希望两个分布都以相同的值为中心,则必须使用函数的 loc 参数。

图2

尽管存在差异,但所有这些分布都是泊松分布,如果您单独对它们进行测试,所有这些分布都将具有 p-val=0.0。

于 2021-09-15T14:59:17.160 回答