数据直觉:任意数据集都很难有偏离均值多倍标准差的数据

  |  

摘要: 对任意数据集,很难有偏离均值多倍标准差的数据

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


新拿到一份业务数据,在分析这份数据的时候,我们往往从均值和标准差入手。本文我们推导均值和标准差的两个性质,这两个性质的解释非常直观,有助于我们建立对数据的感觉。

记数据集为 $X$,其中第 $i$ 条数据为 $X_{i}$,共 $N$ 条数据。然后我们考察数据集 $X$ 的均值和标准差的性质。然后给出一个重要的数据直觉:任意数据集都很难有偏离均值多倍标准差的数据。

注意这里我们谈的是一个数据集(可能是总体,也可能是来自总体的一个抽样)的均值和方差,是统计方面的话题,与概率论中一个随机变量的分布的期望和方差的性质有所区别。但是我们可以对比着看,看有哪些性质是一样的,哪些是特有的。

均值

在没有任何背景知识的情况下拿到一个新的数据集,对这份数据建立的第一感觉往往来自其均值。

数据集的均值记为 $\mathrm{mean}(X) = \frac{1}{N}\sum\limits_{i=1}\limits^{N}X_{i}$。均值有一些性质,相对来说比较简单,因此很容易忽略,下面是一个简要的总结。

均值的性质

(1) 缩放数据,就要缩放均值

(2) 平移数据,就要平移均值

(3) 每个数据与均值的差的和为零

均值的均方距离是最小的

下面是均值的一个比较深刻的性质,均值的均方距离是最小的。

定理

证明

考察一元函数 $f(\mu) = \sum\limits_{i=1}\limits^{N}(X_{i} - \mu)^{2}$,这是 n 个幂函数相加,因此 $f(\mu)$ 是一个初等函数,于是 $f(u)$ 可导,若要 $f(\mu)$ 取到最小值,需要满足驻点条件:

由以上驻点条件得到 $\sum\limits_{i=1}\limits^{N}X_{i} = N\mu$,也就是 $\mu = \frac{1}{N}\sum\limits_{i=1}\limits^{N}X_{i}$,这正是数据集均值的定义,$\mu = \mathrm{mean}(X)$。这说明如果 $f(\mu)$ 取到最小值,则 $\mu$ 必须取 $\mathrm{mean}(X)$。

另一方面,$f’’(\mu) = \frac{\mathrm{d}}{\mathrm{d}x}\sum\limits_{i=1}\limits^{N}2(\mu - X_{i}) = \sum\limits_{i=1}\limits^{N}2 = 2N > 0$。这说明如果 $\mu = \mathrm{mean}(X)$,则 $f(\mu)$ 取到最小值。

$\Box$

这个性质表明,均值是唯一与所有数据条目都比较接近的数,它反映了数据集整体的位置,因此通常称其为位置参数。如果想用一个尽可能与每一条数据都接近的数来汇总该数据集,均值就是这样的数。


标准差

对于一份数据集,有了均值之后,一般来讲我们还想知道数据在多大程度上接近均值,这一信息由标准差给出。

标准差反映了数据集中数据与均值的平均偏差,或数据散布的宽度,因此称为尺度参数。若标准差很大,则会有很多数据取值比均值大很多或小很多;若标准差很小,则很多数据的取值都会很接近均值。

因此对于数据集 $X$ 中的一条数据 $X_{i}$,讨论该条数据偏离均值多少个标准差是很有意义的,偏离均值 k 倍标准差以内的意思是:

后面我们会说明,任意数据集,偏离均值多倍标准差的数据很少。首先我们看一些标准差的比较显然的性质,正因为比较显然,所以有时候会容易忽略。

标准差的性质

(1) 平移数据不影响标准差

(2) 缩放数据会缩放标准差

数据很难偏离均值多倍标准差

下面是标准差的一个比较深刻的性质,即对任意数据集,数据条目很难偏离均值多倍标准差。

定理

偏离均值至少 $k$ 倍标准差的数据点最多有 $\frac{1}{k^{2}}$ 个。

证明 (构造法)

记 $\sigma = \mathrm{std}(X)$。

根据数据集均值和标准差的性质,平移数据可以改变均值而不改变标准差,因此在某一特定均值下关于标准差的性质,平移数据后仍成立。因此不妨设均值为 0。

现在我们构造一个数据集,使得其中的数据条目偏离均值至少 $k$ 倍标准差的个数的比例为 $r$,并且使得 $r$ 尽可能大。

那么数据中应该有 $N(1-r)$ 个取值为 0,因为这些数据对标准差的贡献是 0,若某条数据大于 0,则该条数据会多贡献标准差,可能会使得 $r$ 变小。

同时有 $Nr$ 条数据的取值为 $k\sigma$,因为如果一条数据取值大于 $k\sigma$,那么该条数据会贡献更多标准差,这样可能会使得 $r$ 变小。

将这样构造的数据集代入标准差的公式:

得到 $r = \frac{1}{k^{2}}$。由于这样的构造方式是按照使得 $r$ 尽可能大来构造的,因此对于任意数据集:

$\Box$

上述定理给出的上界对于任意数据集都是成立的。定性理解的话,标准差的关键在于你不会看到很多数据与均值的偏差超过很多倍标准差,因为前面的推导,从理论上就证明了你做不到。

稍微定量一点理解,对于任意数据集,最多 $100\%$ 的数据偏离均值一倍标准差;最多 $25\%$ 的数据偏离均值 2 倍标准差,最多 $11\%$ 的数据偏离均值 3 倍标准差。

但是接近上界的数据集是特殊构造的,因此上面这些只是理论的上界,对于真实数据集上面这些上界会严重高估数据与均值的偏离。对于正常一点的数据集,会有更随机的分布,那么偏离均值很远的数据条数会远小于上界。

总结

本文我们推导了数据集的均值,标准差的一些性质,这些性质有助于我们对数据集建立一些感觉。

关于标准差,还有很多话题本文没有谈到:

  • 一些其它涉及到数据直觉的性质;
  • 当我们谈一个数据集本身的标准差时,跟我们将一个数据集视为总体的抽样,进而通过数据集的统计量去估计总体的标准差时,计算公式稍有不同;
  • 对于实际数据,应该如何编程计算标准差。

这些内容在下一篇文章中跟大家分享。

本文参考了大卫·福赛斯的《概率与统计:计算机科学视角》,感兴趣的朋友可以 下载


Share