Định lý Bayes và suy luận ngược
Bài trước bạn đã dựng cây quyết định để đi xuôi theo chiều nguyên nhân: từ "có bệnh" tới "test dương tính". Ngoài đời bạn gần như không bao giờ có chiều đó. Bạn chỉ thấy kết quả dương tính và phải đoán ngược lại xem người này có bệnh hay không. Định lý Bayes chính là công cụ cho phép đảo chiều đó, và cũng là nơi người đọc số sai nhiều nhất.
Sau bài này bạn sẽ:
- Viết được công thức Bayes và gọi đúng tên bốn thành phần: prior, likelihood, evidence, posterior.
- Tính posterior cho bài toán sàng lọc bằng số nguyên cụ thể thay vì công thức trừu tượng.
- Giải thích nghịch lý false positive: test "chính xác 99%" vẫn cho ra phần lớn dương tính là sai.
- Cập nhật niềm tin qua nhiều lần test liên tiếp.
- Nhận ra base rate neglect khi đọc báo cáo hay dashboard.
Bốn thành phần của một lần cập nhật niềm tin
$$ P(A \mid B) = \frac{P(B \mid A),P(A)}{P(B)} $$
Đọc theo ngôn ngữ phân tích: posterior = likelihood × prior / evidence.
| Thành phần | Ký hiệu | Câu hỏi đời thường |
|---|---|---|
| Prior | $P(A)$ | Trước khi xem kết quả, tôi tin giả thuyết này xảy ra bao nhiêu phần trăm? |
| Likelihood | $P(B \mid A)$ | Nếu giả thuyết đúng thì thấy bằng chứng này dễ tới mức nào? |
| Evidence | $P(B)$ | Bằng chứng này xuất hiện chung ở mọi trường hợp là bao nhiêu? |
| Posterior | $P(A \mid B)$ | Xem bằng chứng xong, giờ tôi nên tin bao nhiêu? |
Mẫu số chính là chỗ người mới hay quên. Bằng chứng có thể xuất hiện cả khi giả thuyết sai, nên phải cộng đủ:
$$ P(B) = P(B \mid A),P(A) + P(B \mid \lnot A),P(\lnot A) $$
Trong một bài toán sàng lọc, _____ là tỷ lệ người thật sự mắc bệnh trong quần thể trước khi có bất kỳ kết quả test nào.
Ví dụ 1: test 99% mà dương tính vẫn phần lớn là sai
Một bệnh có prevalence 1%. Test có sensitivity 99% (người bệnh cho dương tính 99%) và specificity 95% (người khỏe cho âm tính 95%, tức 5% dương tính giả). Một người test dương tính. Xác suất người đó thật sự mắc bệnh?
Thay vì thay số vào công thức, hãy tưởng tượng 10.000 người.
| Có bệnh | Không bệnh | Tổng | |
|---|---|---|---|
| Dương tính | 99 | 495 | 594 |
| Âm tính | 1 | 9.405 | 9.406 |
| Tổng | 100 | 9.900 | 10.000 |
Có 594 người dương tính, nhưng chỉ 99 người trong đó thật sự có bệnh:
$$ P(\text{bệnh} \mid +) = \frac{99}{594} \approx 16{,}7% $$
Nghĩa là hơn 83% ca dương tính là false positive. Con số này nghe vô lý so với "test chính xác 99%", nhưng nó không hề mâu thuẫn: sensitivity 99% chỉ nói về chiều $P(+ \mid \text{bệnh})$, hoàn toàn không nói gì về $P(\text{bệnh} \mid +)$.
Cái làm hỏng posterior ở đây là mẫu số. Người không bệnh đông gấp 99 lần người có bệnh, nên chỉ cần 5% trong số họ dương tính giả là đã đủ áp đảo 99 ca dương tính thật. Xác suất dương tính thật sự mắc bệnh chỉ khoảng _____.
Ví dụ 2: cùng một test, prior khác, kết luận khác
Giữ nguyên test đó nhưng đổi bối cảnh: phòng khám chuyên khoa, nơi người tới khám có prevalence 10%.
Với 1.000 người: 100 người bệnh, 99 dương tính thật; 900 người khỏe, 45 dương tính giả. Tổng 144 dương tính.
$$ P(\text{bệnh} \mid +) = \frac{99}{144} \approx 68{,}8% $$
Cùng sensitivity, cùng specificity, cùng kết quả dương tính, nhưng posterior nhảy từ 17% lên 69%. Prior khác nhau thì posterior khác nhau, dù test không đổi một chút nào. Đây là lý do đầu tiên tôi hỏi "dữ liệu này lấy từ đâu" trước khi tin bất kỳ con số precision nào.
Ví dụ 3: test hai lần và cập nhật liên tiếp
Người ở ví dụ 1 được test lại bằng đúng test đó. Prior cho lần hai không còn là 1% nữa, mà là _____, tức khoảng 16,7%.
$$ P(\text{bệnh} \mid +) = \frac{0{,}99 \times 0{,}167}{0{,}99 \times 0{,}167 + 0{,}05 \times 0{,}833} \approx 79{,}9% $$
Hai lần dương tính mới đưa posterior lên khoảng 80%. Đó là toàn bộ logic của "xét nghiệm lại": bằng chứng độc lập cộng dồn, nhưng phải cộng dồn đúng cách.
Dạng odds: cách tính nhanh khi nhẩm
Với hai giả thuyết loại trừ nhau, Bayes viết lại rất gọn:
posterior odds = prior odds × likelihood ratio
Trong đó likelihood ratio dương tính $\text{LR}^+ = \dfrac{\text{sensitivity}}{1 - \text{specificity}}$.
Quay lại ví dụ 1: prior odds $= 0{,}01/0{,}99 = 1/99 \approx 0{,}0101$. $\text{LR}^+ = 0{,}99/0{,}05 = 19{,}8$. Posterior odds $\approx 0{,}2$, đổi ra xác suất $= 0{,}2/1{,}2 \approx 16{,}7%$. Khớp với cách đếm bằng tay. Với dạng này, đại lượng được nhân vào là _____.
Note: Bayes không tạo ra thông tin. Nó chỉ sắp xếp lại thông tin bạn đã có. Nếu prior sai hoặc vô căn cứ, posterior sẽ sai một cách rất tự tin.
Những cái bẫy khi đọc kết quả ngược chiều
- Viết tỷ lệ nền ra giấy trước khi tính. Nếu bạn không nêu được prevalence, bạn chưa có bài toán, chỉ có một con số đẹp.
- Đừng nhầm hai chiều. $P(+ \mid \text{bệnh})$ và $P(\text{bệnh} \mid +)$ có thể lệch nhau hàng chục lần khi bệnh hiếm. Câu hỏi đúng là: "xác suất này có điều kiện theo chiều nào?"
- Specificity thấp là kẻ giết posterior. Khi prevalence thấp, dương tính giả sinh ra từ đám đông khổng lồ, nên nó luôn thắng. Một điểm specificity giảm có thể đắt hơn nhiều điểm sensitivity tăng.
- Cộng xác suất là sai, nhân odds là đúng. Với nhiều bằng chứng, hãy nhân likelihood ratio rồi đổi về xác suất ở bước cuối.
- Đừng làm tròn giữa chừng. Làm tròn prior từ 1% lên 2% có thể đổi posterior từ 17% sang 29%.
- Kiểm tra tính độc lập của bằng chứng. Hai test cùng dùng một marker sinh học không độc lập; nhân likelihood ratio hai lần sẽ thổi phồng posterior.
Ba câu tự kiểm tra trước checkpoint
- Posterior của một lần cập nhật luôn nằm giữa prior và 1, và bị kéo về phía giả thuyết mà bằng chứng ủng hộ mạnh hơn.
- Khi prevalence rất thấp, kết luận "dương tính" chỉ đáng tin nếu specificity rất cao hoặc bạn có thêm bằng chứng độc lập.
- Bayes là quy trình, không phải một con số cố định: mỗi bằng chứng mới biến posterior cũ thành prior mới.
Bài tiếp theo là checkpoint của module. Ở đó bạn sẽ gặp lại bài toán sàng lọc dưới dạng cây quyết định và các bài tập tính posterior, nên hãy nắm chắc cặp prior và likelihood trước khi bước vào.
Front: Định lý Bayes cho phép làm gì? Back: Đảo chiều điều kiện: từ P(bằng chứng | giả thuyết) suy ra P(giả thuyết | bằng chứng).
Front: Prior là gì? Back: Xác suất của giả thuyết trước khi quan sát bằng chứng, thường là tỷ lệ nền của quần thể.
Front: Likelihood là gì? Back: P(bằng chứng | giả thuyết): khả năng thấy bằng chứng này nếu giả thuyết đúng.
Front: Posterior là gì? Back: P(giả thuyết | bằng chứng): niềm tin đã cập nhật sau khi thấy bằng chứng.
Front: Evidence P(B) được tính thế nào khi chỉ có hai giả thuyết loại trừ nhau? Back: P(B|A)P(A) + P(B|không A)P(không A), tức cộng đủ mọi nhánh sinh ra bằng chứng.
Front: Sensitivity 99%, specificity 95%, prevalence 1%. Posterior của một ca dương tính? Back: Khoảng 16,7%, vì 495 dương tính giả áp đảo 99 dương tính thật.
Front: Vì sao test 'chính xác 99%' vẫn cho đa số dương tính là sai? Back: Vì người không bệnh đông hơn rất nhiều, nên 5% dương tính giả trong đám đông lớn vượt số dương tính thật.
Front: Cùng test đó nhưng prevalence 10% thì posterior là bao nhiêu? Back: Khoảng 68,8%, cho thấy prior ảnh hưởng quyết định tới posterior.
Front: Khi test lần thứ hai, prior là gì? Back: Chính là posterior của lần test trước, không phải quay lại tỷ lệ nền ban đầu.
Front: Dạng odds của định lý Bayes? Back: posterior odds = prior odds × likelihood ratio.
Front: Công thức của likelihood ratio dương tính? Back: LR+ = sensitivity / (1 - specificity).
Front: Base rate neglect là gì? Back: Bỏ qua tỷ lệ nền nên đánh giá posterior quá cao, điển hình là tin tuyệt đối vào một kết quả dương tính.
Front: Vì sao không được nhân likelihood ratio khi hai test phụ thuộc nhau? Back: Bằng chứng không độc lập thì thông tin cộng thêm ít hơn, nhân hai lần sẽ thổi phồng posterior.