在说二项式分布之前,先来复习一下排列组合的概念,尤其是组合(Combination) C。

排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个不同的元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号

python函数确定样本数据分布(概率分布与编程)(1)

python函数确定样本数据分布(概率分布与编程)(2)

表示。

计算公式:

python函数确定样本数据分布(概率分布与编程)(3)

组合的定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。

计算公式:

python函数确定样本数据分布(概率分布与编程)(4)

python函数确定样本数据分布(概率分布与编程)(5)

举例:组合怎么算

1、比如C73,就是7开始的3个数相乘(7*6*5)再除以3开始到1之间所有的数(3*2*1)

2、比如C52,分子是从5开始递减的两个数字相乘,即5*4;分母为从2开始到1,即2*1;所以结果为5*4÷(2*1)=10;

那么,什么是二项分布呢?只要符合下面3个特点就可以判断某事件是二项分布了:

1)做某件事的次数(也叫试验次数)是固定的,用n表示。

(例如抛硬币3次,投资5支股票),

2)每一次事件都有两个可能的结果(成功,或者失败)

(例如每一次抛硬币有2个结果:正面表示成功,反面表示失败。

每一次投资美股有2个结果:投资成功,投资失败)。

3)每一次成功的概率都是相等的,成功的概率用p表示

(例如每一次抛硬币正面朝上的概率都是1/2。

你投资了5家公司的股票,假设每一家投资盈利成功的概率都相同)

4)你感兴趣的是成功x次的概率是多少。那么就可以用二项分布的公式快速计算出来了。

比如抛硬币是一个典型的二项分布。

python函数确定样本数据分布(概率分布与编程)(6)

在概率论和统计学中,二项分布是n个独立的成功/失败试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n=1时,二项分布就是伯努利分布。 [2]

一般地,如果随机变量

python函数确定样本数据分布(概率分布与编程)(7)

服从参数为

python函数确定样本数据分布(概率分布与编程)(8)

python函数确定样本数据分布(概率分布与编程)(9)

的二项分布,我们记为

python函数确定样本数据分布(概率分布与编程)(10)

python函数确定样本数据分布(概率分布与编程)(11)

。n次试验中正好得到k次成功的概率由概率质量函数给出: [2]

python函数确定样本数据分布(概率分布与编程)(12)

式中k=0,1,2,…,n,

python函数确定样本数据分布(概率分布与编程)(13)

是二项式系数(这就是二项分布名称的由来),又记为

python函数确定样本数据分布(概率分布与编程)(14)

或者

python函数确定样本数据分布(概率分布与编程)(15)

。 该公式可以用以下方法理解:我们希望有k次成功(p)和n−k次失败(1 −p)。并且,k次成功可以在n次试验的任何地方出现,而把k次成功分布在n次试验中共有

python函数确定样本数据分布(概率分布与编程)(16)

个不同的方法。

python函数确定样本数据分布(概率分布与编程)(17)

举个现实的例子:

经济学

在保险业务中,我们经常需要根据实际情况适当调整保费问题,以保证保险公司的利润达到一定要求,同时保险公司的业务量也达到要求,对于这一类问题,可以对已知实际情况做一定的概率分析。例如某保险公司有10000客户购买人身意外保险,该公司规定每人每年付公司120元 ,若遇意外死亡,公司将赔偿10000元。若每人每年死亡率为0.006,从而不难利用二项分布算出公司获利、亏本的各种情形了。实际上对于随机现象,了解其分布非常有意义,利用概率论讨论得到的结果对保险公司有一定的指导意义。

这里我二项式分布的公式也懒得套用了,直接Python交易。

上代码:

import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats # 绘制二项分布和泊松分布图 n = 10000 p=0.006 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="erxiang") plt.plot(x,y2,label="bosong") plt.legend() plt.show()

结果生成的图是:

python函数确定样本数据分布(概率分布与编程)(18)

可以看出

挂几个人的概率最多也就刚超过0.05,然后挂的人数越多的概率就越趋于0了。

保险公司的钱来得是真轻松啊,赔付概率是很低的。

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

泊松分布的概率函数为:

python函数确定样本数据分布(概率分布与编程)(19)

泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数。 泊松分布适合于描述单位时间内随机事件发生的次数。

泊松分布的期望和方差均为

python函数确定样本数据分布(概率分布与编程)(20)

特征函数为

python函数确定样本数据分布(概率分布与编程)(21)

参考文献:

【1】百度百科的二项式分布

https://baike.baidu.com/item/二项分布/1442377?fromtitle=二项式分布&fromid=3565421&fr=aladdin

【2】百度百科的泊松分布

https://baike.baidu.com/item/泊松分布/1442110?fr=aladdin

【3】Python之二项分布、泊松分布

https://cloud.tencent.com/developer/article/1752135

扩展阅读:

【1】泊松分布的现实意义是什么,为什么现实生活多数服从于泊松分布? - 猴子的回答 - 知乎

https://www.zhihu.com/question/26441147/answer/208718584

【2】泊松分布的现实意义是什么,为什么现实生活多数服从于泊松分布? - 马同学的回答 - 知乎

https://www.zhihu.com/question/26441147/answer/429569625

,