跳到主要内容
CalcMax

异常值计算器

结果

1

异常值的个数

异常值
9
下界(Q1 − 1.5 × IQR)
1.7500
上界(Q3 + 1.5 × IQR)
7.7500
外侧下界(Q1 − 3 × IQR)
-0.5000
外侧上界(Q3 + 3 × IQR)
10.0000
第一四分位数(Q1)
4.0000
第三四分位数(Q3)
5.5000
四分位距(IQR)
1.5000

异常值(也常被叫作离群点)是一组数据里离其余观测足够远、值得再看一眼的那个数。这个异常值计算器用的是通行的判据:低于第一四分位数 1.5 × IQR 以上、或高于第三四分位数 1.5 × IQR 以上的值会被标出来,同时把它用到的四条界与算出这些界的四分位数一起印出来,让这个判断可以被核对而不是只能照信。它告诉你哪几个值被标出、一共几个。它不会告诉你把它们删掉。

公式

下界 = Q1 − 1.5 × IQR · 上界 = Q3 + 1.5 × IQR

Q1
第一四分位数,也就是第 25 百分位数——有四分之一的数据落在它或它以下。它是下界的锚点
Q3
第三四分位数,也就是第 75 百分位数。它与 Q1 一起框出中间那一半数据,也是上界的锚点
IQR
四分位距,等于 Q3 − Q1,即中间那一半数据的宽度。把它乘以 1.5,决定了「偏出中间那一半多远」才算被标出
下界
Q1 − 1.5 × IQR。严格小于这条线的值会被标出;正好落在线上的不算,所以全部相同的列表一个都标不出来
上界
Q3 + 1.5 × IQR。严格大于这条线的值会被标出。这两条线通常叫围栏,来源里写作 L1 与 U1
n
一共几个数,本站上限 200 个。界是从四分位数算出来的,所以列表一变长四分位数就会移动,被标出的值也可能跟着变

当你需要判断某个值相对于其余数据是不是不寻常、而且还没有决定拿它怎么办的时候,用它:某个月的收益是其他月份的十倍、某个传感器的读数偏离了它旁边那些读数、某个分数远低于班上其余的人。1.5 × IQR 这条规则(有时按推广它的人称作 Tukey 规则)是标准的第一道筛,因为它不假设数据长什么形状——而建立在平均数与标准差上的判据做不到这一点,因为那两个量本身就会被它要找的那些极端值拉偏。它标出的是可疑数据,而这一页做不到的是告诉你那些被标出的值到底是错误还是真实的极端值。那是两件事:异常值可能意味着数据有问题,也可能恰恰是整组数据里最有价值的一次测量。四分位距有意不看尾部,所以它不会被正在被检验的那些值拽着走。

算例

  1. 八个数里标出一个

    1. Q1 = 4、Q3 = 5.5,所以 IQR = 5.5 − 4 = 1.5
    2. 1.5 × IQR = 2.25,于是下界是 4 − 2.25 = 1.75,上界是 5.5 + 2.25 = 7.75
    3. 9 高于 7.75,被标出;其余每一个值都落在两条界之内

    外侧两条界是 −0.5 与 10,而 9 在它们之内,所以这是一个只被内侧规则标出的值——略有反常,还谈不上极端。把外侧界单独印出来,正是为了让这个区别看得见,而不是只剩一个是或否。

  2. 标出两个,一个越过了内侧界,另一个越过了外侧界

    1. Q1 = 3.75、Q3 = 9.25,所以 IQR = 5.5,1.5 × IQR = 8.25
    2. 两条界是 3.75 − 8.25 = −4.5 与 9.25 + 8.25 = 17.5;外侧两条是 3.75 − 16.5 = −12.75 与 9.25 + 16.5 = 25.75
    3. 20 高于 17.5 但还在 25.75 之内;30 高于 25.75。两个都算被标出,所以一共 2 个

    被标出的这两个值并不一样极端,而只报一个个数就把这件事盖住了。20 越过的是内侧界,30 越过的是外侧界,印出来的列表按升序排,所以哪个是哪个一眼可辨。外侧界不是第二道门槛、不是值必须先越过它才算数——落在两条界之间的那个值已经算被标出了。

  3. 所有值都相同、只有一个是例外

    1. Q1 = 1、Q3 = 1,所以 IQR = 0,1.5 × IQR = 0
    2. 两条界都塌到 1 上:下界是 1 − 0 = 1,上界是 1 + 0 = 1
    3. 2 严格大于 1,所以被标出——尽管四分位距是 0

    四分位距为 0 看起来应该把这条规则关掉,而它没有。几乎所有值都相同的时候,那个不一样的值按定义就是唯一一个「显著偏离」的点,规则如实这么说。想让结果是反的、一个都标不出来,得让每一个值都相同——那时两条界正好落在那一个值上,而比较是严格的。

局限

这一页报的是被一条规则标出的值,而那条规则是一种约定,不是一个判决。1.5 这个倍数是一个选择:给出它的同一个来源也给出了 3.0,用于第二条更靠外的线,而别的教材与软件提供的是另外的判据——基于 z 分数的、或基于中位数绝对偏差的。两个工具对某个擦边的值给出不同结论是正常的,不代表其中有一个错了。被标出也不等于就是错误:这样的规则分不出「抄错的一位数字」与「真实的极端观测」,而后者常常是一整组数据里最有价值的那一次测量。单凭一个标记就去掉数据点,是让分析得出它本来不该得出的结论的常见途径。这里的四分位数用两个中间值之间线性插值算出来,那是最通行的约定但不是唯一的——按最近的观测值取整的来源会让四分位数差出半步,界也跟着移。列表上限 200 个数,而 1,500 这种写法会被直接拒绝而不是猜:「数字中间一个逗号」在一些国家是小数点,在另一些国家是千位分隔符。

常见问题

怎么判断一组数据里的异常值?
先把数据排序,找出第一四分位数 Q1 与第三四分位数 Q3,四分位距就是 Q3 − Q1。低于 Q1 − 1.5 × IQR、或高于 Q3 + 1.5 × IQR 的值会被标出。对 2、4、4、4、5、5、7、9 这组数,两个四分位数是 4 与 5.5,四分位距是 1.5,界是 1.75 与 7.75,于是 9 被标出。上面的计算器把四分位数与四条界都印出来,每一步都可以核。
「界」是什么,为什么要印四条?
界就是这条规则拿去与每个值比较的那几条分界线,通常也叫围栏,而教材来源里写作 L1、L2、U1、U2。内侧两条界是 Q1 − 1.5 × IQR 与 Q3 + 1.5 × IQR;外侧两条把 1.5 换成 3.0,标出的是更靠外的那些值。只有内侧那两条决定谁被标出。外侧那两条也印,是因为落在两对线之间的值与越过外侧线的值不是一回事,而一个个数显示不出这个差别。
被标成异常值之后,该把它删掉吗?
不能只凭这个标记就删。这条规则说的是「这个值明显偏离了其余的观测」,它说不出原因。同一个来源指出,异常值可能意味着数据有问题——抄错的一位数字、失灵的传感器、单位填错了列——那种情况下这个点该被改正或删掉。它也可能是一次真实的测量,而且常常是整组数据里信息量最大的一次。删之前先找到原因:去查原始记录、仪器日志,或者产生这个读数时的条件。因为一条规则标了它就把点删掉,是一组数据被修到「说出某人想听的话」的常见方式。
为什么另一个工具标出的是别的值?
因为 1.5 这个倍数是约定,不是定律。给出 1.5 的那个来源同时也给出了 3.0 作为第二条线,而完全不同的判据还有好几种——一种拿每个值到平均数的距离与标准差相比,另一种用中位数绝对偏差、阈值取 3.5。四分位数的取法也各家不同:这一页在两个中间值之间做线性插值,有些来源则取最接近的观测值,这可能让某条界刚好跨过一个擦边的点。两个工具对界附近的一个值给出不同结论是意料之中的,它是让你去看那个值的理由,不是让你怀疑其中一个工具的理由。
四分位距是 0 的时候会怎样?
规则照常运行,而且照样会标出值。如果 Q1 与 Q3 都是 1,四分位距就是 0,1.5 × IQR 也是 0,两条界都正好落在 1 上,于是任何严格大于 1 的值都会被标出——对 1、1、1、1、1、2 这组数,2 被标出。这乍看不对,因为四分位距为 0 似乎说明数据没有离散。它是对的:几乎所有值都相同的时候,那个唯一不同的值恰恰就是「显著偏离」的那一个。比较是严格的,所以全部值都相同的列表一个也标不出——界正好落在那一个值上,没有任何值严格落在界外。
这和用 z 分数判断是一回事吗?
不是,而这个差别要紧。z 分数拿每个值到平均数的距离去除以标准差——但平均数与标准差都是用整组数据算出来的,包括那个异常值本身,所以一个极端值会把标准差撑大,反而把自己藏起来。基于四分位数的规则没有这个回授:四分位数是位置量,一个离得很远的值不会改变它们落在哪儿。那个来源正因为这个原因给 z 分数那条路写了一个上限,并且另外给出了一个建立在中位数绝对偏差上的变体,好让离散程度的度量不被正在被检验的那个点拽着走。

参考资料

相关计算器