R语言中执行KS检验
程序员文章站
2022-07-15 16:04:42
...
说明
ks-Kolmogorov-Smirnow,这种检测常被用来应用于比较样本是否符合某个已知分布,而双样本的KS检测两个数据集累积分布的比较。
生成正态分布样本数据(单样本)
检测数据集X是否符合正态分布,100个数
x = rnorm(100)
ks.test(x,"pnorm)
One-sample Kolmogorov-Smirnov test
data: x
D = 0.12261, p-value = 0.09889
alternative hypothesis: two- sided
检测数据集X是否符合正态分布,1000个数
x = rnorm(1000)
ks.test(x,"pnorm)
One-sample Kolmogorov-Smirnov test
data: x
D = 0.018507, p-value = 0.8832
alternative hypothesis: two-sided
#分析得,H0:u=u0;H1:u!=u0,前者为符合正态分布,后者为不符合正态分布
随着个数的增加,就更加接近可以于正态分布。
生成均匀分布样本数据(双样本)
set.seed(3)
x=runif(n=20,min = 0,max = 20)
y=runif(n=20,min = 0,max = 20)
plot(ecdf(x),do.points=FALSE,verticals = T,xlim = c(0,20))
lines(ecdf(y),lty=3,do.points=FALSE,verticals = T)
#p-value 的值小于0.05,故双方累积分布差异不显著
ks.test(x,y)
Two-sample Kolmogorov-Smirnov test
data: x and y
D = 0.3, p-value = 0.3356
alternative hypothesis: twd-sided `
#两级变化率相同,p值为1
x = c(1:100)
y = c(1:100)
ks.test(x,y)
ks.test(x,y)
Two-sample Kolmogorov-Smirnov test
data: x and y
D = 0, p-value = 1
alternative hypothesis: two-sided
总结
ks检验是一种非参数的统计检验方法,常被用来比较连续概率分布间的相似性,用来判断某个样本是否符合已知概率分布(单样本KS检验),或者对于两个样本数据集的直接比较(双样本KS检验),检验基于经验分布函数ecdf。
上一篇: uniapp 上传本地图片
推荐阅读