# 平均数为什么会站在没人站的位置：什么时候该换成中位数

平均数按距离施力、会被极端值拉走，中位数只看位次；右偏数据里该用哪个、怎么判断，以及中位数本身的三处边界

> 指标口径 · 分组汇总 · 结论表达 · 约 7 分钟 · 09 月 22 日

## 本篇要点

1. 平均数是总量除以个数，每个数值按自己离中心的距离施加拉力，所以一个极端值就能把平均数拽走，与其他数据有多少个无关。
2. 中位数只依赖数值的排列次序，极端值跑得再远，只要位次不变，中位数就一动不动；因此“平均数变了”可能只来自一个人的变化，“中位数变了”才一定意味着位次结构变了。
3. 收入、房价、客单价、响应时间这类“下面有边界、上面没有”的变量天然右偏；右偏的可操作线索是平均数大于中位数，差得越远说明偏得越厉害。
4. 用平均数做告警线、考核线最危险，因为它同时掩盖了尾部有多长和尾部里有多少个单位：平均 80 毫秒的服务里，有 1% 的请求等了 2.4 秒。
5. 分位数（p50、p90、p99）回答“有百分之几的数据比它小”，能直接描述尾部，而平均数不对应任何具体的人群比例。
6. 平均数回答“总量摊到每个单位是多少”，需要跟总量对上账时必须用它，而且分组的平均数可以按每组的个数加权合并；中位数回答“典型的一个是多少”，两个组的中位数合不出整体的中位数。
7. 判断顺序是先确定要回答的是典型值还是分摊值，再排序看最小、最大和几个分位数，最后看平均数与中位数差多远。
8. 中位数有三处边界：双峰分布时两个数都可能落在没人的空谷，极端值变得更极端时中位数不动，取值只有几个档位时中位数会抹平组间差别。
9. 可靠的做法是两个数一起报，把它们之间的差距当成一条信息，而不是只报一个数替读者做选择。

---

上一篇讲的是“平均单价”的两种算法：把单价按行平均得 2537.5 元，用总收入除以总件数得 1478.6 元。那个坑出在“平均”里藏着一次没说出口的除法，按谁除没讲清楚。

这一篇要说的坑更隐蔽：即使分母明确、算法毫无争议，一个平均数照样可能把你带偏。因为平均数有一个天生的弱点——它可能站在一个没有任何人站的位置上。

## 五个客户，一个平均数

假设这个月只有五个客户下单，消费金额是：

20 元、30 元、40 元、50 元、3000 元。

平均数是 $\frac{20+30+40+50+3000}{5}=\frac{3140}{5}=628$ 元。

现在换一个同样有用的数：**中位数**。做法是把数据从小到大排好，取站在正中间的那个值；如果个数是偶数，就取中间两个数的平均值。

五个数排成一行，正中间是第三个，也就是 40 元。

628 元和 40 元，差了 15 倍。哪一个更能描述“典型的一个客户花了多少钱”？平均数 628 元这个数，五个客户里没有任何一个人是它。而中位数 40 元的意思是：有 2 个客户花得比它少，2 个比它多——这句话按定义一定成立。

## 平均数为什么这么容易被拉走

平均数等于总量除以个数。它的位置像一个杠杆的支点：每个数都按“自己离中心有多远”对支点施加拉力，**离得越远，拉力越大**。

所以只要有一个数跑得足够远，它一个人就能把平均数拽到别处，跟其他数有多少个无关。把上面那个 3000 元改成 30000 元：

$$\frac{20+30+40+50+30000}{5}=\frac{30140}{5}=6028 \text{ 元}$$

平均数涨了将近十倍。而中位数呢？还是 40 元，一动不动——因为 30000 元本来就排在最右边，把它的数值改大，并不会改变它的位次。

这就是两者的根本区别：**平均数对数值的大小敏感，中位数只对数值的位置敏感。** 一个极端值无论往上跑多远，只要它还是排在最后一个，对中位数的影响就是零；但对平均数的影响可以无限增长。

反过来说，“平均数变了”这句话能推出的信息很少——它可能意味着每个人都在变，也可能只意味着某一个人的变化。

## 现实里，这种分布非常常见

收入、房价、客单价、订单金额、用户停留时长、客服响应时间、故障恢复时间，它们有一个共同点：**下面有硬边界，上面没有。**

一次响应不可能小于 0 毫秒，但一次故障可以卡住 10 秒，也可能卡住 10 分钟；一个客户可以花 50 元，也可能花 50 万。凡是这样的变量，分布都会堆在偏小的一侧、向右拖出一条长尾——这叫**右偏**。

右偏有一个好用的诊断线索：**平均数会大于中位数，偏得越厉害差得越远。** 所以看到这两个数差很多时，先别急着挑一个用，而要意识到“这个变量的分布是不对称的”，这本身就是结论的一部分。

一个公开的真实例子：美国人口普查局 2023 年的住户收入报告里，住户收入中位数是 80,610 美元 [2]，平均收入约 114,500 美元 [4]，平均数比中位数高约四成（这两个数同出自该报告的表 A-1 [3]）。原因不难理解：少数极高收入把平均数抬了上去，而中位数只关心“排中间的那个人”。

![同一份薪资数据上平均数与中位数的差别：平均数被少数高薪拉向右侧](https://sebastianraschka.com/images/faq/median-vs-mean/salary.png)

## 用平均数做阈值，比用它描述人更危险

描述“典型值”时用错平均数，只是说得不准。把它当作告警线、考核线、达标线，问题会更大，因为平均数会同时掩盖两件事：**尾部有多长，以及尾部里有多少个单位。**

把上面的收入换成服务响应时间。1000 次请求里，988 次用了 52 毫秒，12 次用了 2400 毫秒：

$$\text{平均数}=\frac{988\times52+12\times2400}{1000}=\frac{80176}{1000}\approx 80 \text{ 毫秒}$$

80 毫秒这个数，没有任何一次请求是这样：快的用 52 毫秒，慢的用 2400 毫秒。它离 100 毫秒的告警线还差得远，看着一切正常。但这 1000 次里，有 12 次让用户等了 2.4 秒。

要看清这件事，得用**分位数**。把数据从小到大排好，第 $p$ 百分位（记作 p$p$）就是站在 $p\%$ 位置上的那个值，意思是“有 $p\%$ 的数据比它小”。这里的 p50，也就是中位数，是 52 毫秒；p99 是 2400 毫秒。p99 说的是“最慢的那 1% 的人，等了多久”——一天 100 万次请求，1% 就是约一万次 [6]。

## 什么时候该换成中位数，什么时候平均数才是对的

不要从上面几段得出“平均数骗人，以后只用中位数”。它们在回答两个不同的问题。

**平均数回答的是：总量摊到每个单位是多少。** 它同时保留了总量和个数两个信息，所以只要你的结论需要跟总量对上账——成本、产能、库存、总工时的分摊——用的必须是平均数。平均数还有一个好性质：分组算出的平均数，可以按每组的个数加权合并成整体平均数。

**中位数回答的是：典型的一个是多少。** 当分布右偏、有个别单位大得离谱，而你要说的是“大多数人处于什么水平”时，用中位数。要注意中位数不能这样合并：两个组的中位数放在一起，合不出整体的中位数。

判断可以顺着三个问题走：

1. 你要的数需要跟总量对上账吗？需要，用平均数。
2. 这个变量的分布两边大致对称吗？最省事的检查是排序后看最小值、最大值和几个分位数（比如 p10、p50、p90），不画图也能看出形状。
3. 有没有一个单位可以比典型值大好几倍甚至几个数量级？有，就报中位数。

而且，**报数时最好两个一起报**：平均数加中位数，或者中位数加 p90 和 p10。两个数差多远，本身就是一条重要信息；只报一个数，等于替读者做了他没被告知的选择。

## 中位数的三个边界

中位数不是万能药，用它之前要知道它在哪里失效。

**第一，分布有两个峰的时候，两个数都不能单独用。** 假设客户分成两群：只用基础版的一群，客单价约 50 元；买全家桶的一群，客单价约 3000 元，中间几乎没人。这时平均数落在两群之间，中位数也落在两群之间——落在没人的空谷里。这种情况叫**双峰分布**，诚实的做法是把两群分开看，或者直接把分布画出来。

**第二，中位数对“变得更极端”完全无感。** 极端值再往上跑，中位数不会动。所以“中位数没变”不等于“没变化”：如果最顶上 10% 的人收入翻倍，而中间位置没被跨过，中位数看不出来——这时需要看多个分位数的变化。

**第三，取值范围很窄时，中位数会太粗。** 一份五分制的满意度问卷，平均分 2.8、3.0、3.3 三组人的中位数可能都是 3，组与组之间的差别就被抹平了 [5]。

## 一条可以直接用的规矩

拿到一批数，先写下你要回答的问题——是“典型的一个是多少”，还是“总量摊到每个单位是多少”。前者指向中位数，后者指向平均数。

然后别急着算，先看一眼分布的形状：排序看最小、最大和几个分位数，或者干脆看平均数离中位数有多远。差得远，说明分布是偏的，平均数不能单独用；差得近，两者都可以。

上一篇的陷阱是“平均”里藏着一次没说出口的除法；这一篇的陷阱是，即使除法说得明明白白，一个数仍然可能落在没人站的位置上。分母决定它回答的是谁的问题，分布形状决定它代表不代表大多数人，两件事都答完，一个平均数才算站得住。

## 术语表

- 中位数：把数据从小到大排好，站在正中间位置的那个值（个数为偶数时取中间两个的平均），一半数据比它小，一半比它大。
- 右偏（长尾）：数值在偏小一侧堆得很密、向右拖出一条长尾的分布，常见于有下界、没有上界的变量，如收入、房价、响应时间。
- 分位数：把数据排序后站在某个百分比位置上的值，记作 p50、p90、p99；p99 表示有 99% 的数据比它小。
- 双峰分布：数据分成两堆、中间几乎没有取值的分布，此时平均数和中位数都可能落在没有样本的区域。

## 来源

1. [OpenStax Introductory Statistics: Skewness and the Mean, Median, and Mode — 对称与偏斜分布中平均数、中位数的位置关系](https://openstax.org/books/introductory-statistics-2e/pages/2-6-skewness-and-the-mean-median-and-mode)
2. [U.S. Census Bureau: Income, Poverty and Health Insurance Coverage in the U.S.: 2023 — 2023 年住户收入中位数 80,610 美元](https://www.census.gov/newsroom/press-releases/2024/income-poverty-health-insurance-coverage.html)
3. [Income in the United States: 2023 (P60-282) — Table A-1 的收入平均数与中位数汇总](https://www2.census.gov/library/publications/2024/demo/p60-282.pdf)
4. [WalletHacks: What is the Average Income in America? — 引述 Census Table A-1，2023 年平均住户收入 114,500 美元](https://wallethacks.com/average-median-income-in-america/)
5. [Cross Validated: When does skew or prevalence of outliers make the median preferable to the mean? — 中位数的适用条件与取值档位有限时的信息损失](https://stats.stackexchange.com/questions/9987/when-does-the-amount-of-skew-or-prevalence-of-outliers-make-the-median-preferabl)
6. [ClickHouse: Percentiles vs averages — 1000 次请求中平均数 80 ms、中位数 52 ms、p99 2400 ms 的算例](https://clickhouse.com/resources/engineering/percentiles-vs-averages)
7. [Summary Statistics for Skewed Distributions (UT Austin) — 偏斜分布下平均数与中位数作为“中心”的适用性](https://web.ma.utexas.edu/users/mks/statmistakes/skeweddistributions.html)
8. [Sebastian Raschka: When should one use median as opposed to the mean? — 薪资数据上平均数与中位数差异的示例图](https://sebastianraschka.com/faq/docs/median-vs-mean.html)

---

原文：https://pangzhengboyin.com/articles/mean-vs-median-skewed-data-d6b34c55

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
