簡體   English   中英

Kolmogorov-Smirnov(ks_2samp)p值不符合預期-測試或理解錯誤?

[英]Kolmogorov-Smirnov (ks_2samp) p-value not as expected - Wrong test or understanding?

語境

我正在使用scipy's ks_samp進行Kolmogorov-Smirnov檢驗。

我使用的數據是雙重的:

  1. 我有一個數據集d1 ,該數據集是應用於機器學習模型m1的預測(即MASE-平均平均比例誤差 )的評估指標。 這些大約是6000個數據點,這意味着使用m1的MASE結果為6000。
  2. 我的第二個數據集d2d1類似,不同之處在於我使用了第二個模型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. 如果可以用“是”回答第一個,那么我有什么選擇?

編輯

下面是疊加圖。 交叉驗證的答案和評論中得出的結論,我認為“中間”的差異可能是原因,因為KS在那兒很敏感。
覆蓋

關鍵是您對d2使用了另一個模型,因此Kolmogorov-Smirnov-test預測第二個數據集的分布與d1並不相同,即使它看起來完全相同。 盡管這不是一種概率方法,但是您可以考慮使用np.allclose比較兩個數據集。

我還在“ 交叉驗證”上發布了該問題,並在那里獲得了有用的見解和解答(還請注意該問題的新編輯內容)。

Kolmogorov-Smirnov(KS)對中間的偏差非常敏感。 從問題中新發布的疊加圖片可以看出,存在一些偏差。 大概這是KS拒絕H0的原因(= df1df2分布相同)。

有關更詳細的答案,請參閱交叉驗證的@BruceETs答案,誰值得為此而功勞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM