概率统计Python计算:条件概率和概率乘法公式

2024-08-22 22:58

本文主要是介绍概率统计Python计算:条件概率和概率乘法公式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

1. 古典概型中条件概率的计算

条件概率 P ( B ∣ A ) P(B|A) P(BA)是将样本空间限制在 A A A上, A ∩ B A\cap B AB的概率。因此,我们可以利用博文《概率统计Python计算:解古典概型问题》定义的函数P(A, S),计算古典概型中的条件概率。这只需对两个参数A和S分别传递 A ∩ B A\cap B AB A A A即可。
例1 一盒子装有4只产品,其中有3只一等品,1只二等品。从中无放回地抽取产品两次,每次任取一只。设事件 A A A为“第一次取到的是一等品”,事件 B B B为“第二次取到的是一等品”。求条件概率 P ( B ∣ A ) P(B|A) P(BA)
解: 由抽取的任意性知,这个试验是一个古典概型。所谓无放回抽样,指的是第1次抽取1球,观察后不放回袋中,然后从袋中抽取第2次。第一次抽取时在4件产品中任取一件,故有4种取法。第2次抽取是在剩下的3件产品中任取一件,有3种取法。因此,样本空间含样本点数 ∣ S ∣ = 4 ⋅ 3 = 12 |S|=4\cdot 3=12 S=43=12。对事件 A A A:“第一次取到的是一等品”而言,第一次取得的一等品应是原有的3件一等品之一,故有3种取法;第二次是在余下的3件中任取一件,也有3种取法。故 ∣ A ∣ = 3 2 = 9 |A|=3^2=9 A=32=9 P ( A ) = 9 / 12 = 3 / 4 P(A)=9/12=3/4 P(A)=9/12=3/4。事件 A ∩ B A\cap B AB:,“第一次和第二次都取到一等品”。这意味着第一次是在3件一等品中任取一件,第二次是在剩下的2件一等品中任取一件,故 ∣ A ∩ B ∣ = 3 ⋅ 2 = 6 |A\cap B|=3\cdot 2=6 AB=32=6 P ( A ∩ B ) = 6 / 12 = 1 / 2 P(A\cap B)=6/12=1/2 P(AB)=6/12=1/2。于是
P ( B ∣ A ) = P ( A ∩ B ) P ( A ) = 1 / 2 3 / 4 = 2 / 3. P(B|A)=\frac{P(A\cap B)}{P(A)}=\frac{1/2}{3/4}=2/3. P(BA)=P(A)P(AB)=3/41/2=2/3.
设1,2,3表示一等品,4表示二等品。其样本空间就是由1, 2, 3, 4中任意抽取2个的排列构成。设 ( i , j ) (i, j) (i,j)为任一样本点( 1 ≤ i ≠ j ≤ 4 1\leq i\not=j\leq4 1i=j4),事件 A A A:第一次抽到一等品中的样本点应满足条件 i ≤ 3 i\leq 3 i3 B B B:第二次抽到一等品中的样本点应满足 j ≤ 3 j\leq 3 j3
将试验的样本空间及样本空间中样本点结构的约定以及事件A和B应满足的条件反映成如下的Python代码:

from sympy.utilities.iterables import variations as permutations#导入permutations
S=set(permutations(range(1,5),2))   							#1,2,3为一等品,4为二等品
A = subSet(S, lambda a: a[0] <= 3)							    #设置事件A:“第1次取得一等品”
B = subSet(S, lambda a: a[1] <= 3)							    #设置事件B:“第2次取得一等品”
p = P(A&B, A)
print('P(B|A)=%s' % p)

程序的第2行调用permutations函数(第1行导入)设置本试验的样本空间S。第3、4行调用函数subSet(定义见博文《按条件设置随机事件》),设置事件A:“第一次取得一等品”和B:“第2次取得一等品”。第9行调用前面定义的函数P,计算条件概率P(B|A)。注意传递给第一个参数的是表示 A ∩ B A\cap B AB的A&B。运行程序,输出

P(B|A)=2/3

即为本例的解。

2. 乘法公式

例2 已知在10件产品中有2件次品,从中取两次,每次任取一件,作不放回抽样。计算下列事件的概率。

  1. 两件都是正品;
  2. 两件都是次品;
  3. 一件是正品,一件是次品;
  4. 第二次取出的是次品。

解: 按不放回抽取方式,从10件产品中(包括2件次品)抽取两次,每次任取一件是一个古典概型。故用Python计算其中随机事件的概率需先考虑样本空间 S S S及其样本点的结构。我们用 1 , 2 , ⋯ , 8 1, 2, \cdots, 8 1,2,,8表示8个正品,9和10表示2个次品。无放回两次抽取产品的样本点可用二元组 ( i , j ) (i, j) (i,j)表示。其中, 1 ≤ i ≠ j ≤ 10 1\leq i\not=j\leq 10 1i=j10。样本空间 S S S就是由所有这样的二元组构成。设事件 A 1 A_1 A1表示“第一次取到正品”, A 2 A_2 A2表示“第二次取到正品”。则 A 1 A_1 A1中样本点 ( i , j ) (i, j) (i,j)满足条件 i ≤ 8 i\leq8 i8 A 2 A_2 A2中样本点 ( i , j ) (i, j) (i,j)满足条件 j ≤ 8 j\leq8 j8。下列程序计算概率 P ( A 1 ∩ A 2 ) P(A_1\cap A_2) P(A1A2) P ( A ‾ 1 ∩ A ‾ 2 ) P(\overline{A}_1\cap\overline{A}_2) P(A1A2) P ( A 1 ∩ A ‾ 2 ∪ A ‾ 1 ∩ A 2 ) = 1 − P ( A 1 ∩ A 2 ) − P ( A ‾ 1 ∩ A ‾ 2 ) P(A1\cap\overline{A}_2\cup\overline{A}_1\cap A_2)=1-P(A_1\cap A_2)-P(\overline{A}_1\cap\overline{A}_2) P(A1A2A1A2)=1P(A1A2)P(A1A2) P ( A 2 ) P(A_2) P(A2)

from sympy.utilities.iterables import variations as permutations#导入permutations
S=set(permutations(range(1,11),2))      						#1~8为一等品,9,10为二等品
A1=subSet(S, lambda a: a[0]<=8)       						    #事件A1
A2=subSet(S, lambda a: a[1]<=8)       						    #事件A2
A1_=S-A1                                						#A1的对立事件Ā1
A2_=S-A2                                						#A2的对立事件Ā2
p1=P(A1, S)*P(A1&A2, A1)               							#P(A1*A2)
p2=P(A1_, S)*P(A1_&A2_, A1_)            						#P(Ā1*Ā2)
p3=1-p1-p2                              						#P(A1*Ā2)+P(Ā1*A2)
p4=P(A2_, S)                            						#P(Ā2)
print('P(A1*A2)=%s'%p1)
print('P(A1_*A2_)=%s'%p2)
print('P(A1*A2_)+P(A1_*A2)=%s'%p3)
print('P(A2_)=%s'%p4)

程序的第2行完成对样本空间的设置: { 1 , 2 ⋯ , 10 } \{1,2\cdots,10\} {1,2,10}中任取2个元素的排列。第3~6行设置事件 A 1 A_1 A1 A 2 A_2 A2 A ‾ 1 \overline{A}_1 A1 A ‾ 2 \overline{A}_2 A2。第7~10行分别计算概率 P ( A 1 ∩ A 2 ) P(A_1\cap A_2) P(A1A2) P ( A ‾ 1 ∩ A ‾ 2 ) P(\overline{A}_1\cap\overline{A}_2) P(A1A2) P ( A 1 ∩ A ‾ 2 ∪ A ‾ 1 ∩ A 2 ) = 1 − P ( A 1 ∩ A 2 ) − P ( A ‾ 1 ∩ A ‾ 2 ) P(A1\cap\overline{A}_2\cup\overline{A}_1\cap A_2)=1-P(A_1\cap A_2)-P(\overline{A}_1\cap\overline{A}_2) P(A1A2A1A2)=1P(A1A2)P(A1A2) P ( A 2 ) P(A_2) P(A2)。第11~14行输出计算所得概率的值。运行程序,输出:

P(A1*A2)=28/45
P(A1_*A2_)=1/45
P(A1*A2_+A1_*A2)=16/45
P(A2_)=1/5

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

这篇关于概率统计Python计算:条件概率和概率乘法公式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097637

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too