上下文
我使用scipy's
ks_samp来应用Kolmogorov-Smirnov检验。你知道吗
我使用的数据有两个方面:
d1
,它是一个用于预测机器学习模型m1
(即MASE-平均标度误差)的评估指标。这大约是6000个数据点,意味着使用m1
进行6000个预测的MASE结果。你知道吗d2
类似于d1
,不同之处在于我使用了第二个模型m2
,它与m1
略有不同。你知道吗两个数据集的分布如下所示:
可以看出,分布看起来非常相似。我想用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)。但从图片上可以看出,它绝对应该。你知道吗
问题
编辑
下面是覆盖图。从对Cross Validated的回答和评论中得出结论,我认为“中间”的分歧可能是原因,因为KS在那里是敏感的。
关键是您对
d2
使用了另一个模型,因此Kolmogorov-Smirnov测试预测第二个数据集的分布与d1
的分布不同,即使它看起来完全相同。 尽管这不是一种概率方法,但是您可以考虑使用np.allclose来比较这两个数据集。你知道吗我也在Cross Validated上发布了这个问题,并在那里得到了有用的见解和答案(还要注意这个问题的新编辑)。你知道吗
<> Kolmogorov Smirnov(KS)对中间偏位非常敏感。正如可以看到在新发布的覆盖图片中的问题,右有一些偏差。据推测,这是KS拒绝H0(=相同分布的df1
和df2
)的原因。你知道吗要获得更详细的答案,请参见@BruceETs answer on Cross Validated谁应该为此获得荣誉。你知道吗
相关问题 更多 >
编程相关推荐