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 |
數據值的數值向量,或者命名累積分布函數的字符串或實際的累積分布函數,例如 |
... |
對於默認方法,由 |
alternative |
表示備擇假設,並且必須是 |
exact |
|
simulate.p.value |
指示是否通過蒙特卡羅模擬計算 p 值的邏輯。 (單樣本測試忽略。) |
B |
一個整數,指定蒙特卡羅測試中使用的重複次數。 |
formula |
|
data |
包含公式 |
subset |
一個可選向量,指定要使用的觀測子集。 |
na.action |
一個函數,指示當數據包含 |
細節
如果 y
為數值,則執行原假設的雙樣本 (Smirnov) 檢驗,即 x
和 y
來自同一分布。
或者,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.test
或wilcox.test
。
對於存在聯係的單樣本情況,無法獲得精確的 p 值。如果是exact = NULL
(默認值),如果在單樣本情況下樣本大小小於 100 並且沒有平局,並且如果在單樣本情況下樣本大小的乘積小於 10000,則計算精確的 p 值。兩個樣本的情況,有或沒有聯係(使用 Schröer 和 Trenkler,1995 中說明的算法)。否則,如果 simulate.p.value
是 TRUE
,則在兩個樣本情況下通過蒙特卡羅模擬計算 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 ksmooth 核回歸更平滑
- R kruskal.test Kruskal-Wallis 秩和檢驗
- R kmeans K 均值聚類
- R kernapply 應用平滑核
- R kernel 平滑內核對象
- R stlmethods STL 對象的方法
- R medpolish 矩陣的中值波蘭(穩健雙向分解)
- R naprint 調整缺失值
- R summary.nls 總結非線性最小二乘模型擬合
- R summary.manova 多元方差分析的匯總方法
- R formula 模型公式
- R nls.control 控製 nls 中的迭代
- R aggregate 計算數據子集的匯總統計
- R deriv 簡單表達式的符號和算法導數
- R quade.test 四方測試
- R decompose 移動平均線的經典季節性分解
- R plot.stepfun 繪製階躍函數
- R alias 查找模型中的別名(依賴項)
- R qqnorm 分位數-分位數圖
- R eff.aovlist 多層方差分析的計算效率
- R pairwise.t.test 成對 t 檢驗
- R loglin 擬合對數線性模型
- R predict.smooth.spline 通過平滑樣條擬合進行預測
- R bartlett.test 方差齊性的 Bartlett 檢驗
- R influence.measures 回歸刪除診斷
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Kolmogorov-Smirnov Tests。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。