Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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 Kolmogorov-Smirnov(ks_2samp)p值不符合预期-测试或理解错误?_Python_Scipy_Statistics_Hypothesis Test_Kolmogorov Smirnov - Fatal编程技术网

Python Kolmogorov-Smirnov(ks_2samp)p值不符合预期-测试或理解错误?

Python Kolmogorov-Smirnov(ks_2samp)p值不符合预期-测试或理解错误?,python,scipy,statistics,hypothesis-test,kolmogorov-smirnov,Python,Scipy,Statistics,Hypothesis Test,Kolmogorov Smirnov,上下文 我使用scipy的是为了应用Kolmogorov-Smirnov测试 我使用的数据有两个方面: 我有一个数据集d1,它是一个用于预测机器学习模型m1的评估指标,即MASE平均标度误差。这是大约6000个数据点,意味着使用m1进行6000个预测的MASE结果。 我的第二个数据集d2类似于d1,不同之处在于我使用了第二个模型m2,它与m1略有不同。 两个数据集的分布如下所示: d1 d2 可以看出,分布情况非常相似。我想用Kolmogorov-Smirnov测试来强调这一事实。然而,我应用

上下文

我使用scipy的是为了应用Kolmogorov-Smirnov测试

我使用的数据有两个方面:

我有一个数据集d1,它是一个用于预测机器学习模型m1的评估指标,即MASE平均标度误差。这是大约6000个数据点,意味着使用m1进行6000个预测的MASE结果。 我的第二个数据集d2类似于d1,不同之处在于我使用了第二个模型m2,它与m1略有不同。 两个数据集的分布如下所示:

d1 d2

可以看出,分布情况非常相似。我想用Kolmogorov-Smirnov测试来强调这一事实。然而,我应用k2_samp得到的结果表明相反:

从scipy.stats导入ks_2samp k2_sampd1,d2 KsU 2SampleResultsStatistic=0.04779414731236298,pvalue=3.88028729442682265E-10 据我所知,这样的pvalue表示分布与H0不同。但从图片上可以看出,它确实应该这样做

问题

我是否误解了Kolmogorov-Smirnov的用法,并且该测试不适用于用例/分发类型? 如果第一个答案是肯定的,我还有什么选择? 编辑

下面是覆盖图。从回答和评论结束,我假设中间的分歧可能是原因,因为KS是敏感的。

关键是您对d2使用了另一个模型,因此Kolmogorov-Smirnov测试预测第二个数据集的分布与d1的分布不同,即使它看起来完全相同。
尽管它不是一种概率方法,但是你可以考虑使用这两个数据集进行比较。p> 我也在上发布了这个问题,并在那里获得了有用的见解和答案。我还注意到这个问题的新编辑

Kolmogorov斯米尔诺夫KS对中间偏差非常敏感。从问题中最新发布的覆盖图片中可以看出,右侧存在一些偏差。据推测,这是KS拒绝H0=DF1和df2相同分布的原因


要获得更详细的答案,请看谁应该为此获得荣誉。

相貌相像和来自同一地区之间有很大区别。例如,样本1=np.random.normalscale=1,size=6000和样本2=np.random.normalscale=1.25,size=6000的分布看起来很相似,但对这些样本应用KS检验也会得出接近1e-10的p值。