-1

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

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

有人可以给我一组代码来运行测试或指导如何准备它吗?

4

1 回答 1

2

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

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

现在,您可以在res.

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

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

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

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

于 2013-07-09T12:40:40.290 回答