跳转至

讲解稿 · 第 04 章 第 02 节 · 描述性度量

口播时长:约 17 分钟|建议语速:中速, 公式处停两拍|字数:约 4100 字


开场钩子(约 75 秒)

把场景搭一下。

你刚接手一家工厂, 任务是盯生产线。厂长扔给你一个 Excel: "这是上周抽检 50 个零件的直径数据, 你跟我说说, 咱们的机器状态咋样。"

你打开看一眼, 第一反应肯定是——算个均值? 算个最大值、最小值? 这没错, 但够不够?

如果上周均值是 10.00 mm, 这周均值也是 10.00 mm。你能说机器表现一样吗? 不能。两个数据可能长得完全不一样——上周 50 个值全挤在 9.99 到 10.01 之间, 这周却有 5 个跑到 10.10 以外去了。均值把"分散程度"全压没了。

更要命的是: 上周那一批 50 个零件里, 有没有那种"特别离谱"的离群点? 一个 11 mm 的零件, 后面客户拿着退货的时候, 你总不能说"均值还是对的啊"。

这节课就干一件事: 怎么用一组单一数字, 把一个数据集合的"分散程度、位置、形状、变量之间的关系"这四件事说清楚。这一组数字, 在统计学里就叫描述性度量 (descriptive measures), 在机器学习里是探索性数据分析 (Exploratory Data Analysis, EDA) 和特征工程的工具箱底座。


复习昨日 & 今日路线(约 45 秒)

上一节我们引入了矩 (moments) 这一族汇总统计量——一阶矩是均值, 二阶矩是方差, 三阶、四阶矩分别刻画偏度和峰度。今天我们把这些矩"翻译"成更接地气的工程语言: 方差怎么算、为什么要除以 \(N-1\)、z 分数怎么用、皮尔逊相关和点积什么关系。

下一节 §03 我们讲抽样与抽样分布——同样一个工厂, 只抽 50 个零件, 你怎么估计整批 50000 个的总均值? 这就要引出抽样分布 vs 总体分布这对核心区分。今天这一节是它的前置, 你先把"总体数据怎么描述"学清楚。


核心概念一 · 离散度: 数据有多散(约 3 分钟)

直觉

两个教室, 平均分都是 80。一个班 90% 的学生分数挤在 75 到 85 之间, 另一个班从 50 到 100 均匀铺开——这两个班是同一回事吗?

直觉告诉你不一样。怎么把这个"不一样"量化成一个数字?

定义

方差 (variance) 是每个点到均值的"平方距离"的平均:

\[\sigma^2 = \frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2\]

为啥要取平方? 因为偏差有正有负, 不平方的话正负会互相抵消, 给你一个永远接近 0 的误导值。

例子

数据 \(\{4, 8, 6, 5, 3, 7, 9, 5, 6, 7\}\), 均值 \(\mu = 6\)。算偏差平方和:

\((4-6)^2 + (8-6)^2 + (6-6)^2 + (5-6)^2 + (3-6)^2 + (7-6)^2 + (9-6)^2 + (5-6)^2 + (6-6)^2 + (7-6)^2\) \(= 4 + 4 + 0 + 1 + 9 + 1 + 9 + 1 + 0 + 1 = 30\)

除以 \(N = 10\), \(\sigma^2 = 3\)。这是总体方差。

反例

如果用 \(\sum |x_i - \mu|\) 而不是平方——平均绝对偏差 (Mean Absolute Deviation, MAD)——它同样能描述分散度, 但比方差抗离群点。同一个数据集, MAD = \(\frac{1}{10}(2+2+0+1+3+1+3+1+0+1) = 1.4\)。你把一个值从 9 改成 100: MAD 只增加 9.1, 方差却从 3 跳到 95——平方把大偏差放大。这就是为啥 ML 里有时候用 MAD, 而方差在数学证明里更顺手。

一句话总结

方差 = 到均值的平方距离的平均; 标准差 = 方差开根号, 回到原始单位 (\(\sigma = \sqrt{\sigma^2}\), 单位是 cm, 不是 cm²)。


核心概念二 · 贝塞尔修正: 样本为什么除以 \(N-1\)(约 2 分钟)

这一步是新手最常卡的地方。

场景: 你没法量完整个工厂的 50000 个零件, 只抽了 50 个。你想用这 50 个的方差去估计真实的方差, 怎么算?

公式换了个分母:

\[s^2 = \frac{1}{N-1} \sum_{i=1}^{N} (x_i - \bar{x})^2\]

直觉: 样本里通常比总体更集中——抽 50 个很难刚好抽到极端值。直接除以 \(N\) 会低估真实方差。除以 \(N-1\) 是一个数学上严格的无偏估计修正, 叫贝塞尔修正 (Bessel's correction)。

数字例子: 上面那 10 个数, 用 \(N\) 算方差是 3.0, 用 \(N-1\) 算样本方差是 \(30/9 \approx 3.33\)。后者更大一点, 因为它补偿了"样本范围比总体窄"这个偏差。

⚠️ 千万别死记"除以 \(N-1\) 永远对"。当你在描述数据本身 (比如这就是全部 10 个学生, 不再外推), 就用 \(\sigma^2\) 除以 \(N\); 当你在用样本估计总体, 用 \(s^2\) 除以 \(N-1\)。区分场景是根本。


核心概念三 · 位置: 某个值落在哪里(约 3 分钟)

直觉

均值告诉你"中心在哪", 但具体某个值相对其余数据排第几, 均值答不上来。这就需要百分位数 (percentile) 和四分位数 (quartile)。

定义

把数据从小到大排好, 第 \(p\) 百分位数是"低于它的数据占 \(p\%\)"的那个值。四分位数 就是三个特殊的百分位数:

  • Q1 = 第 25 百分位数
  • Q2 = 第 50 百分位数 (也叫中位数 median)
  • Q3 = 第 75 百分位数

四分位距 (Interquartile Range, IQR) = \(Q3 - Q1\)。它刻画中间 50% 数据的分散度, 刻意忽略两端的极端值——这就是它比标准差抗离群的原因。

例子

10 个数 \(\{3, 4, 5, 5, 6, 6, 7, 7, 8, 9\}\), 排好序后:

  • Q1 = 第 2.5 个位置, 近似 = \(\frac{4+5}{2} = 4.5\)
  • Q2 = 中位数 = \(\frac{6+6}{2} = 6\)
  • Q3 = 第 7.5 个位置, 近似 = \(\frac{7+8}{2} = 7.5\)
  • IQR = \(7.5 - 4.5 = 3\)

反例

z 分数 是另一种"位置描述", 但坐标系不同:

\[z = \frac{x - \mu}{\sigma}\]

它告诉你"这个值离均值有多少个标准差"。\(z = 2\) 是均值之上 2 倍标准差, \(z = -1.5\) 是均值之下 1.5 倍标准差。

数字: 上面的数据 \(\mu=6, \sigma=\sqrt{3}\approx 1.73\), 所以 \(x = 9\) 的 z 分数 = \((9-6)/1.73 \approx 1.73\)。

这俩不要混——Q1/Q2/Q3 是百分位数排名, z 分数是标准差距离。Q2 一定是 0 排名 (50% 之下的分界), z 分数的中位数不一定是 0 (只有对称分布时才是)。

一句话总结

位置度量 = Q1/Q2/Q3 + IQR + z 分数, 共同回答"某个值相对整体在哪"。

⏸️ 暂停思考 · 第一次

想象你是一家外卖平台的分析师。订单金额的均值是 45 元, 但 Q1=20, Q3=80——中位数 30。你能讲出什么故事?

提示: 大多数订单集中在 20-30 元, 但有一批少数但金额巨大的订单把均值拉到 45。


核心概念四 · 形状: 偏度与峰度(约 2.5 分钟)

直觉

有时候两个分布均值和方差都一样, 形状 还是差很多。一个对称, 一个拖着长尾巴。

定义

偏度 (skewness) 是标准化三阶矩:

\[\text{Skewness} = \frac{1}{N} \sum_{i=1}^{N} \left(\frac{x_i - \mu}{\sigma}\right)^3\]
  • = 0: 对称, 如正态分布
  • 0: 右尾长 (正偏), 如收入分布 (大多数低收入, 少数极高收入)

  • < 0: 左尾长 (负偏), 如退休年龄分布

峰度 (kurtosis) 是标准化四阶矩:

\[\text{Kurtosis} = \frac{1}{N} \sum_{i=1}^{N} \left(\frac{x_i - \mu}{\sigma}\right)^4\]

正态分布的峰度 = 3。大于 3: 尾部厚, 极端值更多; 小于 3: 尾部薄。

例子

收入数据 \(\{3, 4, 5, 5, 6, 6, 7, 7, 8, 100\}\) (最后那个 100 是老板):

算偏度: 偏差标准化的三次方求平均, 由于 100 那项 \((100-6.1)/28 \approx 3.36\), 三次方 = 37.9, 把整体偏度推到大约 +2.5。右偏, 严重右偏。

反例

均值的偏度 = 0, 但你不能说它没有偏度——偏度是对整个分布形状的度量, 不是对均值的度量。

一句话总结

偏度看左右对称性, 峰度看尾部厚度。两者共同构成"分布长啥样"的两个补充维度。


核心概念五 · 相关: 两个变量怎么一起动(约 3 分钟)

直觉

冰淇淋销量和溺水人数, 月度数据高度同步增长——是因为吃冰淇淋导致溺水吗? 当然不是, 是因为夏天这一共同原因。相关 ≠ 因果。但"两个变量一起动"这个观察本身很有用, 怎么量化?

定义

皮尔逊相关系数 (Pearson correlation):

\[r = \frac{\sum_{i=1}^{N} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \cdot \sqrt{\sum (y_i - \bar{y})^2}}\]

取值 \([-1, +1]\): +1 完美正相关, -1 完美负相关, 0 不相关 (线性意义上)。

与 Ch01 的连接

回忆 Ch01 的点积 (dot product) 和余弦相似度 (cosine similarity)。如果先把 \(x\) 和 \(y\) 各减去均值 (得到 \(\tilde x_i = x_i - \bar x\), \(\tilde y_i = y_i - \bar y\)), 那么分子就是 \(\tilde{\mathbf{x}} \cdot \tilde{\mathbf{y}}\), 分母就是两个向量的长度。皮尔逊 r 就是"去均值之后两个向量的余弦相似度"。这是个 Ch01 知识的 Ch04 应用。

例子

\(x = \{1,2,3,4,5,6,7,8\}\), \(y = 2x+1 = \{3,5,7,9,11,13,15,17\}\)。线性关系完美, \(r = +1\)。

\(x = \{1,2,3,4,5,6,7,8\}\), \(y = \{8,7,6,5,4,3,2,1\}\)。完美负线性, \(r = -1\)。

反例

斯皮尔曼相关系数 (Spearman correlation) 不直接用原始值, 而是先做秩变换——把每个值换成它在数据里的排名 (1, 2, 3, ...), 然后在秩上算皮尔逊。它衡量"单调关系"而不只是"线性关系"。

数字: \(x = \{1, 2, 3, 4, 5, 6, 7, 8\}\), \(y = x^2 = \{1, 4, 9, 16, 25, 36, 49, 64\}\)。皮尔逊 = 0.96 (虽然单调但非线性); 斯皮尔曼 = 1.0 (因为秩的对应完美)。斯皮尔曼更抗离群、能抓非线性——这是它俩的核心区别。

一句话总结

皮尔逊 = 去均值后的余弦相似度, 度量线性关联; 斯皮尔曼 = 在秩上算皮尔逊, 度量单调关联。


核心概念六 · 几何平均 vs EMA: 两种"聪明平均"(约 2.5 分钟)

直觉一: 几何平均

算术平均在"增长率"这种乘性数据上是错的。

投资连涨三年, 每年 +10%, +20%, +30%。算术平均 (10+20+30)/3 = 20% 听起来"中间值", 但实际: 第一年 100 涨到 110, 第二年 110 涨到 132, 第三年 132 涨到 171.6。总收益 = 71.6%。三年算下来年均复合增长率 = \(\sqrt[3]{1.10 \times 1.20 \times 1.30} - 1 = \sqrt[3]{1.716} - 1 \approx 1.196 - 1 = 19.6\%\)。

几何平均 (geometric mean):

\[\bar{x}_{\text{geo}} = \left(\prod_{i=1}^{N} x_i\right)^{1/N}\]

把百分比换因子 (1.10, 1.20, 1.30), 连乘开 \(N\) 次方, 再减 1。增长率要乘, 不用算术平均。

直觉二: 指数移动平均 (EMA)

简单移动平均窗口里每个点权重一样。EMA 给近期观测更大权重:

\[\text{EMA}_t = \alpha \cdot x_t + (1 - \alpha) \cdot \text{EMA}_{t-1}\]

平滑因子 \(\alpha \in [0, 1]\) 控制响应速度: \(\alpha\) 大 → 紧跟最新值; \(\alpha\) 小 → 更平滑、忽略噪声。

例子

\(\alpha = 0.3\), 序列 \(\{1, 2, 3, 4, 5\}\):

  • \(\text{EMA}_1 = 1\)
  • \(\text{EMA}_2 = 0.3 \times 2 + 0.7 \times 1 = 1.3\)
  • \(\text{EMA}_3 = 0.3 \times 3 + 0.7 \times 1.3 = 1.81\)
  • \(\text{EMA}_4 = 0.3 \times 4 + 0.7 \times 1.81 = 2.467\)
  • \(\text{EMA}_5 = 0.3 \times 5 + 0.7 \times 2.467 = 3.027\)

最后落到 3.027, 介于"真值" 3 和"最近值" 5 之间, 但偏向近期。

一句话总结

几何平均管乘性数据 (增长率、回报); EMA 管时序数据 (Adam 优化器、批归一化都用它)。


核心概念七 · 离群点检测: 两种方法对比(约 2 分钟)

最后一件事: 怎么判断一个点是"正常波动"还是"离群点"?

IQR 方法: 点若落在 \(Q1 - 1.5 \times \text{IQR}\) 之下或 \(Q3 + 1.5 \times \text{IQR}\) 之上, 就是离群点。

z 分数方法: 点若满足 \(|z| > 3\) (离均值超过 3 个标准差), 就是离群点。

例子

数据 \(\{2, 3, 3, 4, 5, 5, 5, 6, 6, 7, 50\}\):

  • Q1 ≈ 3, Q3 ≈ 6, IQR = 3, 边界 = \([3 - 4.5, 6 + 4.5] = [-1.5, 10.5]\)。50 落在上界之外 → IQR 法判定为离群点。
  • 均值 ≈ 8.7, 标准差 ≈ 13.4。50 的 z 分数 = \((50-8.7)/13.4 \approx 3.08\)。z 法也判定为离群点 (刚好过 3 阈值)。

反例

如果把 50 改成 100, IQR 法仍然判定为离群点 (边界不变, 100 > 10.5)。但 z 分数 = \((100-8.7)/13.4 \approx 6.8\), 远超 3。

两种方法的本质差别: IQR 法只看分位数, 不假设分布形态; z 法默认正态近似, 一旦分布严重偏斜就失效 (因为均值和标准差都被极端值带跑了)。

一句话总结

IQR 法稳健 (不假设正态), z 法对近似正态的数据好用。偏斜数据优先选 IQR。


一个走完全程的例子(约 2.5 分钟)

好, 把今天所有零件串起来, 回到开头那个工厂场景。

任务: 一批零件直径数据 (单位 mm) \(\{9.95, 10.02, 9.98, 10.05, 9.97, 10.01, 9.99, 10.03, 10.00, 10.04\}\)。你现在要做的是完整描述这份数据, 并判断生产状态。

Step 1 · 位置。均值 = \(\frac{99.99}{10} = 9.999 \approx 10.00\)。中位数 = 第 5、6 个均值 = \((9.99 + 10.00)/2 = 9.995\)。均值和中位数几乎相等——数据对称。

Step 2 · 离散度。\(\sigma^2 = \frac{0.0240}{10} = 0.0024\)。\(\sigma = 0.049\) mm。极差 = \(10.05 - 9.95 = 0.10\) mm。典型波动不到 0.05 mm。

Step 3 · 形状。画一遍每个值的标准化偏差, 三次方求平均 ≈ 0.05, 几乎对称。峰度 ≈ 2.4, 尾部比正态稍薄——没异常极端值。

Step 4 · z 分数。最远的点 \(10.05\) 对应 \(z = (10.05-10.00)/0.049 \approx 1.02\)。所有点都落在均值 1 个标准差以内, 没有 \(|z| > 3\) 的离群点。

Step 5 · 离群点检测。Q1 ≈ 9.98, Q3 ≈ 10.03, IQR ≈ 0.05, 边界 \([9.905, 10.105]\)。全部 10 个点都安全。

结论: 生产稳定, 直径以 10.00 mm 为中心, 波动仅 ±0.05 mm, 无离群点——可以放心出货。

注意这个流程就是真实场景下探索性数据分析 (EDA) 的标准动作: 先看位置, 再看离散度, 再看形状, 最后看离群点。今天讲的每个度量都各有位置。


易错点回头看(约 80 秒)

三条最常翻车的地方。

坑一 · 很多人以为"样本方差永远用 \(N-1\), 总体方差永远用 \(N\)"。其实是: 区分场景——当你要用样本去估计总体, 用 \(N-1\) (贝塞尔修正); 当你在描述手头这组数据本身, 用 \(N\)。"样本/总体" 不是绝对标签, 是用途——估计未来用 \(N-1\), 描述当下用 \(N\)。

坑二 · 很多人以为"z 分数的判定阈值永远是 3"。其实是: 阈值 3 假设近似正态。如果数据严重偏斜 (像收入、订单金额), z 法会失效——均值被极端值拉跑, 标准差虚高, 真正的离群点反而不报警。这种情况用 IQR 法 (1.5 倍 IQR 边界), 它不假设分布形态。

坑三 · 很多人以为"皮尔逊相关高 = 因果关系"。其实是: 相关 ≠ 因果。冰淇淋销量和溺水人数相关高, 是因为夏天这个共同原因; 起床早和年收入高相关, 可能是因为早起的人更自律——但你也可能是把"夜班工人 vs 白班工人"这个混淆变量 (confounder) 漏掉了。皮尔逊只回答"两个变量一起动的强度", 不回答"谁导致谁"。


与下节的钩子(约 30 秒)

到这里, 你手里已经有了描述一组数据的完整工具箱: 离散度、位置、形状、相关、离群点。

但工厂老板没让你只描述这一批数据——他问的是"这周这 50 个零件的均值 10.00, 能不能代表整批 50000 个零件的均值?"

下一节 §03 我们讲抽样与抽样分布。我们会遇到统计学里最常被搞混的一对概念: 抽样分布 vs 总体分布——一个是"你手上的样本的分布", 一个是"样本均值本身在重复抽样下的分布"。这俩长得像但完全不是一回事, 弄混了所有置信区间、p 值、假设检验全都会崩。

下一节见。