Kolmogorov Smirnov檢驗的直觀解釋
向某人解釋 Kolmogorov Smirnov 測試概念的最簡潔、最簡單的方法是什麼?直觀上是什麼意思?
這是一個我難以表達的概念——尤其是在向某人解釋時。
有人可以用圖表和/或使用簡單的例子來解釋它嗎?
Kolmogorov-Smirnov 檢驗評估隨機樣本(數值數據)來自連續分佈的假設,該連續分佈完全指定而無需參考數據。
這是這種分佈的累積分佈函數 (CDF) 的圖表。
樣本可以通過其經驗(累積)分佈函數或 ECDF 來完全描述。它繪製小於或等於水平值的數據分數。因此,隨機抽樣 $ n $ 值,當我們從左到右掃描時,它向上跳躍 $ 1/n $ 每次我們跨越一個數據值。
下圖顯示了樣本的 ECDF $ n=10 $ 取自該分佈的值。點符號定位數據。繪製線條以提供點之間的視覺連接,類似於連續 CDF 的圖形。
KS 測試使用它們的圖表之間的最大垂直差異來比較 CDF 和 ECDF。金額(正數)是Kolmogorov-Smirnov 檢驗統計量。
我們可以通過定位位於 CDF 上方或下方最遠的數據點來可視化 KS 檢驗統計量。 此處以紅色突出顯示。檢驗統計量是極值點與參考 CDF 值之間的垂直距離。繪製了兩條位於 CDF 上方和下方此距離的限製曲線以供參考。因此,ECDF 位於這些曲線之間,並且至少與其中一條曲線相接觸。
為了評估 KS 檢驗統計量的重要性,我們像往常一樣將其與 KS 檢驗統計量進行比較,KS 檢驗統計量往往會出現在假設分佈的完全隨機樣本中。 可視化它們的一種方法是繪製許多此類(獨立)樣本的 ECDF,以表明它們的KS 統計數據是什麼。這形成了 KS 統計量的“零分佈”。
每個的 ECDF $ 200 $ 樣本與單個紅色標記一起顯示,該標記位於它與假設的 CDF 最不同的位置。在這種情況下,與大多數隨機樣本相比,原始樣本(藍色)與 CDF 的偏差明顯較小。(73% 的隨機樣本比藍色樣本更遠離 CDF。從視覺上看,這意味著 73% 的紅點落在由兩條紅色曲線分隔的區域之外。)因此,我們(在此基礎上)沒有結論我們的(藍色)樣本的證據不是由該 CDF 生成的。也就是說,差異“在統計上不顯著”。
更抽像地說,我們可以在這組大的隨機樣本中繪製 KS 統計量的分佈。 這稱為*檢驗統計量的零分佈。*這裡是:
垂直藍線定位原始樣本的 KS 檢驗統計量。27% 的隨機 KS 測試統計量較小,73% 的隨機統計量較大。掃一掃,看起來數據集(這個大小,這個假設的 CDF)的 KS 統計量必須超過 0.4 左右才能得出結論它非常大(因此構成假設的 CDF 不正確的重要證據) .
雖然可以說更多——特別是關於為什麼 KS 測試以相同的方式工作並產生相同的零分佈,對於任何連續 CDF——這足以理解測試並將其與概率圖一起使用來評估數據分佈。
應要求,這是
R
我用於計算和繪圖的基本代碼。它使用標準正態分佈 (pnorm
) 作為參考。註釋掉的行表明我的計算與內置ks.test
函數的計算一致。我不得不修改它的代碼以提取有助於 KS 統計的特定數據點。ecdf.ks <- function(x, f=pnorm, col2="#00000010", accent="#d02020", cex=0.6, limits=FALSE, ...) { obj <- ecdf(x) x <- sort(x) n <- length(x) y <- f(x) - (0:(n - 1))/n p <- pmax(y, 1/n - y) dp <- max(p) i <- which(p >= dp)[1] q <- ifelse(f(x[i]) > (i-1)/n, (i-1)/n, i/n) # if (dp != ks.test(x, f)$statistic) stop("Incorrect.") plot(obj, col=col2, cex=cex, ...) points(x[i], q, col=accent, pch=19, cex=cex) if (limits) { curve(pmin(1, f(x)+dp), add=TRUE, col=accent) curve(pmax(0, f(x)-dp), add=TRUE, col=accent) } c(i, dp) }