1. 为什么数据的概括性度量值得单独拎出来讲
很多人学统计学,前面几章还跟得上,一进入“数据的概括性度量”就开始犯迷糊。公式不算难,但概念容易混:均值、中位数、众数到底什么时候用哪个?标准差和方差有什么区别?偏态和峰态又是在描述什么?更麻烦的是,考试要考、工作要用,但教材往往把定义堆在一起,缺少一条清晰的逻辑线。
这一章的核心任务其实就一句话:把一堆杂乱的数据,压缩成几个能说明问题的数字。你拿到一份销售数据、一批实验测量值、一次问卷的几百份回答,不可能把原始数据一条条摆出来给别人看,必须用少数几个指标把数据的特征“概括”出来。这些指标分两大类:一类描述数据的集中趋势,也就是数据往哪儿聚;另一类描述数据的离散程度,也就是数据散得有多开。再进一步,还有描述分布形状的偏态和峰态。
这篇文章我打算按自己当年整理笔记的思路,把这一章从头到尾捋一遍。不只是抄定义,而是把每个指标的适用场景、计算逻辑、容易踩的坑都讲清楚。适合正在学统计学的学生、需要复习备考的人,也适合工作中要用数据分析但基础不牢的朋友。看完你至少能做到:拿到一组数据,知道该算哪个指标、为什么算它、算出来怎么解读。
2. 集中趋势:数据到底往哪儿聚
集中趋势是这一章的第一大块,也是大家最熟悉的部分。但熟悉不等于真懂,很多人对均值、中位数、众数的理解停留在“平均数”“中间那个数”“出现最多的数”,一到具体场景就选错。
2.1 均值:最常用,但也最容易被带偏
均值,也就是算术平均数,公式很简单:所有数据加起来除以个数。用符号表示,样本均值记作 x̄,总体均值记作 μ。它的优点是充分利用了每一个数据的信息,数学性质好,后续很多统计方法都建立在均值之上。
但均值有个致命弱点:对极端值极其敏感。我举个自己笔记里记过的例子。一个小组五个人月收入分别是 5000、5500、6000、6500、50000。均值算出来是 14600,但这个数字能代表这个小组的“一般水平”吗?显然不能,因为那个 50000 把均值硬生生拉高了。这时候均值就产生了误导。
所以用均值有个前提:数据分布相对对称,没有特别离谱的极端值。如果数据里有明显的离群点,要么用中位数,要么把极端值单独拿出来分析。这是我在实际处理数据时踩过的最多的坑——一上来就mean(),结果被一个异常值带偏整个结论。
另外补充一个细节:均值分简单算术平均和加权算术平均。加权平均在现实里用得更多,比如你期末成绩是平时分占 30%、考试占 70%,这就是加权。加权平均的本质是承认不同数据的重要性不一样,不能一视同仁。
2.2 中位数:抗造的位置代表
中位数是把数据从小到大排列后,处在正中间的那个数。如果数据个数是奇数,正中间那个就是中位数;如果是偶数,取中间两个数的平均值。
中位数最大的优点就是稳健,不受极端值影响。刚才那个收入例子,中位数是 6000,明显比均值 14600 更能代表“一般水平”。所以在收入分布、房价分布这类明显右偏的数据里,官方通常报中位数而不是均值,就是这个道理。
中位数的计算要注意两点。第一,必须先排序,不排序直接取中间位置是错的。第二,偶数个数据时取中间两个的平均,这个平均只是为了让中位数唯一,它本身不代表什么实际含义。我见过有人纠结“偶数个数据的中位数为什么是两个数的平均”,其实不用纠结,它就是一个定义上的处理方式。
中位数还有个特殊身份:它是分位数家族的一员。中位数是第 50 百分位数,把数据分成两半。往下还有四分位数、百分位数,这些在描述数据位置时非常有用,后面讲离散程度还会用到。
2.3 众数:出现次数最多的那个值
众数是数据中出现频率最高的数值。它跟均值、中位数最大的不同是:众数可以不存在,也可以有多个。如果每个数据都只出现一次,那就没有众数;如果有两个值并列出现次数最多,那就是双众数。
众数最适合用来描述分类数据。比如调查大家最喜欢的颜色,红色出现 80 次、蓝色 60 次、绿色 40 次,那众数就是红色。这种数据你没法算均值,中位数也排不出有意义的顺序,只有众数能用。
对于数值型数据,众数用得相对少,但在某些场景下很有价值。比如服装店进货,最畅销的尺码就是众数,按这个尺码多备货最合理。再比如分析用户活跃时段,出现次数最多的那个时间段就是众数,运营活动就安排在那个点。
这里有个容易混淆的点:众数描述的是“最常出现”,不是“最大”也不是“中间”。我见过有同学把最大值当成众数,这是完全不同的概念。
2.4 三个指标怎么选:一张表说清楚
| 指标 | 适用数据类型 | 优点 | 缺点 | 典型场景 |
|---|---|---|---|---|
| 均值 | 数值型 | 充分利用所有信息,数学性质好 | 受极端值影响大 | 成绩、身高、对称分布数据 |
| 中位数 | 数值型、有序型 | 稳健,不受极端值影响 | 未充分利用所有数据信息 | 收入、房价、偏态分布 |
| 众数 | 分类、数值型均可 | 适用于分类数据,直观 | 可能不存在或多个 | 颜色偏好、畅销尺码 |
选哪个,核心看两点:数据是什么类型,以及分布有没有极端值。分类数据只能选众数;数值型数据如果分布对称,优先均值;如果明显偏态或有离群点,优先中位数。这三个指标不是互相替代的关系,很多时候一起算出来对比着看,反而能发现数据的问题。比如均值远大于中位数,说明数据右偏,可能存在高值拉高;均值远小于中位数,说明左偏。
3. 离散程度:光看集中还不够
只描述集中趋势是不完整的。两组数据可能均值完全一样,但一组很集中、一组很分散,实际含义天差地别。离散程度就是用来衡量数据“散得有多开”的,它是集中趋势的必要补充。
3.1 极差和四分位差:最粗糙但最直观
极差就是最大值减最小值,也叫全距。它计算最简单,一眼就能看出数据的跨度。但极差只用到了两个极端值,中间的数据完全没参与,所以非常粗糙,而且同样受极端值影响。比如刚才那个收入例子,极差是 45000,但这个数字几乎完全由那个 50000 决定,说明不了整体分散情况。
四分位差是上四分位数减下四分位数,也就是中间 50% 数据的跨度。它比极差稳健,因为排除了两端各 25% 的数据,不受极端值干扰。四分位差常和箱线图配合使用,箱子的高度就是四分位差,箱子越矮说明中间数据越集中。
这两个指标属于“快速了解”级别,精度不高但胜在直观。实际分析中,我通常先用极差和四分位差快速扫一眼,再用方差和标准差做精确描述。
3.2 方差和标准差:离散程度的主力指标
方差是每个数据与均值之差的平方的平均值。为什么要平方?因为如果不平方,正负偏差会互相抵消,加起来永远是零,没法衡量分散程度。平方之后全是正数,就能累加了。
标准差是方差的平方根。为什么要开根号?因为方差是平方过的,单位也变成了原单位的平方,比如数据是“米”,方差单位就是“平方米”,不好解释。开根号之后,标准差的单位和原始数据一致,解释起来直观得多。
方差和标准差是这一章最重要的两个指标,也是后续推断统计的基础。它们的含义是:平均来看,每个数据偏离均值多远。标准差越大,数据越分散;标准差越小,数据越集中。
计算方差时有个关键区别:样本方差和总体方差。总体方差除以 n,样本方差除以 n-1。为什么样本方差要除以 n-1?因为样本均值本身是用样本数据算出来的,它会“贴近”样本数据,导致样本内偏差被低估。除以 n-1 是一种修正,让样本方差更好地估计总体方差。这个 n-1 叫自由度,是统计学里非常重要的概念。我当年学的时候死记硬背,后来理解了“用样本估计总体要付出代价,n-1 就是代价”,才真正记住。
3.3 变异系数:去掉量纲再比较
标准差有个局限:它是有单位的,而且数值大小受数据本身量级影响。比如比较身高和体重的离散程度,身高标准差可能是 5 厘米,体重标准差可能是 3 公斤,单位不同没法直接比。就算单位相同,一组数据均值是 10000,另一组均值是 10,标准差都是 2,显然第一组相对更集中。
变异系数就是解决这个问题的,它等于标准差除以均值,是个无量纲的相对指标。变异系数越大,说明相对离散程度越高。它特别适合比较不同量纲或不同量级的数据。
用变异系数要注意:均值接近零时不能用,因为分母太小会导致结果爆炸,失去意义。另外它只适用于数值型数据,且通常用于正数数据。
3.4 离散程度指标对比
| 指标 | 计算方式 | 是否受极端值影响 | 单位 | 适用场景 |
|---|---|---|---|---|
| 极差 | 最大值-最小值 | 影响极大 | 有 | 快速了解跨度 |
| 四分位差 | 上四分位-下四分位 | 影响小 | 有 | 稳健描述中间50% |
| 方差 | 偏差平方的平均 | 影响大 | 原单位平方 | 推断统计基础 |
| 标准差 | 方差开方 | 影响大 | 与原数据一致 | 最常用的离散指标 |
| 变异系数 | 标准差/均值 | 影响大 | 无 | 不同量纲比较 |
4. 偏态与峰态:描述分布的形状
集中趋势和离散程度描述的是数据的位置和分散,但两个分布可能均值和标准差都一样,形状却完全不同。偏态和峰态就是用来描述形状的。
4.1 偏态:数据往哪边歪
偏态衡量的是分布的不对称程度。如果分布左右对称,偏态为 0。如果右边尾巴长,也就是大部分数据集中在左边、少数极大值拖出长尾,叫右偏或正偏,偏态系数大于 0。反过来,左边尾巴长叫左偏或负偏,偏态系数小于 0。
右偏的典型例子是收入分布,大多数人收入中等偏低,少数人收入极高,把尾巴拖向右边。左偏的典型例子是考试分数,如果题目简单,大多数人考高分,少数人考低分,尾巴拖向左边。
偏态和均值、中位数的关系很实用:右偏时,均值大于中位数;左偏时,均值小于中位数;对称时三者接近。所以你看一份数据报告,如果只给了均值和偏态方向,就能推断中位数大概在均值的哪一侧。这是我在做数据初探时常用的快速判断方法。
4.2 峰态:尖还是平
峰态衡量的是分布的尖峰程度和尾部厚度,通常和正态分布比较。标准正态分布的峰态系数为 0(有些教材定义为 3,看具体约定)。峰态大于 0 叫尖峰分布,数据更集中在均值附近,尾部更薄;峰态小于 0 叫平峰分布,数据更分散,尾部更厚。
峰态这个概念在实际中不如偏态常用,但在风险分析里很重要。金融收益率分布如果峰态很高,意味着极端事件出现的概率比正态分布预测的要高,这就是所谓的“厚尾”风险。很多金融模型假设正态分布,结果在极端行情下失效,就是因为忽略了高峰态。
4.3 形状指标速查
| 指标 | 含义 | 大于0 | 小于0 | 等于0 |
|---|---|---|---|---|
| 偏态系数 | 不对称方向 | 右偏 | 左偏 | 对称 |
| 峰态系数 | 尖峰程度 | 尖峰、厚尾 | 平峰、薄尾 | 与正态相当 |
5. 用 Python 把这一章跑一遍
光看公式容易忘,我习惯用代码把每个指标算一遍,既加深理解,也方便以后直接复用。下面这段代码用一组模拟数据演示集中趋势、离散程度和形状指标的计算。
import numpy as np from scipy import stats # 模拟一组右偏数据:大部分人收入中等,少数人很高 data = np.array([5000, 5200, 5500, 5800, 6000, 6200, 6500, 7000, 8000, 50000]) # 集中趋势 mean_val = np.mean(data) median_val = np.median(data) mode_val = stats.mode(data, keepdims=False).mode # 离散程度 range_val = np.ptp(data) # 极差 q1 = np.percentile(data, 25) q3 = np.percentile(data, 75) iqr = q3 - q1 # 四分位差 var_val = np.var(data, ddof=1) # 样本方差,ddof=1 即除以 n-1 std_val = np.std(data, ddof=1) # 样本标准差 cv = std_val / mean_val # 变异系数 # 形状 skew_val = stats.skew(data) kurt_val = stats.kurtosis(data) print(f"均值: {mean_val:.2f}") print(f"中位数: {median_val:.2f}") print(f"众数: {mode_val}") print(f"极差: {range_val}") print(f"四分位差: {iqr}") print(f"样本方差: {var_val:.2f}") print(f"样本标准差: {std_val:.2f}") print(f"变异系数: {cv:.4f}") print(f"偏态系数: {skew_val:.4f}") print(f"峰态系数: {kurt_val:.4f}")跑出来你会看到均值明显大于中位数,偏态系数为正,验证了右偏的判断。这就是把公式和实际数据对应起来的过程,比死记定义有效得多。
几个代码上的注意点。np.var和np.std默认ddof=0,算的是总体方差;要算样本方差必须设ddof=1。scipy.stats.mode在新版本里返回的是对象,用keepdims=False取标量。stats.skew和stats.kurtosis默认算的是样本偏态和峰态,和教材公式可能有细微差别,但方向判断一致。
6. 常见问题与避坑清单
这一章看似简单,实际做题和工作中出错的地方很集中。我把自己遇到过和见别人踩过的坑整理成一张表。
| 问题 | 原因 | 正确做法 |
|---|---|---|
| 均值被极端值带偏 | 直接对含离群点的数据求均值 | 先看分布,偏态明显用中位数 |
| 样本方差算成总体方差 | 忘记除以 n-1 | 样本数据用 ddof=1 |
| 中位数忘记排序 | 直接取中间位置 | 必须先排序 |
| 变异系数在均值接近0时使用 | 分母过小导致结果失真 | 均值接近0时改用标准差 |
| 偏态方向判断反了 | 混淆尾巴方向和系数符号 | 尾巴在右为正偏,尾巴在左为负偏 |
| 分类数据算均值 | 数据类型不支持 | 分类数据只能用众数 |
再补充几个教材上不常写但很实用的经验。第一,均值、中位数、众数一起看,三者差异能快速揭示分布形状,这是数据初探的高效手段。第二,标准差比较必须在同量纲同量级下进行,否则用变异系数。第三,偏态和峰态对样本量敏感,小样本算出来的形状指标不稳定,别过度解读。第四,做报告时,如果数据偏态明显,同时给出均值和中位数,并说明差异原因,比只给一个数字专业得多。
这一章是整个统计学的地基。后面学抽样分布、参数估计、假设检验,全都要用到均值和标准差。把这些指标的含义、适用条件、计算细节吃透,后面会轻松很多。我自己复习的时候,就是把每个指标都手算一遍、再用代码验证一遍,两相对照,印象特别深。如果你也在学这一章,建议别只背公式,找一组真实数据从头算到尾,算完你对“概括性度量”这五个字会有完全不一样的理解。