四分位数是把排好序的数据分成四等份的分界值。第一四分位数 Q1 是下方 25% 的位置,第二四分位数 Q2 是中位数,第三四分位数 Q3 是下方 75% 的位置。概念很简单,但用 Excel、R 和统计教科书计算同一组数据时,Q1 和 Q3 常常各不相同。这并不是计算器出错,而是关于如何确定数据之间的位置存在多种约定。
为什么会有多种算法
如果有 10 个数据,“下方 25% 的位置”并不恰好落在某一个值上。可以说是第 2.5 个值附近,也可以说是第 3.25 个。统计软件 R 把这些定义整理成 9 种(type 1~9),常用的是以下三种。
| 算法 | 位置公式(排序后第 k 个) | 典型使用场合 |
|---|---|---|
| R type 7 | k = (n−1)p + 1 | Excel QUARTILE.INC·PERCENTILE.INC、R 默认值、NumPy 默认值 |
| R type 6 | k = (n+1)p | Excel QUARTILE.EXC·PERCENTILE.EXC、部分教科书·Minitab |
| Tukey 铰链 | 先用中位数把数据分成两半,再取各半的中位数 | 探索性数据分析、箱线图教科书、R fivenum() |
如果位置 k 不是整数,就在前后两个值之间做线性插值。例如 k = 3.25 时,在第 3 个值上加上(第 4 个值 − 第 3 个值)的 0.25 倍。Tukey 铰链的原始定义是:n 为奇数时,中位数同时计入两半。
同一组数据,不同的四分位数
下面是排好序的 10 个值。
2, 4, 5, 7, 8, 10, 12, 13, 15, 25
中位数是第 5 个和第 6 个值的平均 (8+10)/2 = 9,三种算法都相同。差别出现在 Q1 和 Q3。
type 7(Excel QUARTILE.INC)
- Q1 位置:
(10−1)×0.25 + 1 = 3.25→5 + 0.25×(7−5) = 5.5 - Q3 位置:
(10−1)×0.75 + 1 = 7.75→12 + 0.75×(13−12) = 12.75
type 6(Excel QUARTILE.EXC)
- Q1 位置:
(10+1)×0.25 = 2.75→4 + 0.75×(5−4) = 4.75 - Q3 位置:
(10+1)×0.75 = 8.25→13 + 0.25×(15−13) = 13.5
Tukey 铰链
- 下半部分
2, 4, 5, 7, 8的中位数 →5 - 上半部分
10, 12, 13, 15, 25的中位数 →13
| 算法 | Q1 | Q3 | IQR |
|---|---|---|---|
| type 7 (INC) | 5.5 | 12.75 | 7.25 |
| type 6 (EXC) | 4.75 | 13.5 | 8.75 |
| Tukey 铰链 | 5 | 13 | 8 |
type 6 倾向于给出向两端稍微张开的值,type 7 倾向于给出向内收拢的值,Tukey 铰链多数情况下介于两者之间。数据达到数百个以上时,算法之间的差异几乎消失,但在几十个以下时,甚至会改变对结果的解读。
IQR 与 1.5×IQR 围栏
四分位距 IQR = Q3 − Q1 是中间 50% 数据所占的宽度。均值和标准差容易被极端值大幅影响,而 IQR 只看中间一半,因此对极端值稳健。
Tukey 提出的异常值标准如下。
- 下围栏:
Q1 − 1.5 × IQR - 上围栏:
Q3 + 1.5 × IQR - 把位于围栏之外的值标记为异常值候选。有时还会把
3 × IQR之外的值单独区分为极端异常值。
把它应用到示例数据的最大值 25 上。
| 算法 | 下围栏 | 上围栏 | 25 是异常值吗 |
|---|---|---|---|
| type 7 | 5.5 − 1.5×7.25 = −5.375 | 12.75 + 1.5×7.25 = 23.625 | 是(超过 23.625) |
| type 6 | 4.75 − 1.5×8.75 = −8.375 | 13.5 + 1.5×8.75 = 26.625 | 否 |
| Tukey 铰链 | 5 − 1.5×8 = −7 | 13 + 1.5×8 = 25 | 边界值(不在外侧) |
同一个值 25,因算法不同,有时是异常值,有时不是。因此报告中应同时注明使用了哪种四分位数定义,而且 1.5×IQR 标准最好用作挑出“需要再核查的值”的工具,而不是挑出“要删除的值”。
如何读箱线图
箱线图(box plot)是用图形表示四分位数的方式。
- 箱体:下边是 Q1,上边是 Q3。箱体的高度就是 IQR。
- 箱内的线:中位数。线偏向箱体一侧,说明分布不对称。
- 须(whisker):画到围栏内侧最远的数据点为止,而不是画到围栏值本身。
- 点:须之外的单个点是异常值候选。
如果上须比下须长且上方有点,可以怀疑是右尾较长的分布(正偏态)。收入、停留时长、等待时间这类不可能小于 0 的数据经常呈现这种形状。
实用建议
- 如果需要与其他工具的结果对齐,先确认该工具使用的定义。与 Excel 用户比较时,type 7(INC)最为稳妥。
- 异常值要在查明原因后再判断。 如果是输入错误(单位弄错、位数打错),就修正;如果是真实发生的极端值,就保留,并同时报告中位数、IQR 等稳健统计量。
- 百分位数也有同样的问题。 像前 10% 的分界(第 90 百分位数)这类非四分位数的百分位数,也会因位置公式的选择不同而取值不同。
- 样本较小时,四分位数本身就不稳定。数据在 10 个左右时,把原始数据全部以点的形式展示,比四分位数提供的信息更多。
在本站的描述统计计算器中,可以对同一组数据切换四分位数算法,比较 Q1·Q3·IQR·异常值围栏。
要点总结
- 四分位数没有唯一的标准定义,Excel
QUARTILE.INC对应 R type 7,QUARTILE.EXC对应 R type 6。 - 示例
2, 4, 5, 7, 8, 10, 12, 13, 15, 25中,Q1·Q3 在 type 7 下为 5.5·12.75,type 6 下为 4.75·13.5,Tukey 铰链下为 5·13。 - 异常值围栏为
Q1 − 1.5×IQR和Q3 + 1.5×IQR,同一个值是否为异常值可能因算法而异。 - 箱线图的须画到围栏内最远的数据点。
- 报告中要注明四分位数定义,并把异常值作为核查对象而非删除对象来处理。