兩組樣本柯爾莫哥洛夫-斯米爾諾夫適合度檢定 (Two Sample Kolmogorov-Smirnov Goodness of fit test)
套路50: 兩組樣本柯爾莫哥洛夫-斯米爾諾夫適合度檢定
(Two Sample Kolmogorov-Smirnov Goodness
of fit test)
1. 使用時機: 兩組樣本柯爾莫哥洛夫-斯米爾諾夫適合度檢定用來分析兩組資料分佈型(distribution)之差異。
2. 分析類型: 無母數分析(non-parametric analysis)。
3. 兩組樣本柯爾莫哥洛夫-斯米爾諾夫檢定前提假設: 無。
4. 範例資料: 某研究測量同一時間不同區域某種蛾翼展長度(cm)。資料如下:
區1
|
0.22
|
0.87
|
2.39
|
1.79
|
0.37
|
1.54
|
1.28
|
0.31
|
0.74
|
1.72
|
0.38
|
0.17
|
0.62
|
1.1
|
0.3
|
區2
|
5.13
|
2.19
|
2.43
|
3.83
|
0.5
|
3.25
|
4.32
|
1.63
|
5.18
|
0.43
|
7.11
|
4.87
|
3.1
|
5.81
|
3.76
|
試問此二區域某種蛾的翼展長度分佈(distribution)是否相似?
H0: 兩區域某種蛾的翼展長度分佈相似。HA: 兩區域某種蛾的翼展長度分佈不相似。
5. 使用R計算兩組樣本柯爾莫哥洛夫-斯米爾諾夫檢定,方法一:
第一步: 安裝EnvStats程式套件。
第二步: 呼叫EnvStats程式套件備用。
library(EnvStats)
第三步: 閱讀gofTest函數使用說明。
help(gofTest)
第四步: 輸入建立資料。
v1 <- c(0.22, 0.87,
2.39, 1.79, 0.37, 1.54, 1.28, 0.31, 0.74, 1.72, 0.38, 0.17, 0.62, 1.10, 0.30)
v2 <- c(5.13, 2.19,
2.43, 3.83, 0.50, 3.25, 4.32, 1.63, 5.18, 0.43, 7.11, 4.87, 3.10, 5.81, 3.76)
第五步: 使用EnvStats程式套件的gofTest函數代入v1及v2計算柯爾莫哥洛夫-斯米爾諾夫檢定。
gofTest(v1~v2, test =
"ks", alternative = "two.sided")
# v1~v2兩組樣本(two-sample test)。
# test = "ks"
執行柯爾莫哥洛夫-斯米爾諾夫檢定。
第六步: 判讀結果。
Results of Goodness-of-Fit Test
-------------------------------
Test Method:
2-Sample K-S GOF
Hypothesized Distribution:
Equal
Data:
x = v2
y = v1
Sample Sizes: n.x = 15
n.y = 15
Test Statistic:
ks = 0.7333333
Test Statistic Parameters: n = 15
m = 15
P-value:
0.000353345
Alternative Hypothesis:
The cdf of 'v2' does not equal the cdf of 'v1'.
# P-value < 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,不成立。
# P-value > 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,成立。
6. 使用R計算兩組樣本柯爾莫哥洛夫-斯米爾諾夫檢定,方法二:
第一步: 安裝dgof程式套件。
第二步: 呼叫dgof程式套件備用。
library(dgof)
第三步: 閱讀ks.test函數使用說明。
help(ks.test)
第四步: 輸入建立資料。
v1 <- c(0.22, 0.87,
2.39, 1.79, 0.37, 1.54, 1.28, 0.31, 0.74, 1.72, 0.38, 0.17, 0.62, 1.10, 0.30)
v2 <- c(5.13, 2.19,
2.43, 3.83, 0.50, 3.25, 4.32, 1.63, 5.18, 0.43, 7.11, 4.87, 3.10, 5.81, 3.76)
第五步: 使用dgof程式套件的ks.test函數代入v1及v2計算柯爾莫哥洛夫-斯米爾諾夫檢定。
dgof::ks.test(v1, v2,
alternative = "two.sided", exact = TRUE, tol = 1e-8,
simulate.p.value = TRUE, B =
2000)
# dgof::ks.test 基本模組(base)也有ks.test函數,為了區別,再函數名稱前加程式套件dgof::。
# v1~v2兩組樣本(two-sample test)。
# exact = TRUE,
simulate.p.value = TRUE, B = 2000估計p值。
第六步: 判讀結果。
Two-sample
Kolmogorov-Smirnov test
data: v1 and v2
D = 0.73333, p-value = 0.0003533
alternative hypothesis: two-sided
# p-value < 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,不成立。
# p-value > 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,成立。
7. 使用R計算兩組樣本柯爾莫哥洛夫-斯米爾諾夫檢定,方法三:
第一步: 閱讀基本模組(base)中的ks.test函數使用說明。
help(ks.test)
第二步: 輸入建立資料。
v1 <- c(0.22, 0.87,
2.39, 1.79, 0.37, 1.54, 1.28, 0.31, 0.74, 1.72, 0.38, 0.17, 0.62, 1.10, 0.30)
v2 <- c(5.13, 2.19,
2.43, 3.83, 0.50, 3.25, 4.32, 1.63, 5.18, 0.43, 7.11, 4.87, 3.10, 5.81, 3.76)
第三步: 使用基本模組(base)中的ks.test函數代入x計算柯爾莫哥洛夫-斯米爾諾夫檢定。
stats::ks.test(v1, v2,
alternative = "two.sided", exact = TRUE)
# v1~v2兩組樣本(two-sample test)。
# exact = TRUE估計p值
第四步: 判讀結果。
Two-sample
Kolmogorov-Smirnov test
data: v1 and v2
D = 0.73333, p-value = 0.0003533
alternative hypothesis: two-sided
# p-value < 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,不成立。
# p-value > 0.05,H0: 兩區域某種蛾的翼展長度分佈相似,成立。
來勁了嗎? 想知道更多?? 補充資料(連結):
5. 關於R基礎,R繪圖及統計快速入門:
a. R Tutorial: https://www.tutorialspoint.com/r/index.htm
b. Cookbook for R: http://www.cookbook-r.com/
c. Quick-R: https://www.statmethods.net/
d. Statistical tools
for high-throughput data analysis (STHDA): http://www.sthda.com/english/
e. The Handbook of Biological Statistics: http://www.biostathandbook.com/
f. An R Companion for the Handbook of
Biological Statistics: http://rcompanion.org/rcompanion/index.html
6. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition,
Pearson.
留言
張貼留言