• 举一个“栗子”讲透让人迷惑的泊松分布


    本文始发于个人公众号:TechFlow,原创不易,求个关注


    今天是概率统计专题的第5篇文章,这篇文章的出现意味着高等数学专题我们已经告一段落了。高数当中剩下的内容还有很多,比如多重积分、微分方程求解等等内容。但对于算法领域来说,基本的微积分已经基本足够了,所以我们就不再继续往下延伸,如果以后有相关的内容涉及,我们再来开文章单讲。

    我们这篇文章的内容关于统计学中的泊松分布。


    举个栗子


    泊松分布在概率统计当中非常重要,可以很方便地用来计算一些比较难以计算的概率。很多书上会说,泊松分布的本质还是二项分布,泊松分布只是用来简化二项分布计算的。从概念上来说,这的确是对的,但是对于我们初学者,很难完全理解到其中的精髓。

    所以让我们来举个栗子,来通俗地理解一下。

    假设我们有一颗栗子树,有时候因为风或者是小动物活动的关系,树上可能会掉下栗子来,树上掉栗子显然是一棵偶然事件,并且发生的概率很低,那么我们怎么求它的概率分布呢?泊松分布解决的就是这样一个问题。

    好像没有一个模型可以直接来刻画这个问题,必须要经过一些转化。

    其实我们可以将事件切分,将这个问题转化成二项分布问题。

    比如我们把一天的时间切分成了若干份,这样对于每一份时间来说,是否会有栗子掉下来,就是一个是否会发生的事件。于是这就成了一个二项分布问题。理论上来说不会有两颗栗子掉下的时间完全一样,所以只要我们将时间切分得足够细,就可以保证一段时间之中最多只会掉下一个栗子(否则就不满足二项分布)。

    假设我们把一天的时间切分成了n份,我们想知道一天当中会有k个栗子掉下的概率,根据二项分布的公式,这个概率就是:

    [P(k)=C_n^kcdot p^k(1-p)^{n-k} ]

    到这里,我们往前迈出了坚实的一步,写出了概率的表达式。


    推导泊松分布


    我们虽然有了式子,但是好像没什么用,因为我们只知道p是单位时间内有栗子掉下的概率,我们怎么知道这个概率是多大呢?难道还真的去测量吗?

    要解决这个问题,还得回到二项分布。我们可以利用二项分布求一下每天掉下栗子数量的期望,显然对于每一个单位时间而言,发生栗子掉落的概率是p,所以整体的期望是:

    [E(X) = np ]

    我们令这个值是(lambda),那么根据这个式子,我们可以表达出p了。

    [p=frac{lambda}{n} ]

    我们把这个p的式子带入原式,可以得到:

    [P(k) = C_n^k cdot {frac{lambda}{n}}^{k}(1-frac{lambda}{n})^{n-k} ]

    前面说了,为了满足二项分布,我们需要让单位时间尽量小,防止会有同一时刻掉下两个栗子的情况发生。所以这个n应该越大越好,我们可以用上之前学过的极限,让n趋向于无穷,所以这个问题就变成了一个求极限的问题。

    [egin{aligned} P(k) = lim_{n o infty} C_n^k cdot{frac{lambda}{n}}^{k}(1-frac{lambda}{n})^{n-k} end{aligned} ]

    我们来算一下这个极限:

    [egin{aligned} P(k) &= lim_{n o infty} C_n^k cdot{frac{lambda}{n}}^{k}(1-frac{lambda}{n})^{n-k} \ &= lim_{n o infty} frac{n(n-1)(n-2)cdots(n-k+1)}{k!}{frac{lambda}{n}}^k(1-frac{lambda}{n})^{n-k} \ &= lim_{n o infty} frac{lambda^k}{k!} (1-frac{lambda}{n})^ncdot frac{n}{n} cdot frac{n-1}{n}cdots frac{n-k+1}{n} (1-frac{lambda}{n})^{-k} end{aligned} ]

    我们把这个极限拆分开来看,其中:

    [egin{aligned} lim_{n o infty}frac{n}{n} cdot frac{n-1}{n}cdots frac{n-k+1}{n} (1-frac{lambda}{n})^{-k} = 1 end{aligned} ]

    [egin{aligned} lim_{n o infty}(1-frac{lambda}{n})^n &= lim_{n o infty}{(1+frac{1}{-frac{n}{lambda}})^{-frac{n}{lambda}}}^{-lambda}\ &= e^{-lambda} end{aligned} ]

    所以,我们代入,可以得到:

    [P(k) = frac{lambda^k}{k!}e^{-lambda} ]

    这个就是泊松分布的概率密度函数了,也就是说在一天当中掉下k个例子的概率就是(frac{lambda^k}{k!}e^{-lambda})

    也就是说泊松分布是我们将时间无限切分,然后套用二项分布利用数学极限推导出来的结果。本质上来说,它的内核仍然是二项分布。使用泊松分布的原因是,当n很大,p很小的时候,我们使用二项分布计算会非常困难,因为使用乘方计算出来的值会非常巨大,这个时候,我们使用泊松分布去逼近这个概率就很方便了。


    结尾和升华


    我们根据推导出来的结果,感觉只要是n很大,并且p很小的场景都可以使用泊松分布。但是这毕竟只是一个感性的认知,在统计学上对于这个问题也是有严谨定义的。我们来看一下严谨的使用条件的限制,大概是这么三条。

    1. 当我们将时间进行无线切分之后,在接近于0的时间段内事件发生的概率与时间成正比。
    2. 在每一段无限小的时间段内,同一事件发生两次的概率无限接近于0
    3. 在不同的时间段内,事件是否发生互相独立

    最后,我们看一道书上的例题,实际感受一下泊松分布的应用。假设我们有一批零件,它的次品率是0.1%,也就是千分之一。请问我们生产一千个产品当中至少有两件次品的概率?

    这道题应该很简单,要求两件及以上次品的概率,我们只需要计算出只有零件和一件次品的概率,然后用1减去它们即可。我们首先根据n和p算出(lambda)

    [lambda = np = 1000 * 0.1% = 1 ]

    我们带入泊松分布的公式:

    [P(k geq 2) = 1 - P(k=1) - P(k=0) = 1 - frac{1^1 e^{-1}}{1!} - frac{1^0 e^{-1}}{0!}approx 0.264 ]

    如果我们要用二项分布来计算,那么就需要计算0.999的一千次方了,这显然是非常复杂的,这也是泊松分布的意义。

    今天的文章就到这里,原创不易,关注我,获取更多优质文章

  • 相关阅读:
    XCode Playground Overview
    Swift开发学习(二):Playground
    swift网址
    swift关于is和as的解释
    Swift之 ? 和 !
    Swift 学习之二十一:?和 !(详解)
    Swift学习三
    Makefile project
    20171110面试笔记 服务器端程序员+C/C++开发
    关键字
  • 原文地址:https://www.cnblogs.com/techflow/p/12853545.html
Copyright © 2020-2023  润新知