KolmogorovSmirnov(ks samp)p值不是预期的错误测试或理解?

2024-10-02 04:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

上下文

我使用scipy'sks_samp来应用Kolmogorov-Smirnov检验。你知道吗

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

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

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

d1
d1
d2
d2

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

from scipy.stats import ks_2samp

k2_samp(d1, d2)

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

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

问题

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

编辑

下面是覆盖图。从对Cross Validated的回答和评论中得出结论,我认为“中间”的分歧可能是原因,因为KS在那里是敏感的。
Overlay


Tags: 数据模型机器k2scipyd2d1kolmogorov
2条回答

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

我也在Cross Validated上发布了这个问题,并在那里得到了有用的见解和答案(还要注意这个问题的新编辑)。你知道吗

<> Kolmogorov Smirnov(KS)对中间偏位非常敏感。正如可以看到在新发布的覆盖图片中的问题,右有一些偏差。据推测,这是KS拒绝H0(=相同分布的df1df2)的原因。你知道吗

要获得更详细的答案,请参见@BruceETs answer on Cross Validated谁应该为此获得荣誉。你知道吗

相关问题 更多 >

    热门问题