前面我们介绍了多种离散型概率分布,大家可以点击下方链接来回顾:
今天要给大家介绍另一个常见的离散型概率分布:泊松分布(Poisson distribution)。它由法国数学家西莫恩·德尼·泊松 (1781–1840) 于1837年发表,在实际生活中有着非常广泛的应用。
1. 定义和现实应用
泊松概率分布描述的是在某段时间或某个空间内发生随机事件次数的概率,简而言之就是:根据过去某个随机事件在某段时间或某个空间内发生的平均次数,预测该随机事件在未来同样长的时间或同样大的空间内发生k次的概率。其概率质量函数为:
其中:
- λ是过去某段时间或某个空间内随机事件发生的平均次数
- e = 2.71828...,是自然常数
- k的取值为 0, 1, 2, 3, 4, ...
- k! = k x (k-1) x (k-2) x ... x 2 x 1,是k的阶乘
由于泊松分布适用于描述某段时间(或某个空间)内随机事件发生的次数,因此它常用于预测某些事件的发生。例如:某家医院在一定时间内到达的人数;超市收银台在某段时间内的结账人数;某段时间内发生自然灾害的次数;某段时间内DNA序列的变异数;放射性原子核在一段时间内的衰变数等等。
2. 泊松分布的推导
泊松分布的概率质量函数可以由二项分布的概率质量函数推导而来,下面是推导过程。
二项分布的概率质量函数为:
其中n代表伯努利试验的次数;p代表试验成功的概率,则1-p为试验失败的概率;k代表n次试验中成功的次数,则失败次数为n-k。
假定在过去的历史中,某个随机事件在固定长度时间段发生的平均次数为λ,那么就可以将固定长度的时间分成n等份;在每等份的时间内,随机事件发生的概率可以表示为λ/n。若n趋于无穷大,也就是这段时间被分成无数的小段,那么λ/n的值将趋近于0,也就是在每个等份的时间内,该随机事件发生两次或两次以上是不可能的。根据以上假设条件,在固定长度时间内,随机事件发生k次的概率服从二项概率分布,可以表示为:
由上可知,在二项分布的伯努利试验中,如果试验次数n很大,成功概率p很小,且乘积λ= np比较适中,则事件出现的次数的概率可以用泊松分布来逼近。事实上,二项分布可以看作泊松分布在离散时间上的对应物。
3. 泊松分布的性质
从泊松分布的概率质量函数可以看出,λ是泊松分布所依赖的唯一参数,随着历史平均次数λ的不同,泊松分布的概率分布形态也将随之改变。如下图,随着λ的增大,泊松分布的形态也由右偏分布 (尾巴在右边) 逐渐变为对称分布。
在实际情况中,当λ很大时,可以用正态分布近似地处理泊松分布问题
泊松分布的期望值与方差相等,同为参数λ,即:E(X)=Var(X)=λ (具体推导过程可参考泊松分布的中文维基百科词条)。对于这个性质,也可通过二项分布的期望值和方差进行推导,我们知道二项分布的期望值和方差分别为np和npq,则泊松分布的期望值和方差为:
上式推导利用了λ/n的值趋近于0的这个性质
4. R中的相关函数
R中也有四个函数可用于泊松分布,分别是:
dpois(x, lambda)
:返回发生x次随机事件的概率ppois(q, lambda)
:返回累积概率qpois(p, lambda)
:返回相应分位点x,详情见下面的例子rpois(n, lambda)
:返回每组发生随机事件的次数
这四个函数都有lambda
,对应于随机事件发生的平均次数λ。下面通过一个例子来了解如何使用它们:
根据历史数据,某条河(比如:长江)100年平均要发生一次洪水,那么接下来的100年发生0次,1次和2次洪水的概率分别是多少呢?
分析:由于是过去很长时间的数据总结,因此可以认为这条河发生洪水的概率是稳定的,因此这条河发生洪水次数的概率服从泊松分布,且λ=1。
结果:
下表给出了在未来100年内,这条河发生0到6次洪水的概率:
从表格结果可以看出,未来100年内这条河发生洪水的概率高达63.2%
(= 1-P(k=0)),因此对于这条河要不断加强和完善防洪工程措施。
下面我们利用R中的函数来计算相关量:
第一个问题:未来100年内,发生0次,1次和2次洪水的概率分别是多少?此时要用到dpois(x, lambda)
函数,其中x
参数指定发生的次数,函数返回相应概率,结果为:
> dpois(0:2, 1)
[1] 0.3678794 0.3678794 0.1839397
第二个问题:至多发生1次洪水的概率是多少?此时要用到ppois(q, lambda)
函数,其中q
参数指定至多发生的次数(这里为1),函数返回相应累积概率,结果为:
> ppois(1, 1)
[1] 0.7357589
第三个问题:90%概率下这条河至多能发生几次洪水?此时要用到qpois(p, lambda)
函数,其中p
参数指定概率(这里是0.9),函数返回相应分位点x(即F(x)≥0.9对应的最小x值),结果为:
> qpois(0.9, 1)
[1] 2
结果表明,90%概率下至多发生2次洪水
最后一个问题:重复10000组模拟,每组发生洪水的次数是多少?这时就要用到rpois(n, lambda)
函数,其中n
参数指定模拟的组数(这里为10000),函数返回每组发生的次数,结果为:
> set.seed(123)
> ns <- rpois(10000, 1)
> table(ns)
ns
0 1 2 3 4 5 6 7
3652 3757 1831 580 145 26 8 1
> mean(ns) ##发生次数的平均值
[1] 0.9924
> var(ns) ##发生次数的方差
[1] 0.9760398
模拟1万组,3652组没有发生洪水,与理论上36.78%不发生洪水很接近。此外均值和方差也与理论值 (λ=1)很接近。
泊松分布的介绍就到此结束,希望对大家的学习有所帮助,也希望大家多多支持本公众号。
感谢您的阅读!想了解更多有关技巧,请关注我的微信公众号“R语言和Python学堂”,我将定期更新相关文章。