🎓 高级统计学

四分位数算法
终极指南

你知道计算四分位数至少有 9 种不同的方法吗?我们将详细解读 R 和 Python 使用的 Hyndman & Fan 分类系统。

发布于:2025年11月21日
更新于:2026年2月3日
阅读时间:15 分钟

引言:「唯一正确答案」的误区

如果你让五位统计学家计算一个小型数据集的四分位数,你可能会得到五个不同的答案。而技术上来说,他们可能都是正确的

1996 年,统计学家 Rob J. Hyndman 和 Yanan Fan 发表了一篇开创性论文,题为《统计软件包中的样本分位数》,他们在论文中对软件使用的 9 种最常见方法进行了分类。这个分类现已成为 R 编程语言的标准(type=1type=9)。

为什么这很重要?

如果你正在复制一项研究或验证作业,使用错误的「类型」可能会导致「错误」答案,即使你的数学计算是正确的。

9 种分位数类型

这些方法通常分为两组:离散方法(Type 1-3)和 连续方法(Type 4-9)。

离散方法(不连续)

这些方法始终返回原始数据集中的值(或中点)。它们通常用于小样本或序数数据。

  • Type 1(经验分布函数的逆):一些旧软件使用。它只取特定秩的值。
  • Type 2(类似 Type 1 但在不连续处取平均):在某些 SAS 程序中使用。
  • Type 3(最近偶数次序统计量):SAS 的默认值。它四舍五入到最近的秩。

连续方法(线性插值)

这些方法在数据点之间进行插值,意味着结果可能是一个不存在于数据集中的小数。

类型 描述 软件使用
Type 4 经验分布函数的线性插值。 很少作为默认值使用。
Type 5 分段线性函数。 水文学应用。
Type 6 Weibull 绘图位置(N+1 基础)。 Minitab、SPSS、Excel (QUARTILE.EXC)。
Type 7 线性插值(N-1 基础)。 R 默认、Python (NumPy)、Excel (QUARTILE.INC)。
Type 8 近似中位数无偏。 Hyndman & Fan 推荐用于大多数用途。
Type 9 近似无偏(正态分布)。 在某些金融建模中使用。

最常用的方法

虽然有 9 种类型,但实际上你通常只会遇到三种。

Type 7(R 默认、Excel INC)

现代数据科学的黄金标准。它对数据进行线性插值。
h = (n-1)*p + 1

Type 6(Excel EXC、Minitab)

当你想为小样本扩展范围时常用(排除端点)。
h = (n+1)*p

Tukey 铰链(EDA)

严格来说不是 9 种类型之一。用于手工计算和箱线图。它涉及按中位数分割数据。

代码实现

R 语言中

data <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

# 比较所有 9 种类型
sapply(1:9, function(type) {
  quantile(data, probs = c(0.25, 0.75), type = type)
})

Python 中(NumPy)

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# method='linear' 对应 R 的 type 7
q1 = np.percentile(data, 25, method='linear')
q3 = np.percentile(data, 75, method='linear')

# 其他方法包括:'lower'、'higher'、'midpoint'、'nearest'

Excel 中

' Type 7 (包含端点)
=QUARTILE.INC(A1:A10, 1)  ' Q1
=QUARTILE.INC(A1:A10, 3)  ' Q3

' Type 6 (排除端点)
=QUARTILE.EXC(A1:A10, 1)  ' Q1
=QUARTILE.EXC(A1:A10, 3)  ' Q3

你应该使用哪种方法?

对于学生

查看你的教科书!如果你在进行手工计算,你几乎肯定在使用 Tukey 铰链(包含型)。使用我们的 Tukey 计算器

对于数据科学家

坚持使用 Type 7。它是 R、Python(NumPy、Pandas)和 Scikit-learn 的标准。对于连续数据,它具有最好的数学特性。

对于商业分析师

如果你在 Excel 中工作,使用 QUARTILE.INC(即 Type 7)。如果可能,避免使用旧版 QUARTILE 函数。

对于医学/社会科学研究人员

如果你使用 SPSS 或 SAS,请注意它们的默认设置可能与 R/Python 不同。始终在论文中记录你使用的方法。

困惑了?让我们为你检查

PlotNerd 使用 4 种最常见的方法同时计算你的数据,让你可以立即看到差异。

前往计算器

🔗 另请参阅