A/B Testing 与正态分布(上)

发布于:1/5/2024, 8:54:54 AM @孙博
技术分享 | AB测试,数学
许可协议:署名-非商业性使用(by-nc)

在上一篇文章中,我们介绍了什么是中心极限定理,以及该定理在 A/B 测试数据分析过程中起到的至关重要的作用。中心极限定理揭示了:当我们拥有一个足够大的样本集合时,基于中心极限定理的特性,该样本的均值一定是服从正态分布的。

本章节让我们一起来回顾:什么是正态分布,以及正态分布在统计计算过程中起到了什么作用。

提到正态分布这个词,它是由两部分组成的 —— “正态”以及“分布”,“正态”的意思我们可以晚点再去了解,但“分布”的含义大家肯定都是很清楚的,在统计学领域,可以简单把它看成是一个不确定的值落在某个区间范围的概率。

数学是确定的科学,为什么会有不确定的值出现?我们来看一个例子。

假如我们掷出一枚硬币,当它落地时,正常情况下只会有两种结果 —— 正面向上或反面向上,这里我们不考虑硬币竖起来或者是掉到窨井盖里等异常情况。我们忽略硬币的重心、形变等干扰因素,那么正面或反面向上的概率可以视为均等的 —— 都为 1/2。那么当我们掷出两枚硬币时,其落地的结果将是以下四种的其中一种 —— [正,正], [正,反], [反,正], [反,反];假如是三枚,结果将是 [正,正,正], [正,正,反], [正,反,正], [正,反,反], [反,正,正], [反,正,反], [反,反,正], [反,反,反] 这八种可能之一。由于我们假设硬币是完美的,所以以上每种结果发生的概率是等同的。

现在我们换一种统计方式,假如我们不考虑顺序,仅考虑落地后正面和反面的数目,那么当我们分别掷出 N 枚硬币时,其落地的正反组合将变为 [正 1,反 0], [正 0,反 1];[正 2,反 0], [正 1,反 1], [正 0,反 2];[正 3,反 0], [正 2,反 1], [正 1,反 2], [正 0,反 3] …… 但是,由于我们不再考虑顺序,所以当我们掷出三枚硬币时,三面全正或全反的都各自仅有一种组合,所以其概率仍然为 1/8,但二正一反或一正二反的组合数却都为 3 种,这就意味着他们的概率相比会更大,均为 3/8。当我们掷出的硬币数越来越多时,就会发现当结果的正反比例越接近 1:1 时,其组合数就越多,同时也意味着其概率最大。

我们所研究的分布,其实就是这种概率的分布。我所举的例子,实际上是二项分布的一个典型案例。但是这一章的标题是正态分布,和二项分布有什么关系吗?在这里其实只是为了便于大家理解“分布”这个概念,事实上,以掷硬币为例,当掷出的次数足够多时,二项分布也是可以当作正态近似的。有关二项分布与正态分布的关系,我们未来再进一步展开,现在话题重新回到正态分布上。


分布毕竟只是个汉语词汇,如何以数学方式来表达?在这里出现了一个新的概念 —— 概率密度(函数)。

概率大家都明白是什么意思,在这里仍然会举一个例子进行说明。我们刚才讲到的掷硬币,掷硬币各种结果的概率是很容易计算出来的,就比如我们掷三次硬币,我们假定硬币为正面时结果为 1,反面时结果为 0,那么我们很容易的就可以列出一个表格来统计各种结果组合的概率:

结果 0 1 2 3
概率 1/8 3/8 3/8 1/8

假如我们定义函数 $P(X)$ 用来表达结果值等于某个值的概率,函数 $F(X)$ 用来表达结果值小于某个值的概率,那么很自然的就会有 $F(X) = \sum_{i=1}^{n}P(X_i)$,我们定义的这个 $F(X)$ 有一个专门的名词就叫做概率分布,而 $P(X)$ 则被称为概率函数

像这种类似于掷硬币一样,其所有结果一定是可枚举的,且无法再次细分的(按照前文算法,你无法掷出一个 0.5 的结果)变量,我们称之为离散型变量,离散型变量是可枚举的,因而也是可以精确计算概率的,但是除了这种情况外,还有许多事物的概率是无法以这种形式表达和计算的。

钓鱼是件有意思的事,大家也许曾经亲自钓过鱼,或看过别人钓鱼,在很多私人承包的鱼塘,老板会大致知道塘里一共会有多少条鱼,对于钓鱼人来说,自己选中的钓点适不适合钓鱼其实是未知的,通常只有钓点周边一定的范围内有一定数量的鱼才能保证不空军。但鱼不可能均匀的分布在整个鱼塘,它们会随着水流、食物等因素自由的游动。现在我们假设鱼塘中一共有一千条鱼,我们选择的钓点 10 米范围内有 50 条鱼在活动,鱼可能游出去也可能游回来,假如我想计算在距离钓点 3 米处恰巧有鱼活动的精确概率是多少,你能计算出来吗?

显然是算不出来的,因为我们只知道一个范围内的鱼的总数,但距离(长度)在事实上是可以无限切割的,假如距离钓点中心第 3 米处有鱼活动的精确概率是存在的,那么第 3 米零 1 厘米、3 米零 1 毫米、3 米零 1 微米、3 米零 1 纳米 …… 当无限切割下去,每一个点的精确概率是多少?显然这是无法计算的。为了能够继续衡量事件发生的概率,所以引入了概率密度这个概念 —— 让我们在已知范围概率的前提下,衡量切片处事件发生的可能性。

将整个鱼塘作为整体来理解,我们的钓点 10 米内有鱼的概率是多少?答案是 10 / 1000 = 0.01,假如我们钓点附近的鱼群是均匀分布的,那么我们钓点 10 米范围内每一米可能遇到鱼的概率是多少?0.01 / 10 = 0.001。

不对啊,刚才我们提到精确概率是无法计算的,那 0.001 是什么?难道不是 3 米处有鱼活动的精确概率吗?

这里先给出答案:并不是!这里只是为了方便大家理解“密度”的概念而人为的将尺度限制在了 1 米而计算出来的数字,假如我们计算的最小粒度是厘米会怎样?0.01 / (10 * 100) = 0.00001,如果是毫米呢?0.01 / (10 * 100 * 10) = 0.000001,当无限分割下去会怎样?这个切片处的概率将无限逼近于 0!

所以,对非离散型事件(这种有无限多种结果组合的事件 —— 即连续型变量)来说,我们只能计算出它在一定范围内的概率,而无法计算出具体某个点的概率(每一点的概率无限逼近于 0),因此概率密度的数学概念实际上指的是概率的变化率 —— 当对某个值计算概率密度时,其值越大,则代表结果位于该值邻域的概率会更大。

一个概念没讲完,又冒出了一堆新名词,更让人迷糊了。


无论一个事件有多少种结果,每种结果发生的概率是多少,无论它们的概率值是连续的还是离散的,所有事件可能的结果的概率总和一定是 1,这个很好理解,即便我们口语表达会说“我 120% 的确定”,但事情发生的概率也绝对不会超过 100%。同样的,且每一种结果无论其概率有多小,但其发生概率一定是大于或等于 0 的,即便我们说“这个事情绝对不会发生”,其概率也不会小于 0,最少也是等于 0%。

对于离散型变量来说,由于很容易通过计算枚举的方式计算其概率,所以它的概率分布与概率函数都很容易理解。下面我们重点说说连续性变量关于概率方面的数学定义。

我们仍然定义 $F(x)$ 作为概率分布函数,用来表示一个值小于某个值时的概率总和(之所以是小于某个值时的总和,是因为计算等于某个特定值时的概率是无法算出的,参考上文钓鱼的例子)。根据一贯的常识(在这里就不给出数学证明了),我们很容易可以得到该函数的几个特点:

  1. $\forall_{a<b}$, 总有 $F(a)\le{F(b)}$ —— 单调非减性;
  2. $ F(x) $ 是一个右连续函数;
  3. $\forall_{x\in{R}}$, 总有 $0\le{F(x)}\le{1}$,且 $\lim_{x\to{-\infty}}F(x) = 0$, $\lim_{x\to{+\infty}}F(x) = 1$

根据以上特点不难得出:
当 $x \in {(a,b]}$ 时的概率:$P(a < x \le{b}) = F(b) -F(a) = \int_{a}^{b}f(x)dx$

同时根据 $F(x)$ 的特点可知,$f(x)>=0$,$\int_{-\infty}^{+\infty}f(x)dx=1$,$ F'(x) = f(x)$

在这里,$f(x)$ 被称之为概率密度函数 —— 这是其数学定义。为了能进一步帮助大家理解相关概念的含义,下面将给出一个图片辅助解释。

img

看到这里,估计能让对之前提及概念不太了解的朋友对相关公式能有一些初步的理解。但是写了那么多内容,仍然没有讲什么是正态分布。


即便之前对统计学的概念已经忘得差不多了,相信大家从这里开始也会对分布、概率分布函数、概率密度函数的概念都有了一定的了解,所以从这个时候开始再正式介绍正态分布可能会更容易被大家所接受。

正如其名,正态分布是一种“分布”。

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由棣莫弗(Abraham de Moivre)在求二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。

正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。

若随机变量 $X$ 服从一个数学期望为 $\mu$、方差为 $\sigma^2$ 的正态分布,记为 $X\sim{N}(\mu, \sigma^2)$。其概率密度函数为正态分布的期望值 $\mu$ 决定了其位置,其标准差 $\sigma$ 决定了分布的幅度。当 $\mu = 0$, $\sigma = 1$ 时的正态分布是标准正态分布。

定义也给了,但好像还是一头雾水,前面提到的概率分布函数、概率密度函数,好像根本没有体现出来?

实际上,正态分布作为一种重要的、特殊的分布,它是有自己专属的符号的,上文公式中,$X\sim{N}(\mu, \sigma^2)$ 就是一个正态分布的表达,其中 $\sim$ 的含义是“服从”,表示左侧的变量服从右侧的分布,右侧的 N 则代表的是正态分布,而对于正态分布来说,它是有参数的,其一为数学期望,使用 $\mu$ 表示,另一个则为方差为 $\sigma^2$。

好像还是不太明白,这不还是一样没有出现概率分布函数、概率密度函数。别急,我们接着看。

假定随机变量 $X$ 服从一个位置参数为 $\mu$、尺度参数为 $\sigma$ 的概率分布,且其概率密度函数为 $ f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} $,则这个随机变量就称为正态随机变量,正态随机变量服从的分布就称为正态分布,记做 $X\sim{N}(\mu, \sigma^2)$,读作 $X$ 服从 $N(\mu, \sigma^2)$,或 $X$ 服从正态分布。

特别的,当 $\mu = 0$、$\sigma = 1$ 时,$f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}$,我们将这种情况称为标准正态分布,记为 $X\sim{N}(0, 1)$。其概率密度函数可记为 $\phi(x)$。

img

根据上文的概念,概率分布函数为概率密度函数的积分,则 $F(x) = P(X\le{x}) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt$ 为正态分布的概率分布函数。同样的,当 $\mu = 0$、$\sigma = 1$ 时,$F(x) = P(X\le{x}) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{t^2}{2}}dt$,其概率分布函数可记为 $\Phi(x)$。

对于正态分布 $X\sim{N}(\mu, \sigma^2)$,为了简化计算,通常可通过将 $X$ 进行变换($X$ 的标准化)使其满足标准正态分布:$ Z =\frac{X-\mu}{\sigma}\sim{N(0, 1)}$。

img

截至目前,正态分布最关键的定义及公式均已经给出了,那么,A/B 测试又是如何利用这些公式进行计算的呢?

考虑到文章篇幅,请稍作休息,我们将在下期继续讨论正态分布相关的计算。