- Python概率統計
- 李爽編著
- 1412字
- 2024-12-27 19:43:18
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
- Visual C++程序設計學習筆記
- Learning Python by Building Games
- 從零開始:UI圖標設計與制作(第3版)
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Hands-On Dependency Injection in Go
- Python機器學習開發實戰
- Clojure Web Development Essentials
- Java核心編程
- Koa與Node.js開發實戰
- Getting Started with the Lazarus IDE
- Learning Ionic(Second Edition)
- 面向物聯網的Android應用開發與實踐
- 陪孩子像搭積木一樣學編程:Python真好玩+Scratch趣味編程(全2冊)
- HTML5 Boilerplate Web Development
- Arduino Robotic Projects