zoukankan      html  css  js  c++  java
  • 举一个“栗子”讲透让人迷惑的泊松分布

    本文始发于个人公众号: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的一千次方了,这显然是非常复杂的,这也是泊松分布的意义。

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

  • 相关阅读:
    UVA 1513
    《ArcGIS Runtime SDK for Android开发笔记》——问题集:.geodatabase创建,创建时内容缺失问题总结
    《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码
    《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用
    《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析
    《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)
    《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境
    《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
    《ArcGIS Runtime SDK for Android开发笔记》——(2)、Android Studio基本配置与使用
    《ArcGIS Runtime SDK for Android开发笔记》——(1)、Android Studio下载与安装
  • 原文地址:https://www.cnblogs.com/techflow/p/12853545.html
Copyright © 2011-2022 走看看