scipy stats kstest against x = y?
问题描述:
这是我一直困惑的一段时间,我希望得到一些帮助。scipy stats kstest against x = y?
我试图使用scipy.stats.kstest
来测试我的分布与另一个分布,这只是x=y
,以便我可以得到一个p值。在在线的例子它给像:
>>> x = np.linspace(-15, 15, 9)
>>> scipy.stats.kstest(x, 'norm')
(0.44435602715924361, 0.038850142705171065)
,但我不知道我怎么能修改从norm
预期分布x=y
?另外,我的'真实'分布同时具有x和y值(它是均匀分布的cdf)。我将如何将其插入此?
答
好像你正在寻找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
当你说
“X = Y”你谈论一个标准的统一CDF(其方程确实是Y = X 0和1之间),或者你谈论的第二样品?真的不清楚你在那里有什么 –