科莫哥洛夫-斯米爾諾夫檢定 是什麼?
Kolmogorov-Smirnov Test:科莫哥洛夫-斯米爾諾夫檢定 的完整解釋
用於比較樣本分佈與理論分佈是否相同,或兩個樣本是否來自相同分佈的無母數統計檢定。
科莫哥洛夫-斯米爾諾夫檢定(Kolmogorov-Smirnov Test,以下簡稱 KS 檢定)由蘇聯數學家安德烈·柯爾莫戈洛夫(Andrei Kolmogorov)與尼古拉·斯米爾諾夫(Nikolai Smirnov)在 20 世紀中期各自發展,是統計學中最重要的非參數檢定方法之一,廣泛應用於資料品質驗證、模型監控、特徵選取等機器學習實務場景。
KS 檢定的核心概念圍繞「累積分佈函數」(Cumulative Distribution Function,CDF)展開。對於一組連續型資料,我們可以計算其經驗累積分佈函數(Empirical CDF,ECDF),即「資料值小於或等於某閾值的比例」隨閾值變化的函數。KS 統計量 D 定義為:ECDF 與參考分佈(理論 CDF 或另一樣本的 ECDF)在所有可能的 x 值上的最大絕對差距,即 D = sup|F_n(x) - F(x)|。D 值越大,表示兩個分佈的差異越大;D 值越小,表示兩者越接近。
在實際應用中,KS 檢定分為兩種主要形式。單樣本 KS 檢定(Goodness-of-Fit Test)用於判斷一組樣本資料是否符合某個特定的理論分佈,例如常態分佈、均勻分佈或指數分佈。雙樣本 KS 檢定則用於比較兩組獨立樣本,判斷它們是否來自同一個母體分佈,不需要事先知道該分佈的形式。
在機器學習與 AI 的實務應用中,KS 檢定有幾個關鍵的使用場景。首先是資料漂移偵測(Data Drift Detection):當模型上線後,生產環境的輸入資料分佈可能隨時間改變(稱為 Covariate Shift),可以定期對訓練資料與線上資料的各特徵分別執行 KS 檢定,若 D 值超過閾值或 p 值低於顯著水準,則觸發警報,提示需要重新訓練模型。其次是模型監控(Model Monitoring):除了輸入特徵,也可以對模型的輸出分佈(預測值分佈、預測概率分佈)做 KS 檢定,監控模型輸出是否發生漂移。第三是特徵選取:在二元分類問題中,雙樣本 KS 檢定可以比較正類與負類樣本在某個特徵上的分佈差異,KS 值越大表示該特徵對區分正負類越有幫助,可以作為特徵重要性的無母數估計。
KS 檢定的優點包括:不需要對資料的分佈形式做假設(無母數方法)、計算簡單、對分佈的整體形狀(包括位置、尺度、偏態)都敏感。然而,KS 檢定也有其侷限性:它對分佈尾部的差異相對不敏感(因為 ECDF 在尾部的觀測值稀疏,最大差距往往出現在分佈的中段);在樣本量極大時,即使是實務上無關緊要的微小差異也可能產生顯著的 p 值;此外,標準 KS 檢定只適用於連續型資料,對離散型資料需要使用修正版本。
針對 KS 檢定尾部不敏感的問題,Anderson-Darling 檢定(AD Test)提供了一種加權版本,對分佈尾部給予更高的權重,在許多場景下比 KS 檢定有更高的統計功效(Statistical Power)。實務上,資料科學家常同時使用 KS 檢定與 AD 檢定,互相補充。
IPAS 中級考試中,KS 檢定通常與以下概念一起考察:假設檢定的基本框架(虛無假設、對立假設、顯著水準、p 值的解讀)、無母數方法與參數方法的比較、資料前處理中的分佈檢驗(例如確認殘差是否符合常態分佈)以及資料漂移監控的方法論。考生需要能辨識 KS 檢定的適用情境,並理解其結果的統計意義。
在 Python 生態系中,scipy.stats 模組提供了 kstest(單樣本)與 ks_2samp(雙樣本)函式,能快速計算 KS 統計量與對應的 p 值。機器學習平台如 Evidently AI、WhyLabs 等 MLOps 工具也將 KS 檢定內建為標準的資料品質監控指標之一。