单一样本柯尔莫哥洛夫-斯米尔诺夫适合度检定(OneSampleKolmogorov-SmirnovGoodnessoffittest)
2018-05-21 02:57阅读:
单一样本柯尔莫哥洛夫-斯米尔诺夫适合度检定
(One Sample Kolmogorov-Smirnov Goodness of fit
test)
1.
使用时机:
单一样本柯尔莫哥洛夫-斯米尔诺夫适合度检定用来分析数据之分布型(distribution)。
2.
分析类型:
无母数分析(non-parametric
analysis)。
3.
单一样本柯尔莫哥洛夫-斯米尔诺夫检定前提假设:
无。
4.
范例数据:
某研究在一棵25公尺高的树干的不同高度(m)观察到某种蛾。资料如下:
r>
编号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
高度
|
1.4
|
2.6
|
3.3
|
4.2
|
4.7
|
5.6
|
6.4
|
7.7
|
9.3
|
10.6
|
11.5
|
12.4
|
18.6
|
22.3
|
蛾数
|
1
|
1
|
1
|
1
|
1
|
2
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
试问蛾在树上不同高度的分布是否为均匀分布(uniform
distribution)?
H0:
蛾在树上不同高度的分布是均匀分布。HA:
蛾在树上不同高度的分布不是均匀分布。
5.
使用R计算单一样本柯尔莫哥洛夫-斯米尔诺夫检定,方法一:
第一步:
安装EnvStats程序套件。
第二步:
呼叫EnvStats程序套件备用。
library(EnvStats)
第三步: 输入建立数据。
y <- c(1.4, 2.6, 3.3, 4.2, 4.7, 5.6, 6.4, 7.7, 9.3, 10.6,
11.5, 12.4, 18.6, 22.3)
第四步:
使用EnvStats程序套件的gofTest函数代入y计算柯尔莫哥洛夫-斯米尔诺夫检定。
gofTest(y~1, test = 'ks',
distribution = 'unif', alternative =
'two.sided')
# y~1只有一组样本(one-sample
test)。
# test = 'ks'
执行柯尔莫哥洛夫-斯米尔诺夫检定。
# distribution = 'unif'
检定的是资料是否为均匀分布(uniform
distribution)。
第五步: 判读结果。
Results of Goodness-of-Fit Test
-------------------------------
Test Method:
Kolmogorov-Smirnov GOF
Hypothesized Distribution:
Uniform
Estimated Parameter(s):
min
= 1.4
max =
22.3
Estimation Method:
mle
Data:
y
Sample Size:
14
Test Statistic:
ks = 0.3308271
Test Statistic Parameter:
n = 14
P-value:
0.07241889
Alternative Hypothesis:
True cdf does not equal the Uniform
Distribution.
Warning message:
In ksGofTest(x = c(1.4, 2.6, 3.3, 4.2, 4.7, 5.6, 6.4, 7.7,
9.3, :
The standard Kolmogorov-Smirnov test is
very conservative (Type I error smaller than assumed; high Type II
error) for testing departures from the Uniform distribution when
you have to estimate the distribution parameters.
# P-value <
0.05,H0:
蛾在树上不同高度的分布是均匀分布,不成立。
# P-value >
0.05,H0:
蛾在树上不同高度的分布是均匀分布,成立。
6.
使用R计算单一样本柯尔莫哥洛夫-斯米尔诺夫检定,方法二:
第一步:
安装dgof程序套件。
第二步:
呼叫dgof程序套件备用。
library(dgof)
第三步: 输入建立数据。
x <- c(1.4, 2.6, 3.3, 4.2, 4.7, 5.6, 6.4, 7.7, 9.3, 10.6,
11.5, 12.4, 18.6, 22.3)
第四步:
使用dgof程序套件的ks.test函数代入y计算柯尔莫哥洛夫-斯米尔诺夫检定。
dgof::ks.test(x,
punif, alternative = 'two.sided', exact = TRUE,
tol = 1e-8,
simulate.p.value = TRUE, B =
2000)
# dgof::ks.test
基本模块(base)也有ks.test函数,为了区别,再函数名称前加程序套件dgof::。
# x只有一组样本(one-sample
test)。
# punif 检定的是资料是否为均匀分布(uniform
distribution)。
# exact = TRUE, simulate.p.value = TRUE, B =
2000估计p值。
第五步: 判读结果。
One-sample Kolmogorov-Smirnov test
data: x
D = 1, p-value < 2.2e-16
alternative hypothesis: two-sided
# p <
0.05,H0:
蛾在树上不同高度的分布是均匀分布,不成立。
# p >
0.05,H0:
蛾在树上不同高度的分布是均匀分布,成立。
7.
使用R计算单一样本柯尔莫哥洛夫-斯米尔诺夫检定,方法三:
第一步:
安装kolmim程序套件。
第二步:
呼叫kolmim程序套件备用。
library(kolmim)
第三步: 输入建立数据。
x <- c(1.4, 2.6, 3.3, 4.2, 4.7, 5.6, 6.4, 7.7, 9.3, 10.6,
11.5, 12.4, 18.6, 22.3)
第四步:
使用kolmim程序套件的ks.test.imp函数代入x计算柯尔莫哥洛夫-斯米尔诺夫检定。
ks.test.imp(x,
punif)
# x只有一组样本(one-sample
test)。
# punif 检定的是资料是否为均匀分布(uniform
distribution)。
第五步: 判读结果。
One-sample two-sided exact Kolmogorov-Smirnov
test
data: x
D = 1, p-value = 2.22e-16
alternative hypothesis: two-sided
# p <
0.05,H0:
蛾在树上不同高度的分布是均匀分布,不成立。
# p >
0.05,H0:
蛾在树上不同高度的分布是均匀分布,成立。
8.
使用R计算单一样本柯尔莫哥洛夫-斯米尔诺夫检定,方法四:
第一步: 输入建立数据。
x <- c(1.4, 2.6, 3.3, 4.2, 4.7, 5.6, 6.4, 7.7, 9.3, 10.6,
11.5, 12.4, 18.6, 22.3)
第二步:
使用基本模块(base)中的ks.test函数代入x计算柯尔莫哥洛夫-斯米尔诺夫检定。
stats::ks.test(x,
punif, alternative = 'two.sided', exact =
TRUE)
# x只有一组样本(one-sample
test)。
# punif 检定的是资料是否为均匀分布(uniform
distribution)。
# exact =
TRUE估计p值
第三步: 判读结果。
One-sample Kolmogorov-Smirnov test
data: x
D = 1, p-value < 2.2e-16
alternative hypothesis: two-sided
# p <
0.05,H0:
蛾在树上不同高度的分布是均匀分布,不成立。
# p >
0.05,H0:
蛾在树上不同高度的分布是均匀分布,成立。
来劲了吗?
想知道更多??
补充资料(链接):
1. 关于Andrey Kolmogorov
(https://en.wikipedia.org/wiki/Andrey_Kolmogorov)
2. 关于Nikolai Smirnov
(https://en.wikipedia.org/wiki/Nikolai_Smirnov_(mathematician))
3. 关于Goodness of fit
(https://en.wikipedia.org/wiki/Goodness_of_fit)
4.
柯尔莫哥洛夫-斯米尔诺夫检验计算公式
(https://en.wikipedia.org/wiki/Kolmogorov–Smirnov_test)
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.