R 中的柯尔莫哥洛夫-斯米尔诺夫检验(附示例)


柯尔莫哥洛夫-斯米尔诺夫检验用于检验样本是否来自某个分布。

要在 R 中执行一个或两个样本 Kolmogorov-Smirnov 检验,我们可以使用ks.test()函数。

本教程展示了如何在实践中使用此功能的示例。

示例 1:Kolmogorov-Smirnov 测试样本

假设我们有以下样本数据:

 #make this example reproducible
seed(0)

#generate dataset of 100 values that follows a Poisson distribution with mean=5
data <- rpois(n= 20 , lambda= 5 )

相关: R 中的 dpois、ppois、qpois 和 rpois 指南

以下代码展示了如何对这 100 个数据值的样本执行 Kolmogorov-Smirnov 检验,以确定它们是否来自正态分布:

 #perform Kolmogorov-Smirnov test
ks.test(data, “ pnorm ”)

	One-sample Kolmogorov–Smirnov test

data:data
D = 0.97725, p-value < 2.2e-16
alternative hypothesis: two-sided

从结果中,我们可以看到检验统计量为0.97725 ,相应的 p 值为2.2e-16 。由于 p 值小于 0.05,我们拒绝原假设。我们有足够的证据表明样本数据并非来自正态分布。

这个结果应该不足为奇,因为我们使用rpois()函数生成样本数据,该函数生成遵循泊松分布的随机值。

示例 2:两个样本 Kolmogorov-Smirnov 检验

假设我们有以下两个示例数据集:

 #make this example reproducible
seed(0)

#generate two datasets
data1 <- rpois(n= 20 , lambda= 5 )
data2 <- rnorm( 100 )

以下代码显示如何对这两个样本执行 Kolmogorov-Smirnov 检验,以确定它们是否来自同一分布:

 #perform Kolmogorov-Smirnov test
ks.test(data1, data2)

	Two-sample Kolmogorov–Smirnov test

data: data1 and data2
D = 0.99, p-value = 1.299e-14
alternative hypothesis: two-sided

从结果中,我们可以看到检验统计量为0.99 ,相应的 p 值为1.299e-14 。由于 p 值小于 0.05,我们拒绝原假设。我们有足够的证据表明这两个样本数据集并非来自同一分布。

这个结果也应该不足为奇,因为我们使用泊松分布生成第一个样本的值,使用正态分布生成第二个样本的值。

其他资源

如何在 R 中执行 Shapiro-Wilk 检验
如何在 R 中执行 Anderson-Darling 测试
如何在 R 中执行多元正态性检验

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注