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 は、2 つの分布が同じかどうかをテストします。ただし、異なるサイズの分布を生成するために同じラムダ (10) を使用すると、異なる分布が生成されるため、テストは重要ではありません。

図1

両方の分布を同じにしたい場合は、mydata2 のラムダにサイズと同じ係数を掛ける必要があります (この場合は 1000)。私は統計学者ではないので、その理由はよくわかりません。しかし、その後のテストは重要です。両方の分布を同じ値に集中させたい場合は、関数の loc 引数をいじる必要があります。

図2

違いはありますが、これらの分布はすべてポアソン分布であり、個別にテストを行うと、すべて p-val=0.0 になります。

于 2021-09-15T14:59:17.160 に答える