测试具有许多站点的数据集中的正态性[关闭]

Posted

技术标签:

【中文标题】测试具有许多站点的数据集中的正态性[关闭]【英文标题】:Testing for Normality in data set with many sites [closed] 【发布时间】:2013-07-09 11:33:22 【问题描述】:

我是 R 的新手,我正在尝试用它来评估来自大约 1900 个单独站点的水质数据的正常性(或其他情况)。每个站点都有一个唯一的Sitecode,其中包含 3 年内样本的结果Meas_res。数据保存在按Sitecode / Sample Date 顺序排序的.csv 文件中。我想运行 Andersen Darling 测试(以及来自 nortest 包的其他类似评估)以获得以下一般形式的输出:

Sitecode,广告测试输出写回 .csv 文件格式

谁能给我一组代码来运行测试或指导如何准备?

【问题讨论】:

请提供reproducible example。 代码将是read.csvad.testwrite.csv 的组合。如果您提供可重现的示例,将获得更多帮助。 这应该被移到 StackExchange。 Seeing if data is normally distributed in R的可能重复 【参考方案1】:

如果没有说明您为什么要运行测试的理由,或者没有解释您认为它会区分某些网站的原因,那么大约 100 个会偶然出现非正常情况。如果您想检查水质数据是否正常,那么最好一次检查所有数据。方法因站点而异,因此您可以检查以因子 Sitecode 作为预测变量的线性模型的残差。

library(nortest)
dat <- read.csv( 'myDataFileName.csv' )
m <- lm( Mean_res ~ Sitecode, data = dat)
res <- resid(m)
ad.test(res)

现在,您可以在 res 上进行 Anderson Darling 测试。

但只是为了好玩,请尝试从已知正态分布中对许多样本生成一些 AD 测试,并查看 qqnorm 图以了解它们的样子。

y <- rnorm( nrow(dat) )
ad.test(y)
qqnorm(y); qqline(y)

你会发现有这么多分数的是,你仍然会偶尔通过 AD 测试,但数据看起来仍然非常正常。所以答案可能不是 AD 测试。最好只查看残差图并评估那里的正态性。

回到我的第一条评论,正态性检验只告诉您是否可以检测到与正态性的偏差。它也与 t 检验一样,在非常高的 N 时非常敏感,并以 alpha 率给出错误警报。它不会告诉您数据是否正常。因此,“通过”测试不会让您证明数据正常。鉴于它们是针对正常性的测试,它们将向您展示哪些站点不正常(有许多误报)。如果没有理由相信某些网站不正常,您计划的测试可能不是您想要做的。

【讨论】:

以上是关于测试具有许多站点的数据集中的正态性[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

R中多组数据的正态性检验

Kolmogorov-Smirnov 测试 MATLAB 中的正态性 - 数据归一化?

多项式回归的正态性检验

R语言Kolmogorov-Smirnov假设检验(正态性检验):检验数据的正态性

R语言-数据的正态性检验

数据的正态性检验