首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >科莫戈罗夫-斯米尔诺夫(ks_2samp) p值不是预期的-错误的测试或理解?

科莫戈罗夫-斯米尔诺夫(ks_2samp) p值不是预期的-错误的测试或理解?
EN

Stack Overflow用户
提问于 2019-08-24 23:26:18
回答 2查看 1.1K关注 0票数 0

上下文

我使用scipy's 桑普来应用Kolmogorov测试。

我使用的数据有两种:

  1. 我有一个数据集d1,它是一个应用于机器学习模型m1 (即MASE -均值平均缩放误差)预测的评估度量。这大约是6.000个数据点,这意味着使用m1进行的6.000次预测的MASE-结果。
  2. 我的第二个dataset d2类似于d1,它的不同之处在于我使用了第二个模型m2,它与m1略有不同。

这两个数据集的分布如下所示:

d1

d2

正如我们所看到的,这个分布看起来非常相似。我想用Kolmogorov-Smirnov测试来强调这一事实。然而,我应用k2_samp得到的结果正好相反:

代码语言:javascript
复制
from scipy.stats import ks_2samp

k2_samp(d1, d2)

# Ks_2sampResult(statistic=0.04779414731236298, pvalue=3.8802872942682265e-10)

据我所知,这样的pvalue表示发行版不一样(拒绝H0)。但从图片上可以看出,它绝对应该。

问题

  1. 我是否误解了Kolmogorov的用法,并且这个测试不适用于用例/类型的分发?
  2. 如果第一个答案是肯定的,那我还有什么选择呢?

编辑

下面是覆盖图.通过对交叉验证的回答和评论,我认为“中间”的分歧可能是原因,因为KS在那里是敏感的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-29 22:57:14

我还在交叉验证上发布了这个问题,并从中得到了有益的见解和答案(也注意到了问题的新编辑)。

Kolmogorov-Smirnov (KS)对中间偏差非常敏感。正如在问题中新发布的覆盖图片中所看到的,正好有一些偏差。这大概是KS拒绝H0 (= df1df2的相同分布)的原因。

有关更详细的答案,请参阅@BruceET在交叉验证上的答案,他值得称赞。

票数 1
EN

Stack Overflow用户

发布于 2019-08-25 08:32:48

关键是您为d2使用了另一个模型,所以Kolmogorov测试预测第二个数据集的分布与d1的不一样,尽管它看起来完全相同。尽管它不是一个概率方法,但是您可以考虑使用np.allclose来比较这两个数据集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57642178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档