方差计算
什么是方差?
方差(Variance)是衡量数据集中数据点偏离均值程度的统计量,定义为偏差平方的平均值。方差越大,数据越分散;方差为零意味着所有数据点完全相同。
历史背景:方差的概念最早由英国统计学家和遗传学家罗纳德·费希尔(Ronald A. Fisher, 1890–1962)在 1918 年发表的里程碑论文"The Correlation Between Relatives on the Supposition of Mendelian Inheritance"(《基于孟德尔遗传假说的亲属间相关性》)中正式引入。在这篇论文中,费希尔需要一种精确的方式来量化遗传特征的变异程度,于是他引入了"variance"一词,并将其定义为偏差平方的平均值。
费希尔选择"variance"这个词是经过深思熟虑的——它源自拉丁语 variare(变化),简洁地传达了"变化程度"这一概念。在此之前,统计学家主要使用"均方偏差"(mean squared deviation)等冗长的表述。
直觉理解
假设有两个班级的数学成绩:A 班成绩为 {70, 72, 68, 71, 69},B 班为 {40, 100, 60, 90, 60}。两班均值相同(70 分),但 B 班方差远大于 A 班——成绩"散得更开"。方差精确量化了这种"散开"的程度。
为什么偏差要平方?
这是学生最常问的问题之一。为什么不直接取偏差的绝对值?为什么要平方?有三个深层原因:
原因 1:避免正负抵消
原因 2:数学上的便利性
平方函数 f(x) = x² 是处处可微的光滑函数,这使得方差在微积分和优化中非常容易处理。相比之下,绝对值函数 |x| 在 x = 0 处不可微,这给很多数学推导带来困难。
例如,最小二乘法(Least Squares)之所以选择最小化平方和而非绝对值之和,正是因为对平方和求导可以得到解析解(正规方程),而对绝对值之和的优化没有封闭形式的解。
原因 3:独立随机变量的方差具有可加性
替代方案:平均绝对偏差 (MAD)
如果使用绝对值而非平方,我们得到的是"平均绝对偏差"(Mean Absolute Deviation, MAD)。MAD 对异常值更稳健,在某些应用中(如中位数回归)更受青睐。但由于缺乏上述数学性质,方差和标准差在统计学中仍占主导地位。
总体方差 vs 样本方差 — Bessel 校正证明
| 总体方差 (σ²) | 样本方差 (s²) | |
|---|---|---|
| 公式 | σ² = Σ(xi - μ)² / N | s² = Σ(xi - x̄)² / (n-1) |
| 适用场景 | 数据包含全部个体 | 数据是总体的一个子集 |
| 除以 | N | n - 1 |
| 偏差性 | 精确值,无偏差 | 无偏估计量(Bessel 校正) |
为什么除以 n-1?以下是严格的数学推导:
证明:将 xi - x̄ 改写为 (xi - μ) - (x̄ - μ),展开平方,利用 Σ(xi - μ) = n(x̄ - μ) 化简。
右侧第 1 项:E[Σ(xi - μ)²] = nσ²(因为 E[(xi - μ)²] = σ² 对每个 i)
右侧第 2 项:E[n(x̄ - μ)²] = nVar(x̄) = n · σ²/n = σ²
除以 (n-1) 得到的估计量的期望值恰好等于总体方差 σ²,即无偏估计量。
而如果除以 n,E[Σ(xi - x̄)² / n] = (n-1)σ²/n < σ²,系统性低估了总体方差。
自由度解释:n 个数据点在已知均值 x̄ 后只剩 n-1 个自由度(最后一个值由 Σxi = nx̄ 唯一确定)。这个"丢失的自由度"正是我们要从分母中减去的 1。
弗里德里希·贝塞尔(Friedrich Bessel, 1784–1846)是德国天文学家,以首次精确测量恒星视差而闻名。他在 1820 年代研究天文观测误差时,首先认识到需要用 n-1 而非 n 作为分母,以获得对真实测量误差的公正估计。
方差的数学性质
方差之所以成为统计学的基石,是因为它拥有一系列优美的数学性质。以下逐一解释每个性质及其直觉含义:
性质 1:平移不变性
性质 2:缩放的平方效应
性质 3:合并(线性变换)
性质 4:独立变量的可加性
实际应用:如果一个投资组合包含两个独立资产,组合的风险(方差)是两个资产风险的简单相加。这是现代投资组合理论的基础(Harry Markowitz, 1952)。
性质 5:一般情况(非独立)
性质 6:方差的计算捷径公式
方差分解与 ANOVA
方差可以被分解为不同来源的贡献。这一思想是方差分析(ANOVA, Analysis of Variance)的核心,由费希尔于 1925 年在其著作Statistical Methods for Research Workers中系统阐述。
全变异 = 组间变异 + 组内变异
- SSTotal(总平方和):所有数据点相对于总均值的偏差平方和
- SSBetween(组间平方和):各组均值相对于总均值的偏差平方和(乘以组大小)——反映组与组之间的差异
- SSWithin(组内平方和):各组内部数据点相对于各自组均值的偏差平方和——反映组内部的随机变异
ANOVA 的核心逻辑:如果组间变异远大于组内变异(F 值大),说明组之间的差异不太可能是偶然的,我们有理由认为各组来自不同的总体(即处理有效果)。
应用示例
测试 3 种肥料对番茄产量的影响:将 30 株番茄随机分为 3 组,施用不同肥料。ANOVA 将产量的总变异分解为"肥料类型导致的差异"(组间)和"同一肥料组内植株间的自然差异"(组内)。如果 F 检验的 p 值 < 0.05,说明至少有一种肥料的效果与其他显著不同。
ANOVA 的思想可以扩展到多因素(双因素 ANOVA、MANOVA)和更复杂的实验设计。方差分解的哲学思想——将总变异拆分为可解释的组成部分——是整个现代统计学的基石。
偏差-方差权衡(机器学习)
在机器学习中,模型预测误差可以分解为三个部分:
偏差 (Bias)
模型预测的系统性偏离。高偏差 = 欠拟合(模型太简单,无法捕捉数据的真实规律)
方差 (Variance)
模型对训练数据变化的敏感度。高方差 = 过拟合(模型太复杂,把噪声也当成规律)
不可约误差 (σ²)
数据本身的随机噪声,任何模型都无法消除
权衡的核心:降低偏差通常意味着使用更复杂的模型(如增加多项式阶数、加深神经网络层),但这往往会增加方差。反之,简化模型降低方差,但可能增加偏差。最佳模型在两者之间取得平衡,使总误差最小。
实际策略:
- 正则化(L1/L2 regularization):通过惩罚模型复杂度来减少方差,以略微增加偏差为代价
- 交叉验证:通过在不同数据子集上评估模型来估计真实泛化误差
- 集成方法(Bagging, Random Forest):通过平均多个高方差模型来降低方差
- Boosting(XGBoost, AdaBoost):通过逐步修正偏差来降低偏差
相关工具
- 标准差计算器 — 方差的平方根,单位与原始数据一致,更便于直观理解
- 均值/中位数/众数计算器 — 集中趋势度量,与方差(离散趋势)互为补充
- 正态分布计算器 — 正态分布由均值和方差(或标准差)完全确定
- 百分位数计算器 — 非参数方法描述数据分布位置
- Z 分数计算器 — 用标准差将数据标准化
常见问题
方差的单位是原始数据单位的平方。例如,如果数据单位是"千克"(kg),方差的单位是"千克的平方"(kg²)。这是方差的一个缺点——它的单位不直观。这也是为什么我们经常使用标准差(方差的平方根),因为标准差的单位与原始数据相同。
绝不可能。方差是偏差平方的平均值,而平方值永远 ≥ 0,因此方差永远 ≥ 0。方差为 0 当且仅当所有数据点完全相同。如果你的计算得到了负数,说明计算过程中有错误。
方差是协方差的特例:Var(X) = Cov(X, X)。协方差 Cov(X, Y) = E[(X - E[X])(Y - E[Y])] 衡量两个变量的共同变动方向和强度。当 Y = X 时,协方差退化为方差。将协方差标准化(除以两个变量各自的标准差)得到相关系数:r = Cov(X,Y) / (SD(X) · SD(Y)),取值范围 [-1, 1]。
总体方差在 N=1 时为 0(该点就是均值,偏差为零)。但样本方差在 n=1 时是未定义的,因为公式中的分母 n-1 = 0,导致除以零。这在直觉上也是合理的:只有一个观测值时,我们完全无法估计总体的变异程度——一个点提供的信息不足以推断"散布"。至少需要 2 个数据点才能计算样本方差。
Excel 中:VAR(或 VAR.S)计算样本方差(除以 n-1);VARP(或 VAR.P)计算总体方差(除以 N)。类似地,STDEV/STDEV.S 是样本标准差,STDEVP/STDEV.P 是总体标准差。Google Sheets 和 LibreOffice Calc 也使用相同的命名约定。记忆技巧:有 P 的是 Population(总体),没有 P 的是 Sample(样本)。