python 二项分布_Python之二项分布、泊松分布

点击关注 不迷路

敲黑板,干货已到达战场!!!在数据分析中,二项分布、泊松分布是我们经常用到的两个分布,今天小编将会先简单介绍二项分布基础:伯努利试验、n重伯努利试验以及两点分布,接着咱们讲解二项分布和泊松分布的概念,完事之后,咱们讲解一下二项分布转换泊松分布求解的条件,最后通过python来看一下,为什么二项分布在某种条件下可以转换成泊松分布近似求解。

伯努利试验

相信大家都抛过硬币,抛硬币的时候是不是只有两种结果,要不是正面,要不是反面,其实做这样的一次试验就是一个伯努利试验,现在我们做一个抽象的概括:假设随机试验E只有两个结果,事件A出现和事件A不出现,同时事件A出现的概率为p,不出现的概率为q,0

两点分布

伯努利试验所对应的分布就是两点分布,两点分布又称0-1分布,即:随机变量X的分布列为:

X01P1-pp

注:1代表发生的概率,0代表不发生的概率

二项分布

n重伯努利实验中,事件A出现的次数对应分布就是二项分布,即:随机变量X的分布列为:

其中,0

泊松分布

泊松分布来自数学家 SimeonDenis- Poisson(1781-1840)的名字,泊松分布主要用于测量连续时间或者空间内离散事件发生的次数。公式如下:

λ>0,表示平均发生的次数。如果随机变量服从二项分布,且

也就是说,当n很大,p很小的情况,可以使用泊松分布近似替代二项分布进行求解,为什么呢?

首先,上边讲到的东西其实有一个正式的名称,叫做泊松定理,既然是定理,也就意味着上边的东西一定成立,接下来,我们通过通俗易懂的一个例子来看一下是为什么。

我们以医院在一天内将会有多少婴儿出生的问题(这个问题就服从泊松分布)为例来看:

我们可以将这一天的时间采用极限的思想,无限细分成n个小的时间段,每一个小的时间段内,是不是只有两种结果出现:婴儿出生和婴儿不出生,是不是这样一个小的时间段我们就可以看做是一个一次随机试验,试验的结果只有两个出生和不出生,这样n个小的时间段是不是就可以看做是一个n重伯努利试验,用分布来描述:就是一个二项分布,泊松分布是不是就转换成了一个二项分布呢?所以简单来讲,在n很大,p很小的情况下,二项分布就是泊松分布,泊松分布就是二项分布,当然也就可以近似替代了。

接下来,我们通过计算机来实现这种结果的模拟。

注:一般当n>=20,p<=0.05的时候,就可以用泊松分布近似替代二项分布了。

01

python实现

当n为10,p=0.5时,根据上边条件,我们得知:二项分布应该不能使用泊松分布近似替代,下图显示,n为10,p=0.5时,二项分布和泊松分布也明显不同(具体代码参见下文)# 导入相应库

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from scipy import stats

# 绘制二项分布和泊松分布图

n = 10

p=0.5

q=1-p

bino = stats.binom(n,p)

x = np.arange(0,n)

y1 = bino.pmf(x)

possion = stats.poisson(n*p)

y2 = possion.pmf(x)

plt.plot(x,y1,label="二项分布")

plt.plot(x,y2,label="泊松分布")

plt.legend()

plt.show()

当n为100,p=0.05时,根据上边条件,我们得知:二项分布应该可以使用泊松分布近似替代,下图显示,n为100,p=0.05时,二项分布和泊松分布就非常近似了(具体代码参见下文)# 导入相应库

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from scipy import stats

# 绘制二项分布图和泊松分布图

n = 100

p=0.05

q=1-p

bino = stats.binom(n,p)

x = np.arange(0,n)

y1 = bino.pmf(x)

possion = stats.poisson(n*p)

y2 = possion.pmf(x)

plt.plot(x,y1,label="二项分布")

plt.plot(x,y2,label="泊松分布")

plt.legend()

plt.show()

02

总结

今天咱们主要学习了什么叫做二项分布、泊松分布以及泊松分布对二项分布的近似替代,相信大家应该已经清楚了两者之间的关系。下节,我们聚焦二项分布和正态分布,揭秘一下他们两者之间又将有什么样的“爱恨情仇”,敬请期待吧!

你可能感兴趣的:(python,二项分布)