从一组数据中排除异常值的有效且准确的算法是什么?

Ash*_*wal 11 statistics outliers

我有200个数据行(意味着一小组数据).我想进行一些统计分析,但在此之前我想排除异常值.

为此目的有哪些潜在的算法?准确性是一个值得关注的问题.

我对Stats很新,所以需要非常基本的帮助.

dsi*_*cha 22

总的来说,这样的问题难以解决的问题是,对异常值没有严格的定义.我实际上建议不要使用一定数量的标准偏差作为截止值,原因如下:

  1. 一些异常值会对您的标准偏差估计产生巨大影响,因为标准偏差不是一个稳健的统计数据.
  2. 标准差的解释在很大程度上取决于数据的分布.如果您的数据是正态分布的,那么3个标准差很多,但如果它是,例如,对数正态分布,那么3个标准偏差不是很多.

有一些好的方法可以继续:

  1. 保留所有数据,并使用稳健的统计数据(中位数代替平均值,Wilcoxon检验代替T检验等).如果您的数据集很大,可能会很好.

  2. 修剪或Winsorize您的数据.修剪意味着去除顶部和底部x%.Winsorizing意味着分别将顶部和底部x%设置为xth和1-xth百分位数值.

  3. 如果您有一个小数据集,您可以只绘制数据并手动检查它以获得难以置信的值.

  4. 如果您的数据看起来相当接近正态分布(没有重尾和大致对称),那么使用中位数绝对偏差而不是标准差作为您的检验统计量,并过滤到中位数的3或4个中位数绝对偏差.


eri*_*oth 5

首先绘制异常值的杠杆作用,然后进行一些良好的"眼间创伤"(也就是看散点图).

很多统计软件包都有异常/残留诊断,但我更喜欢Cook's D.如果你想使用mtsu.edu的这个公式,你可以手工计算它(原始链接已经死了,这来自archive.org).