方差与标准差衡量数据波动大小的计算方法
数据分析中,仅知道平均值远远不够。例如,两组数据的平均值可能相同,但一组数据紧密围绕平均值,另一组则分散在很大范围内。为了精确描述这种“分散程度”,我们需要计算方差和标准差。
阶段一:计算数据的平均值
方差和标准差的计算都基于所有数据与平均值的偏离程度。因此,第一步是 求出 数据的平均值(算术平均数)。
- 收集 所有数据点。例如,一组数据:
3,5,7,9,11。共有5个数据。 - 求和 所有数据:
3 + 5 + 7 + 9 + 11 = 35。 - 除以 数据个数:
35 ÷ 5 = 7。平均值\bar{x} = 7。
记一般公式:若有 n 个数据 x_1, x_2, \dots, x_n,则平均值 $\bar{x} = \frac{\sum_{i=1}^n x_i}{n}$。这里 $\sum$ 表示求和。
阶段二:计算每个数据与平均值的差值的平方
“波动大小”的核心思想是看每个数据点离平均值有多远。为了防止正负抵消,我们 计算 差值的平方。
- 用 每个数据减去平均值,得到差值:
3-7=-4,5-7=-2,7-7=0,9-7=2,11-7=4。 - 将 每个差值平方,得到平方差:
(-4)^2=16,(-2)^2=4,0^2=0,2^2=4,4^2=16。 - 写出 平方差列表:
16,4,0,4,16。
通式:第 i 个数据的平方差为 $(x_i - \bar{x})^2$。
阶段三:计算方差(总体方差与样本方差)
方差是这些平方差的平均值。但是,根据数据是代表整个总体还是仅为一个样本,计算方法略有不同。
3.1 计算总体方差(已知所有数据)
- 求和 所有平方差:
16 + 4 + 0 + 4 + 16 = 40。 - 除以 数据个数
n:40 ÷ 5 = 8。总体方差 $\sigma^2 = 8$。
公式:$\sigma^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{n}$。希腊字母 $\sigma$(西格玛)表示总体标准差,其平方 $\sigma^2$ 为总体方差。
3.2 计算样本方差(数据是总体的一个样本)
如果以上 5 个数据只是从一大群数据中抽出的样本,那么我们需要用 n-1 代替 n 来修正偏差(无偏估计)。
- 求和 平方差(同上):
40。 - 除以
n-1 = 4:40 ÷ 4 = 10。样本方差 $s^2 = 10$。
公式:$s^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{n-1}$。小写 s 表示样本标准差。记住:用 n-1 作为分母是为了让样本方差更准确地估计总体方差。
判断依据:如果你手头的数据本身就是全部数据(如全班学生的考试成绩),使用总体方差;如果是随机抽取的少数数据(如对1000人中抽10人的身高),使用样本方差。
阶段四:计算标准差
方差因为平方操作,单位变成了原始数据单位的平方,不直观。标准差则开平方根,恢复原始单位。
- 对 方差开平方根。
- 若为总体方差 $\sigma^2 = 8$,则总体标准差 $\sigma = \sqrt{8} \approx 2.828$。
- 若为样本方差 $s^2 = 10$,则样本标准差 $s = \sqrt{10} \approx 3.162$。
公式:$\sigma = \sqrt{\sigma^2}$, $s = \sqrt{s^2}$。标准差越小,数据越集中在平均值附近;标准差越大,数据越分散。
阶段五:综合示例区分总体与样本
假设你想知道某城市所有成年人的平均身高,但不可能测量每个人。你随机测量了 6 个人的身高(单位cm):160, 165, 170, 175, 180, 185。
- 计算 平均值:$\bar{x} = \frac{160+165+170+175+180+185}{6} = \frac{1035}{6} = 172.5$。
- 计算 每个差值平方:
(160-172.5)^2 = 156.25(165-172.5)^2 = 56.25(170-172.5)^2 = 6.25(175-172.5)^2 = 6.25(180-172.5)^2 = 56.25(185-172.5)^2 = 156.25
- 求和 平方差:$156.25+56.25+6.25+6.25+56.25+156.25 = 437.5$。
- 计算 样本方差:$s^2 = \frac{437.5}{6-1} = \frac{437.5}{5} = 87.5$。
- 计算 样本标准差:$s = \sqrt{87.5} \approx 9.354$。
如果这 6 个人是全市所有人(显然不可能),则总体方差 $\sigma^2 = \frac{437.5}{6} \approx 72.917$,总体标准差 $\sigma \approx 8.539$。实际场景中,这里应使用样本公式。
阶段六:用计算器或软件快速实现
手工计算繁琐,实际中常用电子表格或编程工具。这里以 Excel 或 Google Sheets 为例:
- 输入 数据到一列,例如
A1到A6依次为身高值。 - 计算 平均值:在任意空白单元格 输入
=AVERAGE(A1:A6)。 - 计算 样本标准差: 输入
=STDEV.S(A1:A6)(Excel 2010 以上)或=STDEV(A1:A6)(旧版)。结果约9.354。 - 计算 总体标准差: 输入
=STDEV.P(A1:A6),结果约8.539。 - 计算 样本方差: 输入
=VAR.S(A1:A6)。 - 计算 总体方差: 输入
=VAR.P(A1:A6)。
在 Python 中,使用 numpy 库:
import numpy as np
data = [160, 165, 170, 175, 180, 185]
# 样本标准差(默认ddof=1)
s = np.std(data, ddof=1) # 约9.354
# 总体标准差
sigma = np.std(data) # 约8.539
注意:ddof(Delta Degrees of Freedom)参数指定分母为 n - ddof。ddof=1 对应样本公式,ddof=0 对应总体公式。
阶段七:理解标准差的实际意义
标准差不仅告诉你数据是否分散,还能结合平均值构成一个范围来衡量“正常值”。例如,假设考试成绩平均值 70 分,标准差 10 分,那么约 68% 的数据落在 70 ± 10 分之间(若数据近似正态分布)。记住:标准差越小,数据越稳定;标准差越大,波动越明显。
警告:标准差对极端值(异常大或异常小的数据)非常敏感。一个离群值会大幅增加标准差。在分析前建议先检查数据中是否有明显错误值。

暂无评论,快来抢沙发吧!