泊松分布 二项分布 正态分布之间的联系,与绘制高斯分布图

版权声明:本文为博主原创文章,欢迎交流分享,未经博主允许不得转载。 https://blog.csdn.net/HHTNAN/article/details/62045872

   基础知识 

  二项分布有两个参数,一个 n 表示试验次数,一个 p 表示一次试验成功概率。现在考虑一列二项分布,其中试验次数 n 无限增加,而 p 是 n 的函数。

  1.如果 np 存在有限极限 λ,则这列二项分布就趋于参数为 λ 的 泊松分布。反之,如果 np 趋于无限大(如 p 是一个定值),则根据德莫佛-拉普拉斯(De'Moivre-Laplace)中心极限定理,这列二项分布将趋近于正态分布。

  2.实际运用中当 n 很大时一般都用正态分布来近似计算二项分布,但是如果同时 np 又比较小(比起 n来说很小),那么用泊松分布近似计算更简单些,毕竟泊松分布跟二项分布一样都是离散型分布。

一、泊松分布

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

  • 某医院平均每小时出生3个婴儿
  • 某公司平均每10分钟接到1个电话
  • 某超市平均每天销售4包xx牌奶粉
  • 某网站平均每分钟有2次访问

它们的特点就是,我们可以预估这些事件的总数,但是没法知道具体的发生时间。已知平均每小时出生3个婴儿,请问下一个小时,会出生几个?

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

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

       上面就是泊松分布的公式。等号的左边,P 表示概率,N表示某种函数关系,t 表示时间,n 表示数量,1小时内出生3个婴儿的概率,就表示为 P(N(1) = 3) 。等号的右边,λ 表示事件的频率。接下来两个小时,一个婴儿都不出生的概率是0.25%,基本不可能发生。

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


     泊松分布的图形大概是下面的样子。

       可以看到,在频率附近,事件的发生概率最高,然后向两边对称下降,即变得越大和越小都不太可能。每小时出生3个婴儿,这是最可能的结果,出生得越多或越少,就越不可能。

二、二项分布

      二项分布即重复n次的伯努利试验。在每次试验中只有两种可能的结果,而且是互相对立的,是独立的,与其它各次试验结果无关,结果事件发生的概率在整个系列试验中保持不变,则这一系列试验称为伯努利实验。

三、正太分布

      正态分布(Normal distribution),也称"常态分布",又名高斯分布(Gaussian distribution),最早由A.棣莫弗在求二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
       正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。

假设随机变量X服从一个位置参数为μ、尺度参数为σ的正态分布,则可以记为:


而概率密度函数为


当μ = 0,σ = 1时的正态分布是标准正态分布。


在python中画正态分布直方图

通过numpy构造正太分布数据,之后画图,可以通过size大小来调节数据的正太分布效果
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
mu ,sigma = 0, 1
sampleNo = 1000000
np.random.seed(0)
s = np.random.normal(mu, sigma, size=sampleNo)

plt.hist(s, bins=100, normed=True)
plt.title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f' % (mu,sigma))
plt.show()

画直方图与概率分布曲线



mu, sigma , num_bins = 0, 1, 50
x = mu + sigma * np.random.randn(1000000)
# 正态分布的数据
n, bins, patches = plt.hist(x, num_bins, normed=True, facecolor = 'blue', alpha = 0.5)
# 拟合曲线
y = mlab.normpdf(bins, mu, sigma)
plt.plot(bins, y, 'r--')
plt.xlabel('Expectation')
plt.ylabel('Probability')
plt.title('histogram of normal distribution: $\mu = 0$, $\sigma=1$')

plt.subplots_adjust(left = 0.15)
plt.show()

阅读更多

扫码向博主提问

HHTNAN

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • python
  • 数学建模
  • 机器学习
  • 自然语言处理
  • 人工智能
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页