Định lý Bayes (Bayes' Theorem) là một định lý toán học để tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra.

Định lý này đặt theo tên nhà toán học Thomas Bayes, người Anh sống ở thế kỷ 18. Đây là một trong những công cụ vô cùng hữu ích, người bạn thân của các Data Scientist, những người làm trong ngành khoa học dữ liệu.

1. Xác suất có điều kiện

Ta có 2 sự kiện ngẫu nhiên A và B.

Nếu A và B là 2 sự kiện độc lập, ta có xác suất để xảy ra A và B đồng thời là:
$$ P(A,B) = P(A) P(B) ~~~~(1) $$

trong đó:
$P(A)$ là xác suất xảy ra A riêng biệt.
$P(B)$ là xác suất xảy ra B riêng biệt.

Nếu A và B là 2 sự kiện liên quan đến nhau, và xác suất xảy ra sự kiện B lớn hơn 0, ta có thể định nghĩa xác suất xảy ra $A$ khi biết $B$ xảy ra như sau:
$$ P(A|B) = \dfrac{P(A,B)}{P(B)} $$ Ta có thể viết lại thành: $$ P(A,B) = P(A|B)P(B) $$

Khi A và B là 2 sự kiện độc lập ta có $P(A|B) = P(A)$, ta thu được công thức như $(1)$.

Ví dụ

Để hiểu hơn, ta cùng lấy một ví dụ.

Đề bài

Một gia đình có 2 đứa trẻ. Biết rằng có ít nhất 1 đứa trẻ là con gái. Hỏi xác suất 2 đứa trẻ đều là con gái là bao nhiêu?

Hiểu rằng:

  • Xác suất để một đứa trẻ là trai hoặc gái là bằng nhau và bằng 1/2.
  • Giới tính cả 2 đứa trẻ là ngẫu nhiên và không liên quan đến nhau.

Lời giải

Do gia đình có 2 đứa trẻ nên sẽ có thể xảy ra 4 khả năng: (trai, trai), (gái, gái), (gái, trai), (trai, gái).

Ký hiệu Sự kiện Xác suất
$B$ Ít nhất 1 đứa trẻ là con gái 3/4
$A$ Cả 2 đứa trẻ đều là con gái 1/4

Do nếu xảy ra A thì đương nhiên sẽ xảy ra B nên ta có: P(A,B) = P(A) = 1/4

Lắp vào công thức trên ta có:

$$ P(A|B) = \dfrac{P(A,B)}{P(B)} = \dfrac{\tfrac{1}{4}}{\tfrac{3}{4}} = \dfrac{1}{3} $$

Bằng trực quan ta cũng có thể nhìn ra xác suất này. Khi biết một đứa trẻ là gái, giới tính của 2 đứa trẻ sẽ có 3 khả năng: (trai, gái), (gái, trai), (gái, gái).

2. Định lý Bayes

Định lý Bayes dựa trên định nghĩa về xác suất có điều kiện ở trên, được phát biểu dưới dạng công thức như sau:
$$ P(A|B) = \dfrac{P(B|A)P(A)}{P(B)} $$

Kí hiệu $\neg A$ là không $A$ (hay bù $A$). Ta có $P(A) + P(\neg A) = 1$.
Từ đó: $$ P(B) = P(B,A) + P(B, \neg A) = P(B|A)P(A) + P(B| \neg A)P(\neg A) $$

Định lý Bayes được viết dưới dạng biến thể như sau:

$$ P(A|B) = \dfrac{P(B|A)P(A)}{P(B|A)P(A) + P(B| \neg A)P(\neg A)} $$

3. Bài toán Tuesday Child

Đây là một bài toán khá nổi tiếng trong xác suất thống kê, được giải theo nhiều cách khác nhau. Ta hãy thử giải bài toán này bằng định lý Bayes xem sao.

Đề bài

Vẫn là gia đình có 2 đứa trẻ như ví dụ 1. Biết có ít nhất có một đứa trẻ là con gái và sinh vào thứ 3. Hỏi xác suất 2 đứa trẻ đều là con gái là bao nhiêu?

Hiểu rằng:

  • Xác suất để một đứa trẻ sinh vào một ngày nhất định trong tuần là 1/7.
  • Giới tính của đứa trẻ và ngày sinh của nó là 2 sự kiện không liên quan đến nhau.

Lời giải

Thoạt nhìn ta dễ tưởng giới tính và ngày sinh của đứa trẻ là 2 sự kiện không liên quan đến nhau, nên ta sẽ thu được kết quả như ví dụ 1. Tưởng vậy mà không phải vậy…

Ta ký hiệu các sự kiện như sau:

Ký hiệu Sự kiện Xác suất
$B$ Ít nhất 1 đứa trẻ là con gái sinh ra vào thứ 3 ?
$A$ Cả 2 đứa trẻ đều là con gái 1/4
$A_1$ Chỉ một trong 2 đứa trẻ là con gái 1/2
$C$ Đứa trẻ sinh ra vào thứ 3 1/7
$\neg C$ Đứa trẻ không sinh ra vào thứ 3 6/7

Để sử dụng định lý Bayes tính $P(A|B)$ ta cần tính được $P(B|A)$ và $P(B)$.

$P(B|A)$ được hiểu là xác suất ít nhất 1 đứa trẻ là con gái sinh ra vào thứ 3 nếu biết trước 2 đứa trẻ là con gái.
Ta sẽ tính xác suất phần bù $P (\neg B|A)$ là xác suất để không có đứa trẻ nào sinh ra vào thứ 3.
$$ P (\neg B|A) = P(\neg C) P(\neg C) = \dfrac{6}{7} \times \dfrac{6}{7} = \dfrac{36}{49} $$

Vậy ta có
$$ P(B|A) = 1 - P(\neg B|A) = \dfrac{13}{49} $$

$P(B)$ là xác suất sự ít nhất 1 đứa trẻ là con gái sinh ra vào thứ 3.
Sự kiện này bao gồm 2 khả năng:

  1. Cả 2 đứa trẻ đều là con gái ($A$)
  2. Chỉ 1 đứa trẻ là con gái ($A_1$)

Ta có $$ \begin{aligned} P(B) &=& P(B,A) + P(B,A_1) \cr P(B) &=& P(B|A)P(A) + P(B|A_1)P(A_1) \cr P(B) &=& \dfrac{13}{49} \times \dfrac{1}{4} + \dfrac{1}{7} \times \dfrac{1}{2} \cr P(B) &=& \dfrac{27}{196} \end{aligned} $$

Thay vào định lý Bayes, ta tính được

$$ P(A|B) = \dfrac{P(B|A)P(A)}{P(B)} = \dfrac{\tfrac{13}{49} \times \tfrac{1}{4}}{\tfrac{27}{196}} = \dfrac{13}{27} \approx 0.481 $$

Kiểm tra

Ta dùng một đoạn code Python nho nhỏ để kiểm tra thử kết quả vừa tính được.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import random

def random_kid():
    gender = random.choice(["boy", "girl"])
    birth_date = random.choice(["mon", "tue", "wed", "thu", "fri", "sat", "sun"])
    return (gender, birth_date)


both_girls = 0
tuesday_girl = 0

random.seed(0)
total = 100000
for _ in range(total):
    first_child = random_kid()
    second_child = random_kid()

    if first_child == ("girl", "tue") or second_child == ("girl", "tue"):
        tuesday_girl += 1
        if first_child[0] == "girl" and second_child[0] == "girl":
            both_girls += 1

print("both_girls = ", both_girls)
print("tuesday_girl = ", tuesday_girl)
print("P(both_girls|tuesday_girl) = ", both_girls / tuesday_girl)

Đoạn code trên thực hiện random 100K dữ liệu.

Thu được kết quả in ra như sau

both_girls =  6506
tuesday_girl =  13637
P(both_girls|tuesday_girl) =  0.4770844027278727

Xác suất tính ra tương đối sát với con số ta tính bằng định lý Bayes ở trên.