如何在 r 中执行 cramer-von mises 检验(附示例)


Cramer-Von Mises 检验用于确定样本是否来自正态分布

这种类型的检验对于确定给定数据集是否来自正态分布非常有用,这是许多统计检验中常用的假设,包括 回归方差分析t 检验等。 ‘其他的。

我们可以使用 R 中goftest包中的cvm.test()函数轻松执行 Cramer-Von Mises 测试。

下面的例子展示了如何在实际中使用这个功能。

示例 1:对正态数据进行 Cramer-Von Mises 检验

以下代码显示如何对样本大小 n=100 的数据集执行 Cramer-Von Mises 测试:

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a normal distribution
data <- rnorm(100)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 0.078666, p-value = 0.7007

测试的 p 值为0.7007

由于该值不小于0.05,我们可以假设样本数据来自正态分布的总体。

这个结果应该不足为奇,因为我们使用rnorm()函数生成样本数据,该函数根据标准正态分布生成随机值。

相关: R 中 dnorm、pnorm、qnorm 和 rnorm 指南

我们还可以生成直方图来直观地验证样本数据是否呈正态分布:

 hist(data, col=' steelblue ') 

R 中的 Shapiro-Wilk 正态性检验

我们可以看到,分布呈钟形,峰值位于分布中心,这是正态分布数据的典型特征。

示例 2:非正态数据的 Cramer-Von Mises 检验

以下代码展示了如何对样本大小为 100 的数据集执行 Cramer-Von Mises 测试,其中值是根据泊松分布随机生成的:

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a Poisson distribution
data <- rpois(n=100, lambda=3)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 27.96, p-value < 2.2e-16

测试的 p 值非常低。

由于该值小于 0.05,因此我们有足够的证据表明样本数据并非来自正态分布总体。

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

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

我们还可以制作一个直方图来直观地看出样本数据不是正态分布的:

 hist(data, col=' coral2 ') 

R 中的 Shapiro-Wilk 检验直方图

我们可以看到该分布是右偏的,并且不具有与正态分布相关的典型“钟形”。

因此,我们的直方图与 Cramer-Von Mises 检验的结果相匹配,并确认我们的样本数据并非来自正态分布。

如何处理非正态数据

如果给定的数据集不是正态分布的,我们通常可以执行以下转换之一以使其更正态分布:

1. 对数变换:将响应变量从 y 变换为log(y)

2. 平方根变换:将响应变量从 y 变换为√y

3. 立方根变换:将响应变量从 y 变换为y 1/3

通过执行这些变换,响应变量通常近似正态分布。

请参阅 本教程以了解如何在实践中执行这些转换。

其他资源

以下教程解释了如何在 R 中执行其他正态性检验:

如何在 R 中执行 Shapiro-Wilk 检验
如何在 R 中执行 Anderson-Darling 测试
如何在 R 中执行 Kolmogorov-Smirnov 检验

添加评论

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