Kiểm định nhị thức, hay binomial test, là một trong những phép kiểm định xác suất cơ bản nhất trong thống kê. Được dùng khi kiểm tra trong một chuỗi thí nghiệm độc lập có hai khả năng kết quả. Hai kết quả này thường gọi là thành công và thất bại.
Mục lục bài viết
- 1 Kiểm định nhị thức là gì?
- 2 Khi nào dùng kiểm định nhị thức
- 3 Cấu trúc giả thuyết kiểm định
- 4 Phân phối nhị thức và công thức xác suất
- 5 Tính p-value trong kiểm định nhị thức
- 6 Ví dụ minh họa chi tiết
- 7 Thực hiện kiểm định nhị thức trong Python
- 8 Cách diễn giải kết quả kiểm định nhị thức
- 9 So sánh với kiểm định tỷ lệ (Z-test)
- 10 Tổng kết
Kiểm định nhị thức là gì?
Kiểm định nhị thức (Binomial Test) là một phép kiểm định xác suất dùng để xác định xem tỉ lệ thành công quan sát được có khác biệt đáng kể so với tỉ lệ giả định hay không.
Nói cách khác, nó giúp ta trả lời câu hỏi:
“Kết quả thu được có chỉ là do ngẫu nhiên hay thật sự khác biệt với tỉ lệ mong đợi?”
Ví dụ: Một công ty nói rằng 80% sản phẩm của họ đạt chuẩn. Bạn kiểm tra 10 sản phẩm, thấy chỉ 6 sản phẩm đạt. Câu hỏi đặt ra là: Liệu tỉ lệ thật có khác 80% không?
Đó chính là trường hợp dùng kiểm định nhị thức.
Khi nào dùng kiểm định nhị thức
Phép kiểm định này phù hợp khi:
- Mỗi phép thử chỉ có hai kết quả: thành công hoặc thất bại.
- Các phép thử là độc lập.
- Xác suất thành công p là cố định trong mọi lần thử.
- Ta biết số lần thử [math]n[/math] và số lần thành công [math]X[/math].
Cấu trúc giả thuyết kiểm định
Trong kiểm định nhị thức, ta đặt ra hai giả thuyết:
Giả thuyết không ([math]H_0[/math]): [math]p = p_0[/math] (Tỉ lệ thành công thật sự bằng tỉ lệ giả định).
Giả thuyết đối ([math]H_1[/math]):
- [math]p \neq p_0[/math]: kiểm định hai phía
- [math]p > p_0[/math]: kiểm định một phía phải
- [math]p < p_0[/math]: kiểm định một phía trái
Phân phối nhị thức và công thức xác suất
Biến ngẫu nhiên [math]X[/math] là số lần thành công trong [math]n[/math] phép thử. Có xác suất thành công trong mỗi lần thử là [math]p[/math], tuân theo phân phối nhị thức:
[math]X \sim \text{Binomial}(n, p)[/math]
Công thức xác suất cho mỗi giá trị của [math]X[/math] là:
[math]P(X = x) = \binom{n}{x} p^x (1 – p)^{n – x}[/math]
Trong đó:
- [math]\binom{n}{x} = \frac{n!}{x!(n – x)!}[/math]: số cách chọn [math]x[/math] thành công trong [math]n[/math] lần thử
- [math]p[/math]: xác suất thành công trong mỗi lần thử
- [math]1-p[/math]: xác suất thất bại
Tính p-value trong kiểm định nhị thức
p-value là xác suất để quan sát được kết quả “cực đoan” bằng hoặc hơn giá trị thực tế nếu giả thuyết [math]H_0[/math] đúng.
Tùy loại kiểm định mà cách tính khác nhau:
Kiểm định hai phía
[math]p\text{-value} = 2 \times \min[P(X \leq x), P(X \geq x)][/math]
Kiểm định một phía phải ([math]H_1[/math]: [math]p > p_0[/math])
[math]p\text{-value} = P(X \geq x)[/math]
Kiểm định một phía trái ([math]H_1[/math]: [math]p < p_0[/math])
[math]p\text{-value} = P(X \leq x)[/math]
Sau khi tính p-value, ta so sánh với mức ý nghĩa [math]\alpha[/math] (thường là 0.05):
- Nếu [math]p\text{-value} < \alpha[/math] → bác bỏ [math]H_0[/math]
- Nếu [math]p\text{-value} \geq \alpha[/math] → chưa đủ bằng chứng bác bỏ [math]H_0[/math]
Ví dụ minh họa chi tiết
Một đồng xu được cho là công bằng, tức [math]p_0 = 0.5[/math]. Bạn tung đồng xu 10 lần, kết quả ra 8 mặt ngửa (thành công). Liệu đồng xu này có thật sự công bằng không?
Bước 1: Xác định giả thuyết
- [math]H_0[/math]: [math]p=0.5[/math]
- [math]H_1[/math]: [math]p \neq 0.5[/math] (kiểm định hai phía)
- [math]\alpha = 0.05[/math]
Bước 2: Tính xác suất quan sát được 8 mặt ngửa
Sử dụng công thức phân phối nhị thức:
[math]P(X = 8) = \binom{10}{8} (0.5)^8 (0.5)^2 = 45 \times 0.5^{10} = 0.0439[/math]
Bước 3: Tính tổng xác suất “cực đoan”
Vì đây là kiểm định hai phía, ta cần cộng xác suất ở hai đầu ([math]\leq 2[/math] hoặc [math]\geq 8[/math]):
- [math]p\text{-value} = 2 \times [P(X \geq 8)][/math]
- [math]P(X \geq 8) = P(X = 8) + P(X = 9) + P(X = 10)= 0.0439 + 0.0098 + 0.0010 = 0.0547[/math]
- [math]p\text{-value} = 2 \times 0.0547 = 0.1094[/math]
Bước 4: So sánh với [math]\alpha[/math]
Vì 0.1094 > 0.05 → không bác bỏ [math]H_0[/math] ⟹ Không đủ bằng chứng cho rằng đồng xu bị lệch.
Thực hiện kiểm định nhị thức trong Python
Bạn có thể dùng scipy.stats.binomtest để tính nhanh:
from scipy.stats import binomtest
# Số lần thành công, số lần thử, và p giả định
x = 8
n = 10
p0 = 0.5
# Kiểm định hai phía
result = binomtest(x, n, p=p0, alternative='two-sided')
print("p-value:", result.pvalue)
Kết quả sẽ được
p-value: 0.109375
Cách diễn giải kết quả kiểm định nhị thức
- Nếu [math]p\text{-value} < 0.05[/math]: Có sự khác biệt đáng kể về tỉ lệ thành công → bác bỏ [math]H_0[/math].
- Nếu [math]p\text{-value} \geq 0.05[/math]: Không có bằng chứng đủ mạnh để bác bỏ [math]H_0[/math] → dữ liệu phù hợp với tỉ lệ giả định.
💡 Lưu ý: “Không bác bỏ [math]H_0[/math]” không có nghĩa là [math]H_0[/math] đúng, chỉ là chưa thấy bằng chứng sai khác đủ mạnh.
So sánh với kiểm định tỷ lệ (Z-test)
| Đặc điểm | Kiểm định nhị thức | Kiểm định Z cho tỷ lệ |
|---|---|---|
| Mẫu nhỏ | ✅ Phù hợp | ❌ Không chính xác |
| Mẫu lớn | ❌ Tính chậm | ✅ Xấp xỉ chuẩn |
| Loại dữ liệu | Nhị phân | Nhị phân |
| Công thức | Dựa vào phân phối nhị thức | Dựa vào phân phối chuẩn |
| Ví dụ | 10 lần tung đồng xu | 1000 cuộc khảo sát |
>>>> Bằng chứng khoa học vì sao phụ nữ sống thọ hơn nam giới
Tổng kết
Kiểm định nhị thức là công cụ cơ bản nhưng cực kỳ mạnh mẽ trong thống kê, giúp đánh giá tính xác thực của tỉ lệ quan sát so với lý thuyết. Dù đơn giản, nó được ứng dụng rộng rãi trong:
- Kiểm định chất lượng sản phẩm
- Nghiên cứu y học (tỉ lệ bệnh, hiệu quả thuốc)
- Thí nghiệm sinh học (tỉ lệ sống sót, di truyền)
- Tâm lý học, khảo sát xã hội, và nghiên cứu thị trường