您的位置:首页 > 其它

初看泊松分布

2017-01-14 18:59 302 查看

初看泊松分布

前言

看了大多数博客关于泊松分布的理解,都是简单的对公式做一些总结,本篇文章重点关注泊松分布如何被提出,以及理解背后对现实的假设是什么。可以参考参考的资料有

1. 百度百科–泊松分布(推导过程值得研究)

2. wiki pedia –poisson distrubtion(讲的够详细)

3. 一篇大神博文–泊松分布和指数分布:10分钟教程(至少阐述明白了泊松分布用来干嘛)

正文

问题

首先,还是来考虑一个问题。从问题出发,考虑它背后的含义会好理解很多。

日常生活中,有大量事件是固定频率的。

如:

1. 某医院平均每小时出生2个婴儿。

2. 某公司平均每10分钟接到1个电话。

3. 某超时平均每天销售4包xx牌奶粉。

4. 某网站平均每分钟有2次访问。

问:

已知每小时出生2个婴儿,请问下一个小时,会出生几个?

遇到这个问题,毫无头绪。原因在于我们所知道的信息太少了,问题有些令人困扰,不是已经说了每小时出生2个婴儿了嘛,那么下一个小时难道不也是2个?没错,下个小时很有可能是三个。可能?可能性是多少,数学研究在与确定这种可能性。So,我们把问题改一下,假设下一小时,婴儿出生的次数为k个,那么下一小时出生婴儿k个代表一事件,由此是否可以计算概率:

P(下一小时婴儿出生数为k)=?

更加形式化的表达:

P(K=k)=?,K为事件婴儿一小时出生个数的随机变量

等式的右边是什么呢?

OK,开始我们的推导过程。我们得不到,那就用古时候最蠢的抛硬币法确定概率嘛!假设我们有能力统计某家医院每一个小时婴儿的出生量,那么从这家医院开始接待第一位孕妇到现在所有每小时婴儿数是已知的。比如,样本数为100的情况:

婴儿出生次数k小时数
012
126
228
320
49
54
≥61
在大量样本的情况下,我们就可以断言,由统计计数得到的频率即为我们的概率。从中我们可以得到很多有用的统计信息,比如:

每小时婴儿出生的个数稳定在1个和2个之间。

婴儿出生数在0到5之间,占整体的99%

婴儿出生数超过6几乎不可能出现。

有了这些信息,医院就能根据已有资源做好合理的安排接待工作,从而达到资源利用的最大化,降低冗余。但每次遇到相似的问题都需要人为去统计?数学的一个好处在于找寻这种规律,通过公式or曲线来表达。

下一步,我们以k为横轴,小时数为纵轴,并对小时数进行归一化处理,即小时数/样本总量,得到如下二维图像。



直方图如下:



注意:这里的数据是由python模拟泊松分布画出来的,因此,与上面例子有一定的误差。

泊松分布定义

现在我们有了这样的曲线图之后,无非就是找到这样的函数表达式来表征它的分布,从而能够拟合统计得的数据。聪明的数学家找到了这样的公式:

P(k events in interval)=λke−λk!



这是该函数不同参数下的分布情况,是不是和医院每小时婴儿出生数的分布很像。嗯,现实研究表明每小时婴儿的出生数的确符合泊松分布,可怎么判断某种情况是否符合泊松分布呢?或者说泊松分布是怎么得出来的?是对现实做了哪些理想化假设?要回答这个问题先看看wiki pedia关于泊松分布的适用情况。

Assumptions: When is the Poisson distribution an appropriate model?

The Poisson distribution is an appropriate model if the following assumptions are true.

K is the number of times an event occurs in an interval and K can take values 0, 1, 2, …

The occurrence of one event does not affect the probability that a second event will occur. That is, events occur independently.

The rate at which events occur is constant. The rate cannot be higher in some intervals and lower in other intervals.

Two events cannot occur at exactly the same instant.

The probability of an event in a small interval is proportional to the length of the interval.

If these conditions are true, then K is a Poisson random variable, and the distribution of K is a Poisson distribution.

第一条是说,随机变量K可以用来表示在一段时间或空间内的出现次数,很明显,婴儿出生数符合。

第二条是说,事件发生独立?具体是哪两个事件相互独立?一开始我理解的有所偏差,觉得是指每小时出生婴儿数这件事独立。当前小时出生婴儿数与上一小时的婴儿数无关。但泊松分布中的假设还要更加细节,它指的是婴儿出生这个事件与下一个婴儿出生无关。举个不恰到的例子,就是不考虑生双胞胎的情况,生孩子的母亲不是同一个!而是在一小时内,任何母亲都可以生孩子!(第二条是相当重要的假设,这是能够推出泊松分布的重要依据,后面会做进一步阐述。)

第三条是说,在某个时间段或者空间,事件出现的次数是稳定的。比如婴儿每小时出生的数量维持在2个。遇到这种情况,很有可能是就属于泊松分布,但一定是嘛,单纯第三条是很难确定的。

第四条是说,两个事件是不可能在同一个瞬间发生的。(重点关注,也是推导必须的假设)现实含义很简单,婴儿不可能同一瞬间出生,一定是它先出生,我再出生。为什么要这么假设?

第五条个人认为会产生歧义,婴儿出生的概率与时间间隔的长度成正比。怎么理解,比如婴儿出生的概率为p,且每小时出生的婴儿数已知为λ,则:

p=f(λ)=f(λ′t)=λ′tn,λ=λ′t

此处λ′表示单位时间内婴儿出生的个数,t表示时间长度,n表示在这段时间t内,婴儿出生这件事发生的次数。为什么除以n,下文再解释。至少,我们可以明确一点,随着时间间隔的增加,婴儿出生的“概率”将变大。呵呵,这点着实不好理解,从公式来没问题,但我实在想不通,为什么时间间隔增大,会影响婴儿出生的概率?在理解这个假设时,为何要控制变量n!!!

强行解释一波的话,可以这样理解。注意,前提条件是我们假设n没有发生变化,才能得出这样的结论。医生工作时被分割成有限个工作单元,比如一小时内能接生孩子的次数为20次,即n=20次,那么也就是每3分钟接生一个娃。据统计,每小时医生接生生孩子的次数为3次。

为什么成功率不是100%,为什么不是出生20个孩子呢!难道接生孩子有17个会夭折,注意,这里绝对不是这个意思,否则谁还生孩子,存活率吓死人。也就是说,婴儿出生的概率并不指婴儿成功生下的概率,它们两者不是等价的,婴儿出生的概率忽略了大量的条件,比如在哪个时刻生,谁生,哪个医生接生。那么单纯的考虑这个婴儿能够出生的概率则由于太多条件不确定,而使得概率很小。正常人理解的婴儿成功生下的概率,是确定了各种因素,如10月正常怀胎,好医生,好妈妈,好老公陪产,前期的准备工作都做的足够充分的情况下,孩子生下的概率,显然成功率是相当高的。

此处,婴儿成功出生的概率是多少,3/20为15%。最直观的理解,就是20次可能的接生中,出来了3个婴儿,所以为15%。可这种直观想法怎么来的?正确的做法应该是,对该问题进行数学建模,得到一个带参的概率模型,然后用极大似然估计方法来求解概率。(可我们还不知道该概率模型是什么,下文阐述)

那么两个小时内,婴儿出生的个数变成了6个,由于接生次数还需要固定为20次,所以原本3分钟的工作可以在6分钟之内完成,不用那么急促了,所以婴儿成功的概率上去了。。。

泊松分布推导

我们重新整理下几个重要的假设。

假设1:

每个婴儿出生事件是独立的,互补影响。(可以理解为每次抛硬币过程,影响它们是正反面不取决于抛硬币的顺序。)

假设2:

两个事件不能同时发生,一定是我先发生,你再发生。(可以理解为每次抛硬币都是一个个的抛,实验一次次的做。)

有了这两个假设,不就是之前在博文里讲到的抛硬币过程嘛。这个模型很简单啊,设抛硬币的成功率为p,那么假设做n次实验,出现正面朝上次数为k次的概率为:

f(k;p)=n!k!(n−k)!pk(1−p)n−k,k=0,1,...,n.

这是二项式分布式,仔细对比下,如果知道在一小时内医生的接生次数的话,婴儿出生的分布情况完全可以由它来代替。刚才那个估计概率问题,就有了正确的解决方案。极大似然估计,无非对参数p求导,在n和k已知的情况下,求f(k;p)的最大值。详细的可以参看我的另外一篇博文- EM算法及其推广学习笔记

那么问题来了,为何二项式分布模型不能作为婴儿出生这个问题的解呢?观察下二项式分布公式我们就能得到答案了。k是未知的,需要我们人为设定求解,不去关心。而剩下的n和p对婴儿出生这个问题压根无法求解。我们只知道每小时出生婴儿的个数为2个。p是多少,n是多少我们无从得知。

上面是从公式角度理解的,那么解决方案是什么?无非婴儿这个问题,n和p都是未知变量,如果能找到n和p关于每小时婴儿个数λ的关系就能解决该问题了。一个比较可行的方案就是根据二项式分布计算它的期望:

E(K)=np

二项式分布的期望有很好的性质,即该期望即为np,n和p的关系就被期望给连在一块了。有了这东西,我们让每小时的婴儿个数等于期望即可。即

np=λ

这也是符合现实情况的,很巧的是,二项式分布中计算得到的期望值就在该分布函数概率最大地方的附近。也就是期望值可以近似等价于n次中成功次数k。所以泊松分布做了另外一个假设:

假设3:

事件出现的次数是稳定的,不能出现一段时间次数高,另外一段时间次数低的情况。

因为只有这样,该值才有可能是整个事件的期望值,如果它上下浮动很剧烈,那么与np=λ这个等式不符。原因,λ不断变化,你怎么求?

所以,二项式分布函数我们可以进一步改写,把p=λn代入得:

f(k;p)=n!k!(n−k)!λnk(1−λn)n−k,k=0,1,...,n.

少了未知参数p,多了个已知变量λ,但我们还是不知道n应该取几啊。就举每小时婴儿出生次数为2次这件事来讲,我们并不知道在一小时内,医生接生婴儿的次数是多少次。所以,数学家们又做了一个非常理想化的假设。

假设4:

同一瞬间,婴儿不能同时出生。

的确如此,一个瞬间医生是不可能同时为两个孩子接生的,且并不考虑有两个医生同时为两个孩子接生的情况。为了让这个假设成立,医生接生这个动作必须是瞬时的,可以理解为医生接生所需要的时间趋近于0。那么在一小时内,医生接生的总次数n自然而然趋近于无穷。

参考百度百科的推导过程,为方便记,设所观察的这段时间为[0,1),取一个很大的自然数,把时间段[0,1)分为等长的n段:

l1=[0,1n],l2=[1n,2n],...,ln=[n−1n,1]

为了让每个事件不能在同一瞬间发生,因此有:

limn→∞f(k,λn)

数学推导过程如下:



这是从数学上来约束为什么n趋于无穷。我的个人理解是,在一小时内,婴儿出生成功这件事,不完全由医生接生一个人来完成,它的成功率不由医生单方面因素决定。各种条件,环境因素都能影响婴儿的出生。所以,各种环境条件下,都有可能有一个孩子出生,而孩子出生的概率都相当小,我们近似于0,所以我们假设每种环境下孩子出生的概率相等,从而有无穷多种因素,即n为无穷。这样的话,我们就能从现实推得n的确应该趋于无穷。即论证了这个泊松分布的确能很好符合现实情况。

总结

最终得到一个什么样的结论了?起码,我们能够根据现实世界中的现象能够判断它是否符合泊松分布吧。再举一个经典的例子,参考自大神博客。

2012年12月,美国康涅狄格州发生校园枪击案,造成28人死亡。



资料显示,1982年至2012年,美国共发生62起(大规模)枪击案。其中,2012年发生了7起,是次数最多的一年。



我们来看看美国枪击案是否符合泊松分布呢?依次来判断

美国每年发生枪击案的次数是否稳定在一个值。

枪击案是否为小概率事件。

枪击案是否独立,不会互相影响。

首先看第一条,美国每年发生枪击案根据资料显示



计算得到,平均每年发生2起枪击案,所以λ=2 。即可以有np=λ。



上图中,蓝色的条形柱是实际的观察值,红色的虚线是理论的预期值。可以看到,观察值与期望值还是相当接近的。



起码,从上述表格可以看出,美国枪击案是基本符合泊松分布的。

总的来说,泊松分布是对二项式分布中的实验次数求极限而来的。需要搞清楚这些符合泊松分布的现象中,为什么要令n趋于无穷。原因在于这些现象中的事件都有n多种不同条件,不同环境来影响该事件的成功率,且这些事件单独出现的概率是相当低的。事件与事件之间又相互独立,为了求得它的分布状态,我们尽量减少变量。恰好,二项式分布的期望公式能够关联n,p和事件发生次数k,完美。

参考文献

百度百科-泊松分布

wiki pedia. poisson distrubtion

泊松分布和指数分布:10分钟教程

EM算法及其推广学习笔记
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: