跳转至

4.5   方差与标准差

小率拿来两组零花钱记录。两组的平均数差不多,可第一组每天都很稳定,第二组有时很多、有时很少。只看期望,完全看不出这种差别。

图 4.5.0 同样平均也可能波动不同

图 4.5.0   方差回答的问题是:随机变量通常离自己的中心有多远。

平均数一样,风险也一样吗

如果两个随机变量期望相同,但一个总在中心附近,另一个经常跑到很远的位置,它们的稳定程度完全不同。

4.5.1   先看离平均值多远

期望告诉我中心在哪,可我还是不知道它会不会乱跳。
那就量每个结果离中心多远。方差就是这些距离的平均账。

如果只看偏差 \(X-E[X]\),正负会互相抵消。所以我们先平方,再平均:

\[ Var(X)=E\left[(X-E[X])^2\right] \]

标准差(Standard Deviation)是方差的平方根:

\[ \sigma_X=\sqrt{Var(X)} \]

标准差和原变量单位相同,因此更适合口头解释。

4.5.2   分布的胖瘦

图 4.5.1 同均值不同方差的分布

图 4.5.1   均值相同的分布,方差越大,概率质量越分散,曲线看起来越胖。
所以方差越大,不一定中心变了,而是离中心更散。
对。期望看中心,方差看波动。

4.5.3   方差的速算公式

方差也可以写成更方便计算的形式:

\[ Var(X)=E[X^2]-(E[X])^2 \]

这条公式的意思是:先算平方后的平均,再减掉平均值的平方。

Bernoulli 的方差

\(X\sim Bernoulli(p)\),则 \(X^2=X\),所以 \(E[X^2]=E[X]=p\)

\[ Var(X)=p-p^2=p(1-p) \]

4.5.4   平移不改变方差,缩放会放大方差

若把每个值都加上常数 \(b\),只是整体平移,离中心的距离不变:

\[ Var(X+b)=Var(X) \]

若把每个值乘以 \(a\),偏差也会乘以 \(a\),平方后方差乘以 \(a^2\)

\[ Var(aX+b)=a^2Var(X) \]
乘以 2,方差变 4 倍?
对,因为方差看的是平方距离。

4.5.5   两个变量相加时要小心

如果 \(X\)\(Y\) 独立:

\[ Var(X+Y)=Var(X)+Var(Y) \]

但如果它们不独立,还要加上协方差项:

\[ Var(X+Y)=Var(X)+Var(Y)+2Cov(X,Y) \]

这句话会在 4.7 里变得非常重要。

方差不像期望那么自由

期望相加不要求独立;方差相加通常要检查是否独立,或者是否存在协方差。

4.5.6   Chebyshev:至少有多少在附近

Chebyshev 不等式给了一个很保守但通用的保证:

\[ P(|X-\mu|\ge k\sigma)\le \frac{1}{k^2} \]

也就是说,离均值超过 \(k\) 个标准差的概率不会超过 \(1/k^2\)

什么时候用

当你不知道分布形状,只知道均值和方差时,Chebyshev 不等式还能给出一个最低限度的范围判断。

4.5.7   用 Python 算波动

import numpy as np

daily_a = np.array([18, 20, 21, 19, 22])
daily_b = np.array([5, 35, 12, 28, 20])

for name, data in [("稳定组", daily_a), ("波动组", daily_b)]:
    print(name)
    print(f"平均 = {data.mean():.1f}")
    print(f"方差 = {data.var(ddof=0):.1f}")
    print(f"标准差 = {data.std(ddof=0):.1f}")
现在我能说清楚了:平均差不多,不代表波动差不多。
这句话就是方差的入口。

小率的笔记本

  • 期望看中心,方差看离中心的平方距离。
  • 标准差是方差开根号,单位更容易解释。
  • 平移不改变方差,缩放会让方差乘以缩放倍数的平方。
  • 两个变量相加时,方差是否能直接相加要看独立性或协方差。
  • Chebyshev 不等式给出不依赖分布形状的保守范围。