Probability & Stats · 第1章

统计与数据的直觉

从原始数据中提取信息,用数字讲述故事

1.1

数据类型与结构

统计学的基础是数据。在开始任何分析之前,我们必须先理解手中的数据属于哪种类型,因为不同类型的数据决定了我们能使用什么分析方法。

分类数据 vs 数值数据

数据类型定义例子可进行的运算
分类数据(定类)无顺序的类别性别、血型、颜色计数、比例
顺序数据(定序)有顺序的类别学历、满意度等级计数、排序
离散数值可数的整数值设备故障次数、学生人数加减、平均、标准差
连续数值可取任意实数值温度、重量、电压所有数值运算
核心洞察:数据类型决定分析方法

你不能对"颜色"求平均值,也不能用箱线图展示"血型分布"。理解数据类型是避免统计谬误的第一道防线。在实际工程中,传感器采集的通常是连续数值,而日志记录的事件类型则属于分类数据。

总体与样本

总体(Population)是研究对象的全体,样本(Sample)是从总体中抽取的一部分。由于通常无法获取总体全部数据,我们依靠样本统计量来推断总体参数。

总体均值 μ(未知)  ⟹   样本均值 X̄(已知,用于估计 μ)
工程应用:数据类型在工程中的识别

产品质量检测:一批零件的尺寸是连续数值,而"合格/不合格"的判定结果是分类数据。质检报告需要同时呈现数值统计(均值、方差)和分类汇总(合格率)。

网站用户行为分析:页面停留时间是连续数值,点击次数是离散数值,用户来源渠道是分类数据。多维度的数据类型混合是现代数据分析的常态。

1.2

集中趋势度量

面对一组数据,我们首先想知道的是:这组数据的"中心"在哪里?三个最常用的中心度量是均值中位数众数

均值(Mean)

均值是所有数据之和除以数据个数,是统计学中最常用的中心度量。

样本均值:X̄ = (1/n) Σᵢ₌₁ⁿ xᵢ = (x₁ + x₂ + ··· + xₙ) / n

总体均值用希腊字母 μ 表示。均值利用了所有数据的信息,但对异常值非常敏感。

中位数(Median)

中位数是将数据排序后位于中间位置的值。若数据个数 n 为奇数,中位数就是正中间的那个数;若 n 为偶数,中位数是中间两个数的平均值。

中位数的求法

步骤1:将数据从小到大排序。

步骤2:若 n 为奇数,中位数 = x₍ₙ₊₁₎/₂;若 n 为偶数,中位数 = (xₙ/₂ + xₙ/₂₊₁) / 2。

中位数不受极端值影响,在收入、房价等右偏分布中比均值更能代表"典型水平"。

众数(Mode)

众数是数据中出现次数最多的值。一组数据可能没有众数,也可能有多个众数。众数适用于所有数据类型——包括分类数据。

均值 vs 中位数:什么时候用哪个?

想象一个公司有10名员工,9人月薪1万元,CEO月薪100万元。均值是10.9万元,但中位数是1万元。如果你想了解"普通员工"的收入水平,中位数更准确;如果你想计算公司总人力成本的人均分摊,均值更合适。均值反映总量结构,中位数反映典型个体。

图 1-1:均值与中位数的对比——异常值对两者的不同影响
工程应用:考试成绩与金融收益率分析

考试成绩分析:某班级考试平均分75分,中位数82分。这说明成绩分布左偏——少数低分拉低了均值。教师应关注低分学生的学习困难,而非被平均成绩误导。

金融收益率波动:股票日收益率的均值可能为正,但中位数更接近零。这是因为极端大涨/大跌日拉高了均值,但大多数日子的波动很小。风险分析中,中位数收益配合尾部风险指标(VaR)更为稳健。

1.3

离散程度度量

仅知道数据的中心是不够的。两组数据可能有相同的均值,但一组 tightly clustered,另一组 widely spread。描述"分散程度"的核心指标是方差标准差

方差(Variance)

方差衡量数据点与均值之间的平均平方距离。方差越大,数据越分散。

样本方差:s² = (1/(n-1)) Σᵢ₌₁ⁿ (xᵢ - X̄)²
总体方差:σ² = (1/N) Σᵢ₌₁ᴺ (xᵢ - μ)²
为什么样本方差除以 n-1 而不是 n?

这是一个深刻的问题。当我们用样本均值 X̄ 代替未知的总体均值 μ 时,X̄ 本身就是从数据中估计出来的,它"迎合"了数据,导致 Σ(xᵢ - X̄)² 比真实的总平方和偏小。除以 n-1(而非 n)可以补偿这种低估,使得 s² 成为 σ² 的无偏估计。n-1 被称为"自由度"——失去1个自由度是因为我们先用数据估计了均值。

标准差(Standard Deviation)

标准差是方差的算术平方根,与原始数据具有相同的量纲,因此更容易解释。

样本标准差:s = √s²      总体标准差:σ = √σ²

在正态分布中,大约 68% 的数据落在 μ ± σ 范围内,约 95% 落在 μ ± 2σ 范围内。这一经验法则被称为68-95-99.7 法则

极差与四分位距

极差(Range)= 最大值 - 最小值。简单直观,但极度受异常值影响。

四分位距(IQR)= Q₃ - Q₁,即第75百分位数与第25百分位数之差。IQR 包含了中间50%的数据,对异常值稳健。

IQR = Q₃ - Q₁
标准差的直觉:平均偏离有多远?

标准差的本质问题是:数据点平均离中心有多远?直接用 Σ|xᵢ - X̄|/n(平均绝对偏差)似乎更自然,但绝对值在数学上难以处理(不可导)。平方不仅保证了非负性,还放大了远离中心的点的惩罚——这正是我们想要的:异常值应该对分散度指标有更大的贡献。

1.4

分布可视化:直方图与箱线图

数字可以描述数据,但图形能揭示数字背后的模式。直方图和箱线图是探索数据分布的两个基本工具。

直方图(Histogram)

直方图将数据划分为若干区间(bin),统计每个区间内的数据个数,用矩形条的高度表示频数或频率。直方图能展示数据的:

图 1-2:直方图示例——不同分布形状的对比

箱线图(Box Plot)

箱线图用五个统计量概括数据分布,是比较多组数据分布的利器。

五数概括(Five-Number Summary)

箱线图基于以下五个统计量:

  • 最小值(Min):数据中的最小值(或修正最小值)
  • 第一四分位数 Q₁:第25百分位数,即下四分位点
  • 中位数 Q₂:第50百分位数,箱体中的横线
  • 第三四分位数 Q₃:第75百分位数,即上四分位点
  • 最大值(Max):数据中的最大值(或修正最大值)

箱体的范围是 IQR = Q₃ - Q₁, whisker(须线)通常延伸到 Q₁ - 1.5·IQR 和 Q₃ + 1.5·IQR 范围内的最远数据点。

图 1-3:箱线图结构详解
工程应用:半导体晶圆厚度检测

在芯片制造中,晶圆薄膜厚度需要严格控制。工程师每天用箱线图监控不同机台的厚度分布:箱体过宽说明工艺不稳定;中位数漂移说明需要重新校准;超出 whisker 的点提示可能存在设备异常或测量错误。五数概括让复杂的厚度数据一目了然。

1.5

异常值检测

异常值(Outlier)是显著偏离其他数据点的观测值。它们可能是真实的极端情况,也可能是数据采集或记录错误。识别异常值是数据清洗的关键步骤。

IQR 法则

最常用的异常值判定方法是基于 IQR 的1.5×IQR 法则

下界 = Q₁ - 1.5 × IQR      上界 = Q₃ + 1.5 × IQR

任何落在这个区间之外的数据点都被标记为异常值。这个规则源于正态分布的性质:在正态分布中,只有约 0.7% 的数据会落在这个范围之外。

Z-Score 方法

Z-Score(标准分数)衡量一个数据点距离均值有多少个标准差:

Z = (x - X̄) / s

通常 |Z| > 3 的数据点被视为异常值(在正态分布中,约99.7%的数据落在 ±3σ 内)。

不要自动删除异常值!

发现异常值后的第一反应不应该是删除。首先要问:这个异常值是错误还是信号?在金融市场中,异常波动可能是崩盘前兆;在医疗监测中,异常生理指标可能是疾病的早期信号。异常值往往是最有信息量的数据点。

工程应用:网络流量异常检测

在网络安全中,服务器每秒请求数(QPS)通常有稳定的基线。使用 IQR 法则或 Z-Score 方法可以实时识别流量 spikes——这可能是 DDoS 攻击、系统故障,也可能是营销活动带来的正常峰值。结合时间序列分析,安全工程师可以区分"好"的异常和"坏"的异常。

Ex

例题精讲

例1:计算描述统计量

某工厂10个零件的直径测量值(mm)为:10.2, 10.5, 10.3, 10.4, 10.6, 10.5, 10.4, 10.3, 10.5, 10.4。计算均值、中位数、众数、方差和标准差。

第一步:排序数据

10.2, 10.3, 10.3, 10.4, 10.4, 10.4, 10.5, 10.5, 10.5, 10.6

第二步:计算均值

X̄ = (10.2 + 10.5 + 10.3 + 10.4 + 10.6 + 10.5 + 10.4 + 10.3 + 10.5 + 10.4) / 10 = 104.1 / 10 = 10.41 mm

第三步:计算中位数

n = 10 为偶数,中位数 = (第5项 + 第6项) / 2 = (10.4 + 10.4) / 2 = 10.4 mm

第四步:确定众数

10.4 出现3次,10.5 出现3次。因此这组数据有两个众数:10.4 和 10.5(双峰)。

第五步:计算样本方差和标准差

Σ(xᵢ - X̄)² = (10.2-10.41)² + 2×(10.3-10.41)² + 3×(10.4-10.41)² + 3×(10.5-10.41)² + (10.6-10.41)²

= 0.0441 + 2×0.0121 + 3×0.0001 + 3×0.0081 + 0.0361 = 0.1290

s² = 0.1290 / 9 = 0.0143 mm²

s = √0.0143 ≈ 0.1196 mm

均值 X̄ = 10.41,中位数 = 10.4,众数 = 10.4 和 10.5,方差 s² = 0.0143,标准差 s ≈ 0.12 mm
例2:五数概括与异常值识别

某网站20天的日活跃用户数(DAU,万人)为:12, 15, 14, 13, 16, 15, 14, 15, 13, 14, 15, 14, 16, 15, 14, 13, 15, 14, 28, 14。求五数概括,并用 IQR 法则检测异常值。

第一步:排序数据

12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 28

第二步:五数概括

Min = 12;Max = 28

中位数位置 = (20+1)/2 = 10.5,Q₂ = (第10项 + 第11项)/2 = (14 + 14)/2 = 14

Q₁ = 下半部分的中位数 = 第5项 = 14

Q₃ = 上半部分的中位数 = 第15项 = 15

第三步:IQR 法则判定异常值

IQR = Q₃ - Q₁ = 15 - 14 = 1

下界 = 14 - 1.5×1 = 12.5;上界 = 15 + 1.5×1 = 16.5

数据点 28 > 16.5,因此 28 是异常值。12 < 12.5,因此 12 也是异常值

五数概括:Min=12, Q₁=14, Q₂=14, Q₃=15, Max=28;异常值:12 和 28。经调查,28 是营销活动当天的数据,12 是服务器故障导致。
例3:比较两个班级的成绩分布

A班成绩:72, 75, 78, 80, 82, 85, 88, 90, 92, 95

B班成绩:60, 70, 75, 80, 85, 85, 90, 95, 100, 100

比较两个班级的集中趋势和离散程度。

A班统计量

均值 X̄ₐ = (72+75+78+80+82+85+88+90+92+95)/10 = 837/10 = 83.7

中位数 = (82+85)/2 = 83.5

Σ(xᵢ - X̄ₐ)² = 137.29 + 75.69 + 32.49 + 13.69 + 2.89 + 1.69 + 18.49 + 39.69 + 68.89 + 127.69 = 523.50

sₐ² = 523.50/9 = 58.17;sₐ ≈ 7.63

B班统计量

均值 X̄ᵦ = (60+70+75+80+85+85+90+95+100+100)/10 = 840/10 = 84.0

中位数 = (85+85)/2 = 85.0

Σ(xᵢ - X̄ᵦ)² = 576 + 196 + 81 + 16 + 1 + 1 + 36 + 121 + 256 + 256 = 1540

sᵦ² = 1540/9 = 171.11;sᵦ ≈ 13.08

比较分析

两班均值接近(83.7 vs 84.0),但 B 班标准差(13.08)几乎是 A 班(7.63)的两倍。说明 B 班成绩两极分化严重——既有满分也有不及格,而 A 班成绩更均衡。

A班:均值 83.7,标准差 7.63(均衡);B班:均值 84.0,标准差 13.08(分化)。均值相近时,标准差揭示了本质差异。
例4:Z-Score 标准化

某学生数学考试85分,班级平均分78分,标准差8分;英语考试72分,班级平均分65分,标准差5分。哪科成绩相对更好?

计算 Z-Score

数学 Z = (85 - 78) / 8 = 7/8 = 0.875

英语 Z = (72 - 65) / 5 = 7/5 = 1.40

解释

数学成绩比均值高 0.875 个标准差,英语成绩比均值高 1.40 个标准差。虽然数学绝对分数更高,但该生的英语成绩在班级中的相对位置更好。

在正态分布假设下,英语成绩约优于 92% 的同学,数学成绩约优于 81% 的同学。

英语成绩相对更好(Z = 1.40 > 0.875)。Z-Score 消除了不同科目量纲和难度的差异,使跨科目比较成为可能。
ML

MATLAB 代码演示

以下 MATLAB 代码演示本章核心统计量的计算与可视化。建议在 MATLAB 中运行,加深对描述统计的理解。

descriptive_stats.m
% 第1章:描述统计量计算 % 数据:零件直径测量值 data = [10.2, 10.5, 10.3, 10.4, 10.6, ... 10.5, 10.4, 10.3, 10.5, 10.4]; % 集中趋势 mu = mean(data); % 均值: 10.4100 med = median(data); % 中位数: 10.4000 mo = mode(data); % 众数: 10.4000 (返回首个) % 离散程度 v = var(data); % 样本方差: 0.0143 s = std(data); % 样本标准差: 0.1196 r = range(data); % 极差: 0.4000 % 五数概括与百分位数 q1 = prctile(data, 25); % Q1: 10.3500 q3 = prctile(data, 75); % Q3: 10.5000 iqr_val = iqr(data); % IQR: 0.1500 fprintf('均值=%.4f 中位数=%.4f 标准差=%.4f IQR=%.4f\n', mu, med, s, iqr_val);
visualization_ch01.m
% 第1章:直方图与箱线图可视化 data = [12, 15, 14, 13, 16, 15, 14, 15, ... 13, 14, 15, 14, 16, 15, 14, ... 13, 15, 14, 28, 14]; figure('Position', [100 100 1200 500]); % 子图1:直方图 subplot(1, 2, 1); histogram(data, 'BinWidth', 1, 'FaceColor', [0.42 0.30 0.60]); xlabel('DAU (万人)'); ylabel('频数'); title('日活跃用户分布'); grid on; % 子图2:箱线图 subplot(1, 2, 2); boxplot(data, 'Labels', {'DAU'}); ylabel('DAU (万人)'); title('DAU 箱线图(含异常值)'); grid on; saveas(gcf, 'ch01_visualization.png');
zscore_outlier.m
% 第1章:Z-Score 标准化与异常值检测 data = [12, 15, 14, 13, 16, 15, ... 14, 15, 13, 14, 15, ... 14, 16, 15, 14, 13, ... 15, 14, 28, 14]; % Z-Score 标准化 z = zscore(data); disp('Z-Scores:'); disp(z); % 标记 |Z| > 3 的异常值 outliers = abs(z) > 3; disp('异常值索引:'); disp(find(outliers)); disp('异常值:'); disp(data(outliers)); % 结果:索引 19,数值 28 被标记为异常值
上一章:无(这是第一章) 下一章:第2章 概率基础 →