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) }