Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Scipy&x27;s ks_2samp函数提供了良好的D_统计,但p_值错误_Python 3.x_Kolmogorov Smirnov_Scipy.stats - Fatal编程技术网

Python 3.x Scipy&x27;s ks_2samp函数提供了良好的D_统计,但p_值错误

Python 3.x Scipy&x27;s ks_2samp函数提供了良好的D_统计,但p_值错误,python-3.x,kolmogorov-smirnov,scipy.stats,Python 3.x,Kolmogorov Smirnov,Scipy.stats,我试图进行两个样本的Kolmogorov-Smirnov测试,以检查两个样本是否来自同一人群。下面是重现我的问题的代码: from scipy.stats import ks_2samp import numpy as np x = list(np.random.normal(10, 1, 3000)) y = list(np.random.normal(12, 1, 2000)) d_statistic, p_value = ks_2samp(x, y) 使用早于1.3的scipy版本,我

我试图进行两个样本的Kolmogorov-Smirnov测试,以检查两个样本是否来自同一人群。下面是重现我的问题的代码:

from scipy.stats import ks_2samp
import numpy as np

x = list(np.random.normal(10, 1, 3000))
y = list(np.random.normal(12, 1, 2000))
d_statistic, p_value = ks_2samp(x, y)
使用早于1.3的scipy版本,我得到以下结果: d_统计量=0.67317,p_值=0.0

但是,对于scipy版本>=1.3: d_统计量=0.6705,p_值=0.99047747590824749

两者给出的d_统计数据几乎相同,但scipy的最新版本似乎给了我一个错误的p_值,我不明白为什么。事实上,x和y显然是两个不来自同一人群的样本


我做了一些研究,由于scipy==1.3,“精确”模式被发布,对于那些将面临与我相同问题的小样本(len(x),len(y))来说,它是默认模式。 这是一个在样本量超过几千个时出现的错误(归功于解决此问题的pvanmulbregt:)。它应该在scipy的1.5.0版本中解决。同时,您可以将模式从“精确”更改为“asymp”,也可以降级scipy版本

希望这有帮助, H1t5uj1

d_statistic, p_value = ks_2samp(x, y, mode='asymp')