定义:

现实生活多数服从于泊松分布

假设你在一个呼叫中心工作,一天里你大概会接到多少个电话?它可以是任何一个数字。现在,呼叫中心一天的呼叫总数可以用泊松分布来建模。这里有一些例子:

  • 医院在一天内录制的紧急电话的数量。
  • 某个地区在一天内报告的失窃的数量。
  • 在一小时内抵达沙龙的客户人数。
  • 书中每一页打印错误的数量。 泊松分布适用于在随机时间和空间上发生事件的情况,其中,我们只关注事件发生的次数。

当以下假设有效时,则称为泊松分布

  • 任何一个成功的事件都不应该影响另一个成功的事件。
  • 在短时间内成功的概率必须等于在更长的间内成功的概率。
  • 时间间隔很小时,在给间隔时间内成功的概率趋向于零。

泊松分布中使用了这些符号:

  • λ是事件发生的速率

  • t是时间间隔的长

  • X是该时间间隔内的事件数。

  • 其中,X称为泊松随机变量,X的概率分布称为泊松分布。

  • 令μ表示长度为t的间隔中的平均事件数。那么,µ = λ*t。

例如说一个医院中,每个病人来看病都是随机并独立的概率,则该医院一天(或者其他特定时间段,一小时,一周等等)接纳的病人总数可以看做是一个服从poisson分布的随机变量。但是为什么可以这样处理呢? 通俗定义:假定一个事件在一段时间内随机发生,且符合以下条件:

  • (1)将该时间段无限分隔成若干个小的时间段,在这个接近于零的小时间段里,该事件发生一次的概率与这个极小时间段的长度成正比。
  • (2)在每一个极小时间段内,该事件发生两次及以上的概率恒等于零。
  • (3)该事件在不同的小时间段里,发生与否相互独立。

则该事件称为poisson process。这个第二定义就更加利于大家理解了,回到医院的例子之中,如果我们把一天分成24个小时,或者24x60分钟,或者24x3600秒。时间分的越短,这个时间段里来病人的概率就越小(比如说医院在正午12点到正午12点又一毫秒之间来病人的概率是不是很接近于零?)。 条件一符合。另外如果我们把时间分的很细很细,是不是同时来两个病人(或者两个以上的病人)就是不可能的事件?即使两个病人同时来,也总有一个人先迈步子跨进医院大门吧。条件二也符合。倒是条件三的要求比较苛刻。应用到实际例子中就是说病人们来医院的概率必须是相互独立的,如果不是,则不能看作是poisson分布。

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

有可能一下子出生6个,也有可能一个都不出生。这是我们没法知道的。

泊松分布就是描述某段时间内,事件具体的发生概率。

上面就是泊松分布的公式。等号的左边,P 表示概率,N表示某种函数关系,t 表示时间,n 表示数量,1小时内出生3个婴儿的概率,就表示为 P(N(1) = 3) 。等号的右边,λ 表示事件的频率。

接下来两个小时,一个婴儿都不出生的概率是0.25%,基本不可能发生。

接下来一个小时,至少出生两个婴儿的概率是80%。

# IMPORTS
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import matplotlib.style as style
from IPython.core.display import HTML# PLOTTING CONFIG
%matplotlib inline
style.use('fivethirtyeight')
plt.rcParams["figure.figsize"] = (14, 7)plt.figure(dpi=100)# PDF
plt.bar(x=np.arange(20), height=(stats.poisson.pmf(np.arange(20), mu=5)), width=.75,alpha=0.75)# CDF
plt.plot(np.arange(20), stats.poisson.cdf(np.arange(20), mu=5),color="#fc4f30",)# LEGEND
plt.text(x=8, y=.45, s="pmf (normed)", alpha=.75, weight="bold", color="#008fd5")
plt.text(x=8.5, y=.9, s="cdf", alpha=.75, weight="bold", color="#fc4f30")# TICKS
plt.xticks(range(21)[::2])
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0.005, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -2.5, y = 1.25, s = "Poisson Distribution - Overview",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -2.5, y = 1.1, s = 'Depicted below are the normed probability mass function (pmf) and the cumulative density\nfunction (cdf) of a Poisson distributed random variable $ y \sim Poi(\lambda) $, given $ \lambda = 5 $.',fontsize = 19, alpha = .85)

改变参数λ:

plt.figure(dpi=100)# PDF LAM = 1
plt.scatter(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=1)),#/np.max(stats.poisson.pmf(np.arange(20), mu=1))),alpha=0.75,s=100)
plt.plot(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=1)),#/np.max(stats.poisson.pmf(np.arange(20), mu=1))),alpha=0.75,)# PDF LAM = 5
plt.scatter(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=5)),alpha=0.75,s=100)
plt.plot(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=5)),alpha=0.75,)# PDF LAM = 10
plt.scatter(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=10)),alpha=0.75,s=100)
plt.plot(np.arange(20),(stats.poisson.pmf(np.arange(20), mu=10)),alpha=0.75,)# LEGEND
plt.text(x=3, y=.1, s="$\lambda = 1$", alpha=.75, rotation=-65, weight="bold", color="#008fd5")
plt.text(x=8.25, y=.075, s="$\lambda = 5$", alpha=.75, rotation=-35, weight="bold", color="#fc4f30")
plt.text(x=14.5, y=.06, s="$\lambda = 10$", alpha=.75, rotation=-20, weight="bold", color="#e5ae38")# TICKS
plt.xticks(range(21)[::2])
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -2.5, y = .475, s = "Poisson Distribution - $\lambda$",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -2.5, y = .425, s = 'Depicted below are three Poisson distributed random variables with varying $\lambda $. As one can easily\nsee the parameter $\lambda$ shifts and flattens the distribution (the smaller $ \lambda $ the sharper the function).',fontsize = 19, alpha = .85)

构造随机分布:

import numpy as np
from scipy.stats import poisson# draw a single sample
np.random.seed(42)
print(poisson.rvs(mu=10), end="\n\n")# draw 10 samples
print(poisson.rvs(mu=10, size=10), end="\n\n")
12[ 6 11 14  7  8  9 11  8 10  7]

画出概率密度函数:

from scipy.stats import poisson# additional imports for plotting purpose
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams["figure.figsize"] = (14,7)# continuous pdf for the plot
x_s = np.arange(15)
y_s = poisson.pmf(k=x_s, mu=5)
plt.scatter(x_s, y_s, s=100);

计算累积概率密度函数的概率:

from scipy.stats import poisson# probability of x less or equal 0.3
print("P(X <=3) = {}".format(poisson.cdf(k=3, mu=5)))# probability of x in [-0.2, +0.2]
print("P(2 < X <= 8) = {}".format(poisson.cdf(k=8, mu=5) - poisson.cdf(k=2, mu=5)))
P(X <=3) = 0.2650259152973616
P(2 < X <= 8) = 0.8072543457950705

绘制λ:

from collections import Counterplt.figure(dpi=100)##### COMPUTATION #####
# DECLARING THE "TRUE" PARAMETERS UNDERLYING THE SAMPLE
lambda_real = 7# DRAW A SAMPLE OF N=1000
np.random.seed(42)
sample = poisson.rvs(mu=lambda_real, size=1000)# ESTIMATE MU AND SIGMA
lambda_est = np.mean(sample)
print("Estimated LAMBDA: {}".format(lambda_est))##### PLOTTING #####
# SAMPLE DISTRIBUTION
cnt = Counter(sample)
_, values = zip(*sorted(cnt.items()))
plt.bar(range(len(values)), values/np.sum(values), alpha=0.25);# TRUE CURVE
plt.plot(range(18), poisson.pmf(k=range(18), mu=lambda_real), color="#fc4f30")# ESTIMATED CURVE
plt.plot(range(18), poisson.pmf(k=range(18), mu=lambda_est), color="#e5ae38")# LEGEND
plt.text(x=6, y=.06, s="sample", alpha=.75, weight="bold", color="#008fd5")
plt.text(x=3.5, y=.14, s="true distrubtion", rotation=60, alpha=.75, weight="bold", color="#fc4f30")
plt.text(x=1, y=.08, s="estimated distribution", rotation=60, alpha=.75, weight="bold", color="#e5ae38")# TICKS
plt.xticks(range(17)[::2])
plt.tick_params(axis = 'both', which = 'major', labelsize = 18)
plt.axhline(y = 0.0009, color = 'black', linewidth = 1.3, alpha = .7)# TITLE, SUBTITLE & FOOTER
plt.text(x = -2.5, y = 0.19, s = "Poisson Distribution - Parameter Estimation",fontsize = 26, weight = 'bold', alpha = .75)
plt.text(x = -2.5, y = 0.17, s = 'Depicted below is the distribution of a sample (blue) drawn from a Poisson distribution with $\lambda = 7$.\nAlso the estimated distrubution with $\lambda \sim {:.3f}$ is shown (yellow).'.format(np.mean(sample)),fontsize = 19, alpha = .85)

泊松分布(Poisson Distribution)相关推荐

  1. 最详解泊松分布Poisson distribution

    概念: 设随机变量X的分布律为 其中,则称X服从参数为的泊松分布,记为或. 显然 %MATLAB代码 x=1:40; y1=pdf('poiss',1:40,1); plot(x,y1,'k','Li ...

  2. R可视化绘制泊松分布(Poisson Distribution)

    R可视化绘制泊松分布(Poisson Distribution) 为了绘制R中泊松分布的概率质量函数(probability mass function),我们可以使用以下函数: dpois(x, l ...

  3. 统计学 分布篇 - Poisson Distribution(泊松分布)

    泊松分布: 是离散随机分布的一种; 通常被使用在估算在 一段特定时间/空间内 发生事件 数量的概率. 使用泊松分布需要满足的前提条件: 在 两个 相同大小/长度的 时间/空间内, 一个事件的发生的概率 ...

  4. R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois rpois)实战

    R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois & rpois)实战 目录 R语言泊松分布函数Poisson Distribution(dp ...

  5. python-介绍泊松分布(poisson分布)

    一.泊松分布问题: 假设我每天接到骚扰电话的次数服从泊松分布,并且经统计平均每天我会接到20个骚扰电话. 请问: 1.我明天接到15个骚扰电话的概率? 2.我明天接到24个骚扰电话以下的概率(包含24 ...

  6. de casteljau算法_泊松分布算法的应用:开一家4S店

    王老板开了一家4S店,卖新车为主,车型也很单一,可是每个月销量都变化很大,他很头疼,该怎么备货,头疼的是: 1)备货少了,客户来了没货可能就不买,去别的店了 2)备货多了,占用库存不说,长久卖不出去就 ...

  7. 统计学基础——常用的概率分布(二项分布、泊松分布、指数分布、正态分布)

    变量类型: 连续型变量         如:指数分布.正态分布 离散型变量         如:二项分布.泊松分布 三者之间的关系 二项分布(Binomial distribution) 二项分布(B ...

  8. matlab怎么伯努利分布,伯努利分布 Bernoulli distribution

    伯努利分布 是一种离散分布,有两种可能的结果.1表示成功,出现的概率为p(其中0 概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质 ...

  9. 泊松分布与美国枪击案

    去年12月,美国康涅狄格州发生校园枪击案,造成28人死亡. 资料显示,1982年至2012年,美国共发生62起(大规模)枪击案.其中,2012年发生了7起,是次数最多的一年. 去年有这么多枪击案,这是 ...

  10. 伽马发布、泊松分布以及指数分布的关系

    一.意义 · 指数分布(Exponential distribution)解决的问题是:要等到一个随机事件发生,需要经历多久时间. · 伽马分布(Gamma distribution)解决的问题是:要 ...

最新文章

  1. python导出数据找不到csv_找不到Python/CSV文件
  2. 模拟键盘 键盘虚拟代码
  3. oracle 结果集比较,Oracle 结果集之间的问题(积并交叉)
  4. [Luogu 1312] noip11 Mayan游戏
  5. 判断拐点_一文教你“如何寻找拐点”——拐点判断,简单易懂,建议收藏
  6. Leaning perl 第2章练习题答案
  7. C# TextBox光标位置设置 滚动到最后一行 显示最后一行 自动跳转最后一行
  8. 电子地图市场现状研究分析报告 -
  9. 金南瓜 secs/gem协议 符合SEMI secs/gem协议 国际通讯协
  10. 无穷级数求和例题_无穷级数求和的若干方法(毕业论文).doc
  11. 80286/286/Intel286 架构/流水线及其优化
  12. matlab plotyy 属性如何调整,(完整word版)matlab中plotyy函数加入双y轴说明的方法
  13. 多目标线性规划(matlab编程)
  14. main.c: In function ‘hello’: main.c:3:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ bef
  15. python设置端口控制ie浏览器_[Python爬虫] 之二:Selenium 调用IEDriverServer打开IE浏览器安装配置...
  16. 基于pion生态的SFU实时音视频发布服务(一)
  17. html视频滑动抖音代码,抖音 - 分享代码,大鱼海棠,片段滚动效果代码!
  18. 笔记本电脑win10截图软件推荐
  19. GB/T 7714-2015 Enenote参考文献模板免费下载
  20. HDFS v1.0学习笔记

热门文章

  1. Java 进阶 hello world! - 中级程序员之路
  2. 浅谈一下Program Files和Program Files(x86)
  3. Stanford Parser使用
  4. 中国大学慕课MOOC第七章测试题答案
  5. 浙大玉泉校区-武林门民航售票处-萧山机场
  6. 强烈推荐提升自我的30个好习惯
  7. 一个超级实用的单片机调试技巧!DWT组件
  8. 【python】【爬虫】爬取电子书《红星照耀中国》
  9. Xshell访问连接路由器的服务器
  10. 产品营销策划方案:6个创意来源