當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R ks.test 柯爾莫哥洛夫-斯米爾諾夫檢驗


R語言 ks.test 位於 stats 包(package)。

說明

執行一個或兩個樣本Kolmogorov-Smirnov 測試。

用法

ks.test(x, ...)
## Default S3 method:
ks.test(x, y, ...,
        alternative = c("two.sided", "less", "greater"),
        exact = NULL, simulate.p.value = FALSE, B = 2000)
## S3 method for class 'formula'
ks.test(formula, data, subset, na.action, ...)

參數

x

數據值的數值向量。

y

數據值的數值向量,或者命名累積分布函數的字符串或實際的累積分布函數,例如 pnorm 。隻有連續 CDF 才有效。

...

對於默認方法,由 y 指定的分布參數(作為字符串)。否則,將進一步向方法傳遞參數或從方法傳遞更多參數。

alternative

表示備擇假設,並且必須是 "two.sided" (默認)、"less""greater" 之一。您可以僅指定值的首字母,但必須給出完整的參數名稱。有關可能值的含義,請參閱“詳細信息”。

exact

NULL 或指示是否應計算精確 p 值的邏輯。有關 NULL 的含義,請參閱“詳細信息”。

simulate.p.value

指示是否通過蒙特卡羅模擬計算 p 值的邏輯。 (單樣本測試忽略。)

B

一個整數,指定蒙特卡羅測試中使用的重複次數。

formula

lhs ~ rhs 形式的公式,其中 lhs 是給出數據值的數值變量,而 rhs 可以是用於單樣本測試的 1,也可以是具有兩個水平的因子,用於給出雙樣本測試的相應組。

data

包含公式 formula 中的變量的可選矩陣或 DataFrame (或類似的:請參閱 model.frame )。默認情況下,變量取自environment(formula)

subset

一個可選向量,指定要使用的觀測子集。

na.action

一個函數,指示當數據包含 NA 時應該發生什麽。默認為 getOption("na.action")

細節

如果 y 為數值,則執行原假設的雙樣本 (Smirnov) 檢驗,即 xy 來自同一分布。

或者,y可以是命名連續(累積)分布函數或此類函數的字符串。在這種情況下,將生成x 的分布函數作為分布y(其參數由... 指定)進行零樣本(柯爾莫哥洛夫)檢驗。在單樣本情況下,聯係的存在總是會產生警告,因為連續分布不會產生聯係。如果因舍入而產生平局,則測試可能大致有效,但即使是適度的舍入也會對計算的統計數據產生重大影響。

x 和(在兩個樣本的情況下)y 中默默地省略了缺失值。

alternative 的可能值 "two.sided""less""greater" 指定原假設,即 x 的真實累積分布函數 (CDF) 等於、不小於或不大於假設的 CDF (分別是單樣本情況)或 y(兩樣本情況)的 CDF。該測試比較 CDF,以最大差異作為測試統計量,"greater" 替代方案中的統計量為 。因此,在兩個樣本的情況下,alternative = "greater" 包括 x 隨機小於 y 的分布(x 的 CDF 位於 y 的 CDF 上方,因此位於 y 的左側),與 t.testwilcox.test

對於存在聯係的單樣本情況,無法獲得精確的 p 值。如果是exact = NULL(默認值),如果在單樣本情況下樣本大小小於 100 並且沒有平局,並且如果在單樣本情況下樣本大小的乘積小於 10000,則計算精確的 p 值。兩個樣本的情況,有或沒有聯係(使用 Schröer 和 Trenkler,1995 中說明的算法)。否則,如果 simulate.p.valueTRUE ,則在兩個樣本情況下通過蒙特卡羅模擬計算 p 值,否則使用漸近分布,其近似值在小樣本中可能不準確。在單樣本兩側的情況下,按照 Marsaglia、Tsang & Wang (2003) 中的說明獲得精確的 p 值(但不使用右尾中的可選近似值,因此對於較小的 p 值,這可能會很慢) 。 Birnbaum & Tingey (1951) 的公式用於單樣本單麵情況。

如果使用單樣本檢驗,則 ... 中指定的參數必須預先指定,而不是根據數據估計。對於帶有估計參數的 KS 檢驗有一些更完善的分布理論(參見 Durbin,1973),但在 ks.test 中並未實現。

繼承自類 "ks.test""htest" 的列表,包含以下組件:

statistic

檢驗統計量的值。

p.value

檢驗的 p 值。

alternative

說明備擇假設的字符串。

method

指示執行什麽類型的測試的字符串。

data.name

給出數據名稱的字符串。

例子

require("graphics")

x <- rnorm(50)
y <- runif(30)
# Do x and y come from the same distribution?
ks.test(x, y)
# Does x come from a shifted gamma distribution with shape 3 and rate 2?
ks.test(x+2, "pgamma", 3, 2) # two-sided, exact
ks.test(x+2, "pgamma", 3, 2, exact = FALSE)
ks.test(x+2, "pgamma", 3, 2, alternative = "gr")

# test if x is stochastically larger than x2
x2 <- rnorm(50, -1)
plot(ecdf(x), xlim = range(c(x, x2)))
plot(ecdf(x2), add = TRUE, lty = "dashed")
t.test(x, x2, alternative = "g")
wilcox.test(x, x2, alternative = "g")
ks.test(x, x2, alternative = "l")

# with ties, example from Schröer and Trenkler (1995)
# D = 3/7, p = 8/33 = 0.242424..
ks.test(c(1, 2, 2, 3, 3),
        c(1, 2,    3, 3, 4, 5, 6))# -> exact

# formula interface, see ?wilcox.test
ks.test(Ozone ~ Month, data = airquality,
        subset = Month %in% c(5, 8))

來源

雙邊單樣本分布來自 Marsaglia、Tsang 和 Wang (2003)。

雙樣本 (Smirnov) 檢驗的精確分布是通過 Schröer (1991) 和 Schröer & Trenkler (1995) 提出的算法使用 Viehmann (2021) 的數值改進來計算的。

參考

Z. W. Birnbaum and Fred H. Tingey (1951). One-sided confidence contours for probability distribution functions. The Annals of Mathematical Statistics, 22/4, 592-596. doi:10.1214/aoms/1177729550.

William J. Conover (1971). Practical Nonparametric Statistics. New York: John Wiley & Sons. Pages 295-301 (one-sample Kolmogorov test), 309-314 (two-sample Smirnov test).

Durbin, J. (1973). Distribution theory for tests based on the sample distribution function. SIAM.

W. Feller (1948). On the Kolmogorov-Smirnov limit theorems for empirical distributions. The Annals of Mathematical Statistics, 19(2), 177-189. doi:10.1214/aoms/1177730243.

George Marsaglia, Wai Wan Tsang and Jingbo Wang (2003). Evaluating Kolmogorov's distribution. Journal of Statistical Software, 8/18. doi:10.18637/jss.v008.i18.

Gunar Schröer (1991). Computergestützte statistische Inferenz am Beispiel der Kolmogorov-Smirnov Tests. Diplomarbeit Universität Osnabrück.

Gunar Schröer and Dietrich Trenkler (1995). Exact and Randomization Distributions of Kolmogorov-Smirnov Tests for Two or Three Samples. Computational Statistics & Data Analysis, 20(2), 185-202. doi:10.1016/0167-9473(94)00040-P.

Thomas Viehmann (2021). Numerically more stable computation of the p-values for the two-sample Kolmogorov-Smirnov test. https://arxiv.org/abs/2102.08037.

也可以看看

psmirnov

shapiro.test 執行 Shapiro-Wilk 正態性測試。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Kolmogorov-Smirnov Tests。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。