我有大小为 40-50 点的小数据集。在不假设数据是正态分布的情况下,我想至少以 90% 的置信度找出异常值。我认为 boxplot 可能是一个很好的方法,但我不确定。
任何帮助表示赞赏。
同样对于箱线图实现,我找不到除了绘制绘图之外明确吐出异常值的实现。
我有大小为 40-50 点的小数据集。在不假设数据是正态分布的情况下,我想至少以 90% 的置信度找出异常值。我认为 boxplot 可能是一个很好的方法,但我不确定。
任何帮助表示赞赏。
同样对于箱线图实现,我找不到除了绘制绘图之外明确吐出异常值的实现。
那是因为这样的算法不存在。您需要一个假设分布,以便能够将某物分类为超出预期值范围。
即使您确实假设一个正态分布,将数据点声明为异常值也是一项令人担忧的事情。一般来说,您不仅需要对真实分布的良好估计,这通常是不可用的,而且还需要一个很好的理论支持理由来做出决定(即受试者以某种方式破坏了实验设置)。这种判断通常不可能在算法中编码。
这不会直接回答您的问题,但您可以通过查看 R 包中的outliers
数据集TeachingDemos
并通过帮助页面上的示例来学习一些东西。这可能会让您更好地了解自动异常值检测的一些问题。
R 将吐出异常值,如
dat <- c(6,8.5,-12,1,rnorm(40),-1,10,0)
boxplot(dat)$out
这将绘制箱线图并给出
[1] 6.0 8.5 -12.0 10.0
正如其他人所说,您在信心方面提出的问题很糟糕。有异常值的统计测试,例如我在另一篇文章中提到的 Grubbs 测试和 Dixon 比率测试。他们假设总体分布是正态的,尽管 Dixon 的检验对小样本中的正态假设是稳健的。箱线图是一种很好的非正式方式来发现数据中的异常值。通常,晶须设置在第 5 和第 95 个百分位,绘制在晶须之外的观测值通常被认为是可能的异常值。然而,这不涉及正式的统计测试。