新浪博客

两组样本柯尔莫哥洛夫-斯米尔诺夫适合度检定(TwoSampleKolmogorov-SmirnovGoodnessoffittest)

2018-05-21 03:00阅读:
两组样本柯尔莫哥洛夫-斯米尔诺夫适合度检定
(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函数代入v1v2计算柯尔莫哥洛夫-斯米尔诺夫检定
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.05H0: 两区域某种蛾的翼展长度分布相似,不成立。
# P-value > 0.05H0: 两区域某种蛾的翼展长度分布相似,成立。

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函数代入v1v2计算柯尔莫哥洛夫-斯米尔诺夫检定
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.05H0: 两区域某种蛾的翼展长度分布相似,不成立。
# p-value > 0.05H0: 两区域某种蛾的翼展长度分布相似,成立。

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)

我的更多文章

下载客户端阅读体验更佳

APP专享