概率分布与编程:二项式分布、泊松分布的原理,Python3如何实现

liftword2个月前 (02-08)技术文章34

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

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

表示。

计算公式:


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

计算公式:


举例:组合怎么算

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次的概率是多少。那么就可以用二项分布的公式快速计算出来了。


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


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

一般地,如果随机变量

服从参数为

的二项分布,我们记为

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

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

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

或者

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

个不同的方法。


举个现实的例子:

经济学

在保险业务中,我们经常需要根据实际情况适当调整保费问题,以保证保险公司的利润达到一定要求,同时保险公司的业务量也达到要求,对于这一类问题,可以对已知实际情况做一定的概率分析。例如某保险公司有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()

结果生成的图是:


可以看出

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

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


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


泊松分布的概率函数为:

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

泊松分布的期望方差均为

特征函数为



参考文献:

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

https://baike.baidu.com/item/%E4%BA%8C%E9%A1%B9%E5%88%86%E5%B8%83/1442377?fromtitle=%E4%BA%8C%E9%A1%B9%E5%BC%8F%E5%88%86%E5%B8%83&fromid=3565421&fr=aladdin

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

https://baike.baidu.com/item/%E6%B3%8A%E6%9D%BE%E5%88%86%E5%B8%83/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

相关文章

Python 循环的高阶写法:简洁与高效的代码技巧

在 Python 中,循环的高阶写法通常借助一些内置函数、生成器表达式以及高级的库,能够让代码更加简洁、优雅。以下是几种常见的高阶写法:1. 列表推导式(List Comprehension)列表推导...

Python常用算法学习(7) 动态规划,回溯法(原理+代码)-最全总结

引言:从斐波那契数列看动态规划  斐波那契数列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1)练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项...

原理 + 代码|手把手教你用Python实现智能推荐算法

推荐系统将成为未来十年里最重要的变革,社会化网站将由推荐系统所驱动。 --- John Riedl明尼苏达大学教授前言智能推荐和泛的营销完全不同,后者是将产品卖给客户作为最终目标;而智能推荐是以“客户...

林俊杰的元宇宙房地产塌房,周杰伦站台的NFT稀碎

萧箫 发自 凹非寺量子位 | 公众号 QbitAI元宇宙房产和NFT暴跌,明星也拦不住。林俊杰花50多万元在元宇宙买下的三块虚拟地产暴降80%,跌到9万多元。这些地产如今访问量几乎为零,周围也完全没有...

Python语言常用技巧汇总_python语言的常用语句

一、列表操作技巧列表推导式 # 传统循环 squares = [] for x in range(10): squares.append(x**2) # 列表推导...

大厂面试:排列与组合傻傻分不清楚

一、概念以a、b、c三个字符来举例。1)排列:全排列即字符不能重复,第一位有3种选择,第二位有2种选择,第三位有1种选择,所以最后有3*2*1=6种结果。2)组合:组合不要求三个字符都必须加入结果。求...