scipy stats kstest对x = y?

时间:2017-09-10 20:51:36

标签: python numpy scipy statistics

这是我一段时间以来一直困惑的事情,我希望得到一些帮助。

我正在尝试使用scipy.stats.kstest来测试我的发行版与另一个只是x=y的发行版,以便我可以获得p值。在网上的例子中,它提供了类似的内容:

>>> x = np.linspace(-15, 15, 9)
>>> scipy.stats.kstest(x, 'norm')
(0.44435602715924361, 0.038850142705171065)

但我不确定如何修改从normx=y的预期分布?此外,我的“真实”分布同时具有x和y值(它是均匀分布的cdf)。我该怎么把它塞进去?

1 个答案:

答案 0 :(得分:1)

好像你正在寻找scipy.stats.ks_2samp

  

这是对2个独立的零假设的双侧检验   样本来自相同的连续分布。

import numpy as np
from scipy import stats
np.random.seed(123)

# Draw random samples from two normal distributions
#     with different means/stdevs.  The resulting pvalue
#     be low (high significance/reject the null).
rvs1 = stats.norm.rvs(size=400, loc=0., scale=1)
rvs2 = stats.norm.rvs(size=400, loc=0.5, scale=1.5)
p_lo = stats.ks_2samp(rvs1, rvs2)[1]
print(p_lo)
# 1.29793098188e-10

# Same test for two random samples drawn from same distribution
#     should yield high p value.
rvs3 = stats.norm.rvs(size=400, loc=0.01, scale=1)
p_hi = stats.ks_2samp(rvs1, rvs3)[1]
print(p_hi)
# 0.855599637503