Python概率统计
上QQ阅读APP看书,第一时间看更新

1.6 全概率公式与贝叶斯公式

下面建立两个重要的计算概率的公式:全概率公式与贝叶斯公式。

1.6.1 样本空间的划分

设事件集合A1A2,…,An满足以下两个条件:

(1)AiAj=∅,并且PAi)>0对任意的1≤ijn成立。

(2)

则称A1A2,…,An为样本空间S的一个划分。这样的事件集合也称为完备事件组。如果A1A2,…,An是样本空间的一个划分,则对于每次试验,事件A1A2,…,An中有且仅有一个发生。

1.6.2 全概率公式

设样本空间为S,事件A1A2,…,AnS的一个划分,并且每个PAk)>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,事件A1A2,…,AnS的一个划分,并且每个PAk)>0。设B为任意事件,并且PB)>0,则由全概率公式可得

以上公式称为贝叶斯公式。贝叶斯公式也被称为后验概率公式或者逆概率公式,它表示在已知结果发生的情况下,求导致这一结果的某种原因的概率大小。

例1-18】 四位工人生产同一种零件,产量分别占总产量的35%、30%、20%、15%,并且这四人生产产品的不合格率分别为2%、3%、4%、5%。从这批产品中任取一件,求

(1)它是不合格品的概率。

(2)已知是不合格品,它是第1个工人生产的概率。

解:B={抽取产品不合格},设Ai={抽取的产品是第i个工人生产的},则

PA1)=0.35, PA2)=0.3, PA3)=0.2,PA4)=0.15

PB|A1)=0.02, PB|A2)=0.03, PB|A3)=0.04, PB|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