1.6 全概率公式与贝叶斯公式
下面建立两个重要的计算概率的公式:全概率公式与贝叶斯公式。
1.6.1 样本空间的划分
设事件集合A1,A2,…,An满足以下两个条件:
(1)Ai∩Aj=∅,并且P(Ai)>0对任意的1≤i,j≤n成立。
(2)。
则称A1,A2,…,An为样本空间S的一个划分。这样的事件集合也称为完备事件组。如果A1,A2,…,An是样本空间的一个划分,则对于每次试验,事件A1,A2,…,An中有且仅有一个发生。
1.6.2 全概率公式
设样本空间为S,事件A1,A2,…,An是S的一个划分,并且每个P(Ak)>0,则对于任何一个事件B,有以下公式:
称此公式为全概率公式。特别地,当n=2时,A和就是S的一个划分,由全概率公式可得
【例1-16】 设有一批产品,其中甲公司生产的占60%,乙公司生产的占40%,甲公司产品合格率是95%,乙公司产品合格率为90%,求从这批产品随机抽取一件为合格品的概率。
解:设A={抽取的是甲公司的产品},则,设B={抽取产品合格},根据所给的条件有
由全概率公式有
例1-16代码如下:
#第1章/1-9.py pA, pA_ = 0.6, 0.4 pBA, pBA_ = 0.95, 0.9 pB = pA * pBA + pA_ * pBA_ print(pB)
输出如下:
0.9299999999999999
【例1-17】 一批产品共有10个正品和2个次品,任意抽取两次,每次抽出一个,抽出后不再放回,求第2次抽出的是次品的概率。
解:设A表示事件:第1次抽出的是正品;B表示事件:第2次抽出的是次品,则
根据题意,抽出后不再放回,可得
由全概率公式得
代码如下:
#第1章/1-10.py n_plus = 10 n_minus = 2 n = n_plus + n_minus PA = n_plus/n PA_ = 1-PA PB_A = n_minus/(n-1) PB_A_ = (n_minus-1)/(n-1) #全概率公式 p = PA * PB_A + PA_ * PB_A_ print('第2次抽出的是次品的概率为', p)
输出如下:
第2次抽出的是次品的概率为0.16666666666666666
1.6.3 贝叶斯公式
设样本空间为S,事件A1,A2,…,An是S的一个划分,并且每个P(Ak)>0。设B为任意事件,并且P(B)>0,则由全概率公式可得
以上公式称为贝叶斯公式。贝叶斯公式也被称为后验概率公式或者逆概率公式,它表示在已知结果发生的情况下,求导致这一结果的某种原因的概率大小。
【例1-18】 四位工人生产同一种零件,产量分别占总产量的35%、30%、20%、15%,并且这四人生产产品的不合格率分别为2%、3%、4%、5%。从这批产品中任取一件,求
(1)它是不合格品的概率。
(2)已知是不合格品,它是第1个工人生产的概率。
解:设B={抽取产品不合格},设Ai={抽取的产品是第i个工人生产的},则
P(A1)=0.35, P(A2)=0.3, P(A3)=0.2,P(A4)=0.15
P(B|A1)=0.02, P(B|A2)=0.03, P(B|A3)=0.04, P(B|A4)=0.05
(1)由全概率公式得
(2)由贝叶斯公式得
代码如下:
#第1章/1-11.py import numpy as np pA = np.array([0.35, 0.3, 0.2, 0.15]) pBA = np.array([0.02, 0.03, 0.04, 0.05]) pB = (pA * pBA).sum() print('它是不合格品的概率:', pB) print('它由第1个工人生产的概率:', 0.35 * 0.02/pB)
输出如下:
它是不合格品的概率:0.0315 它由第1个工人生产的概率:0.2222222222222222
【例1-19】 玻璃杯成箱出售,每箱20只,假设各箱含0、1、2只残次品的概率分别是0.8、0.1、0.1,一顾客要购买一箱玻璃杯,在购买时售货员随意取一箱,而顾客开箱随机查看4只,若无残次品则买下整箱玻璃杯,否则退回。求
(1)顾客买下该箱玻璃杯的概率。
(2)在顾客买下的一箱中,确实没有残次品的概率。
解:设事件A表示顾客买下所查看的一箱玻璃杯,事件Bi表示这一箱中恰好有i件残次品。根据题意可知
(1)由全概率公式
(2)由贝叶斯公式
代码如下:
#第1章/1-12.py from scipy.special import comb PB0 = 0.8 PB1 = 0.1 PB2 = 0.1 PA_B0 = 1 PA_B1 = comb(19, 4)/comb(20, 4) PA_B2 = comb(18, 4)/comb(20, 4) #第(1)问 p = PB0 * PA_B0 + PB1 * PA_B1 + PB2 * PA_B2 print('顾客买下该箱玻璃杯的概率为', p) #第(2)问 p = PB0 * PA_B0/p print('在顾客买下的一箱中, 确实没有残次品的概率为', p)
输出如下:
顾客买下该箱玻璃杯的概率为0.9431578947368422 在顾客买下的一箱中, 确实没有残次品的概率为0.8482142857142857