由于 ROUT 法尚未成为标准方法,我们进行了模拟,将其与 Grubbs 法进行比较。我们分别针对无异常值、含一个异常值和含两个异常值的数据,对这两种方法进行了比较。
•所有模拟均假设数据服从高斯分布,其中大部分值的均值为100,标准差为15。
•随后添加了指定数量的异常值,这些异常值是从具有指定界限的均匀分布中选取的。
•错误发现率的计算方法:对于每个模拟数据集,若未检测到异常值,则定义错误发现率(FDR)为 0.0。若检测到任何异常值,则该模拟的错误发现率即为“假异常值”的比例 - 这些假异常值是从高斯分布中模拟生成的,但未被模拟算法识别为异常值。总体错误发现率是所有模拟中这些个体错误发现率值的平均值。
•每种情况均进行了 25,000 次模拟。
下表展示了十种模拟的实验设计,它们在样本量(n)、样本中包含的异常值数量以及选取这些异常值的数值范围方面存在差异。
设计 |
n |
异常值数量 |
异常值范围 |
A |
100 |
0 |
|
B |
10 |
0 |
|
C |
10 |
1 |
50-75 |
D |
10 |
1 |
100-125 |
E |
100 |
1 |
100-125 |
F |
100 |
1 |
50-75 |
G |
100 |
2 |
50-75 |
H |
100 |
2 |
100-125 |
I |
10 |
2 |
50-75 |
J |
25 |
2 |
50-75 |
以下是结果。每组模拟数据集均采用Grubbs法和ROUT法进行了分析。
|
|
|
|
Number of outliers identified |
|
|||
|
Design |
# Outliers |
Analysis method |
0 |
1 |
2 |
>2 |
FDR |
1 |
A |
0 |
Grubbs 5% |
95.104% |
4.69% |
0.19% |
0.20% |
4.90% |
2 |
A |
0 |
Rout 5% |
94.31% |
4.68% |
0.74% |
0.10% |
5.69% |
3 |
A |
0 |
Grubbs 1% |
99.10% |
0.90% |
0.00% |
0.00% |
0.90% |
4 |
A |
0 |
Rout 1% |
98.70% |
1.21% |
0.00% |
0.08% |
1.21% |
5 |
B |
0 |
Grubbs 5% |
94.99% |
5.01% |
0.00% |
0.00% |
5.01% |
6 |
B |
0 |
Rout 5% |
95.13% |
3.87% |
0.98% |
0.02% |
4.87% |
7 |
B |
0 |
Grubbs 1% |
98.92% |
1.08% |
0.00% |
0.00% |
1.08% |
8 |
B |
0 |
Rout 1% |
98.65% |
1.14% |
0.21% |
0.00% |
1.35% |
9 |
C |
1 |
Grubbs 1% |
74.33% |
25.41% |
0.26% |
0.00% |
0.13% |
10 |
C |
1 |
Rout 1% |
78.11% |
21.29% |
0.60% |
0.00% |
0.31% |
11 |
D |
1 |
Grubbs 1% |
5.50% |
93.51% |
0.99% |
0.00% |
0.50% |
12 |
D |
1 |
Rout 1% |
15.38% |
84.01% |
0.60% |
0.00% |
0.30% |
13 |
D |
1 |
Grubbs 5% |
0.20% |
94.86% |
4.75% |
0.18% |
2.51% |
14 |
D |
1 |
Rout 5% |
2.30% |
94.96% |
2.70% |
0.04% |
2.73% |
15 |
E |
1 |
Grubbs 1% |
0.00% |
98.94% |
1.05% |
0.01% |
0.53% |
16 |
E |
1 |
Rout 1% |
0.00% |
97.92% |
1.94% |
0.14% |
1.07% |
17 |
F |
1 |
Grubbs 1% |
43.94% |
55.47% |
0.57% |
0.02% |
0.40% |
18 |
F |
1 |
Rout 1% |
47.08% |
51.16% |
1.63% |
0.11% |
1.05% |
19 |
G |
2 |
Grubbs 1% |
39.70% |
29.84% |
30.72% |
0.38% |
0.16% |
20 |
G |
2 |
Rout 1% |
29.08% |
26.61% |
40.37% |
1.88% |
0.82% |
21 |
G |
2 |
Grubbs 5% |
10.82% |
21.29% |
64.23% |
3.66% |
1.40% |
22 |
G |
2 |
Rout 5% |
7.52% |
15.50% |
66.54% |
10.43% |
3.96% |
23 |
H |
2 |
Grubbs 1% |
0.00% |
0.00% |
98.89% |
1.11% |
0.37% |
24 |
H |
2 |
Rout 1% |
0.00% |
0.00% |
97.57% |
2.43% |
0.84% |
25 |
I |
2 |
Grubbs 5% |
98.80% |
1.20% |
0.00% |
0.00% |
0.00% |
26 |
I |
2 |
Rout 5% |
6.06% |
0.97% |
92.80% |
0.16% |
0.05% |
27 |
I |
2 |
Rout 1% |
27.46% |
2.58% |
69.95% |
0.01% |
0.004% |
28 |
J |
2 |
Grubbs 5% |
49.16% |
7.86% |
40.85% |
2.14% |
0.737% |
29 |
J |
2 |
Rout 5% |
24.57% |
13.27% |
57.46% |
0.71% |
1.74% |
30 |
J |
2 |
Grubbs 1% |
90.21% |
3.51% |
6.20% |
0.72% |
0.24% |
31 |
J |
2 |
Rout 1% |
54.47% |
15.08% |
29.46% |
0.98% |
0.36% |
当模拟未向数据集添加异常值时,ROUT 检验与 Grubbs 检验的表现几乎完全一致。ROUT 方法中指定的 Q 值等同于 Grubbs 检验中设定的 alpha 值。若将 alpha 设为 0.05 或 Q 设为 5%,则在约 5% 的模拟中会检测到单个异常值,尽管这些模拟中的所有数据均来自高斯分布。
当模拟数据中包含一个不属于其余数据所在高斯分布的异常值时,Grubbs检验在检测该异常值方面略胜一筹。ROUT方法的假阴性率和假阳性率均较高。它漏检异常值的概率略高,且即使模拟中实际只包含一个异常值,它也更可能检测出两个异常值。
这并不令人意外,因为格鲁布斯检验实际上是专门设计来检测单个异常值的(尽管可以通过迭代使用来检测更多异常值)。虽然这两种方法之间的差异是一致的,但并不显著。
当模拟中包含一个小数据集中的两个异常值时,ROUT检验的表现要好得多。迭代Grubbs检验容易受到掩蔽效应的影响,而ROUT检验则不会。掩蔽效应是否构成问题,取决于样本大小以及异常值与其他值的均值之间的距离。在掩蔽效应确实可能发生的情况下,ROUT检验的效果远优于Grubbs检验。 例如,当样本量n=10且存在两个异常值时(实验设计I),Grubbs检验从未同时发现这两个异常值,且在98.8%的模拟中均未能发现任何一个异常值。 在剩余的1.2%模拟中,Grubbs检验仅能发现其中一个异常值。相比之下,ROUT方法在92.8%的此类模拟中成功识别了两个异常值,且仅有6%的模拟未能识别出两个异常值。
一旦检测到一个(或多个)异常值,请停下来思考。不要直接删除它。
请审视相关假设。Grubbs 法和 ROUT 法均假设数据(除异常值外)服从高斯分布。若该假设不成立,所谓的“异常值”可能与其余数据服从相同的分布。需警惕对数正态分布。此类分布的尾部数据常会被假设高斯分布的方法错误地标记为异常值。
即使该值确实是相对于其余数据的异常值,它也可能是一个重要的值。它未必是错误。它可能揭示了生物变异性。
对于其设计初衷 - 从高斯分布中检测单个异常值 - Grubbs 法略优于 ROUT 法。
但在检测两个异常值方面,Grubbs检验远逊于ROUT方法。我无法想象任何科学情境中,您能确信数据中要么没有异常值,要么仅有一个异常值,且完全不可能存在两个或更多异常值。只要存在两个(或更多)异常值的可能性,我们建议使用ROUT方法而非Grubbs检验。