作者:Runsen
二项分布
包含n个相同的试验 每次试验只有两个可能的结果:“成功”或“失败” 。出现成功的概率p对每一次试验是相同的 , 失败的概率q也是如此 , 且p+q=1 。试验是互相独立的 。试验成功或失败可以计数 , 即试验结果对应于一个离散型随机变量 。【Python实现概率分布,学数据统计的需要收藏】以X表示n次重复独立试验中事件A(成功)出现的次数 , 则
文章插图
在Python中 , 可以使用scipy.stats模块中的binom.rvs()方法生成符合二项分布的离散随机变量 。该方法的参数n表示n次重复独立试验 , p表示事件A出现的次数 。size表示做多少次二项分布试验 。
同时 , 本文中使用seaborn的distplot方法绘制随机变量分布的直方图 。在大数据量的试验下 , 通过随机变量出现的频率除以试验的次数 , 可以得到特定离散随机变量出现的概率 。
from scipy.stats import binomimport seaborn as snsdata_binom = binom.rvs(n=10,p=0.5,size=10000)ax = sns.distplot(data_binom,kde=False,color='green',hist_kws={"linewidth": 15,'alpha':1})ax.set(xlabel='Binomial Distribution', ylabel='Frequency')
文章插图
# 可以打印随机变量的值 , 按照定义 , 其值为出现A事件的次数 , 范围肯定在[0,1]print(data_binom)[2 3 6 ... 5 4 3]
以抛硬币试验解析上图 , 得出连续抛10次硬币 , 5次为正面的概率最高 , 概率趋近于2500/10000=25% 。贝努里分布(Bernoulli Distribution)贝努里分布为特殊的二项分布 , 即每次执行一次试验(n=1) , 然后获取单次试验的随机变量的值 , 为0或1 。所以贝努里分布也被称为0-1分布 。其分布函数为:
文章插图
在python中 , 可以使用scipy.stats模块中的bernoulli.rvs()方法生成符合二项分布的离散随机变量 。其它参数同二项分布 。
from scipy.stats import bernoullidata_bern = bernoulli.rvs(size=10000,p=0.5)ax= sns.distplot(data_bern,kde=False,color="green",hist_kws={"linewidth": 15,'alpha':1})ax.set(xlabel='Bernoulli Distribution', ylabel='Frequency')
文章插图
以抛硬币试验解析上图 , 得出正面和反面出现的概率 , 趋近于5000/10000=50% 。
几何分布(Geometric distribution)
几何分布是指在n次贝努里试验中 , 经过k次获得1次成功的概率 。
几何分布的特点:(1)进行一系列相互独立的试验;(2)每一次试验既有成功的可能 , 也有失败的可能 , 且单次试验的成功概率相同;(3)主要是为了取得第一次成功需要进行多少次试验 。
其分布函数为:文章插图
在python中 , 可以使用scipy.stats模块中的geom.rvs()方法得出几何分布的离散随机变量 。
from scipy.stats import geomdata_geom = geom.rvs(size=10000,p=0.5)ax= sns.distplot(data_geom,kde=False,color="green",hist_kws={"linewidth": 15,'alpha':1})ax.set(xlabel='Geometric Distribution', ylabel='Frequency')
文章插图
泊松分布(Poisson distribution)
泊松分布是用来描述在一指定时间范围内或在指定的面积或体积之内某一事件出现的次数的分布 , 例如某企业每月发生事故的次数 。泊松分布的公式为:
文章插图
式中 , 为给定的时间间隔内事件的平均数 。
在python中 , 可以使用scipy.stats模块中的poisson.rvs()方法得出泊松分布的连续随机变量 。其中参数mu即为公式中的 , 其它参数同上文方法 。
from scipy.stats import poissondata_poisson = poisson.rvs(mu=3, size=10000)ax = sns.distplot(data_poisson,bins=30,kde=False,color="green",hist_kws={"linewidth": 15,'alpha':1})ax.set(xlabel='Poisson Distribution', ylabel='Frequency')
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 阻塞队列实现生产者消费者以及同步工具类
- Linux使用shell定时任务实现ffmpeg视频转码和截图
- 5年Python功力,总结了10个开发技巧
- 81个用于日常问题的Python代码片段
- 让外地出差员工访问到内网资源的实现方
- Python量化交易之单品种多策略多账户组合交易,多线程的应用!
- 基于云落地SLB+Tengine实现高可用集群负载均衡 - 中
- Python骚操作!你还在用PS制作电子签名吗?
- Python自动化有哪些有趣的事情?
- Python求解特征向量和拉普拉斯矩阵