Files
Documentation/sample_size_site_full/epi_diagnostic_guide.html
2025-10-18 11:55:59 +07:00

150 lines
13 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<title>Tính cỡ mẫu cho Xét nghiệm Chẩn đoán (Diagnostic Test)</title>
<!-- MathJax config -->
<script>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$', '$$'], ['\\[', '\\]']]
},
svg: { fontCache: 'global' }
};
</script>
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>
<style>
.sample-size-guide {
font-family: Arial, sans-serif;
line-height: 1.65;
color: #222;
max-width: 980px;
margin: 24px auto;
padding: 20px;
}
.sample-size-guide h2 { color: #0056b3; border-bottom: 2px solid #eee; padding-bottom: 6px; }
.sample-size-guide h3 { color: #1a73e8; margin-top: 18px; }
.sample-size-guide code { font-family: "Courier New", monospace; background:#f7f7f7; padding:2px 6px; border-radius:4px; }
.sample-size-guide ul { margin-left: 20px; }
.sample-size-guide li { margin-bottom: 8px; }
.note { background:#f1f8ff; border-left:4px solid #1a73e8; padding:10px 12px; margin:12px 0; }
p[style*="text-align: center"] { margin:14px 0; }
</style>
</head>
<body>
<div class="sample-size-guide">
<h2>Tính cỡ mẫu cho Xét nghiệm Chẩn đoán — Hướng tới Y tế Công cộng</h2>
<p>
Mục tiêu của việc tính cỡ mẫu cho một xét nghiệm chẩn đoán là ước lượng hoặc kiểm chứng
<strong>độ nhạy (sensitivity)</strong>, <strong>độ đặc hiệu (specificity)</strong>, và các chỉ số liên quan
(PPV, NPV) với độ chính xác/công suất mong muốn. Trong bối cảnh y tế công cộng, điều này rất quan trọng
để đảm bảo xét nghiệm đủ tin cậy trước khi triển khai quy mô lớn.
</p>
<h3>1. Thuật ngữ nhanh</h3>
<ul>
<li><strong>Sensitivity (Se)</strong>: xác suất xét nghiệm dương khi bệnh thật sự có mặt.</li>
<li><strong>Specificity (Sp)</strong>: xác suất xét nghiệm âm khi bệnh thật sự không có.</li>
<li><strong>Prevalence (Prev)</strong>: tỉ lệ bệnh trong dân số mục tiêu.</li>
<li><strong>Positive Predictive Value (PPV)</strong><strong>NPV</strong>: phụ thuộc vào prevalence.</li>
</ul>
<h3>2. Mục tiêu tính cỡ mẫu phổ biến</h3>
<ol>
<li>Ước lượng một chỉ số (Se hoặc Sp) với độ chính xác ±d (khoảng tin cậy mong muốn).</li>
<li>So sánh một chỉ số với một giá trị mục tiêu (ví dụ Se ≥ 0.90).</li>
<li>So sánh hai xét nghiệm (Se1 vs Se2 hoặc Sp1 vs Sp2).</li>
</ol>
<h3>3. Công thức ước lượng Se hoặc Sp với độ chính xác mong muốn (Buderer, 1996)</h3>
<p>Đầu tiên ước tính <strong>số người có sự kiện (bệnh)</strong> cần để ước lượng Sensitivity với khoảng sai số ±d:</p>
<p style="text-align:center; font-size:1.05em;">
$$n_{disease} = \frac{Z_{1-\alpha/2}^2 \, Se(1-Se)}{d^2}$$
</p>
<p>Và tổng cỡ mẫu cần (ước tính) là:</p>
<p style="text-align:center; font-size:1.05em;">
$$N \approx \frac{n_{disease}}{\text{Prev}}$$
</p>
<p>Tương tự, để ước lượng <strong>Specificity</strong>, ta cần số người <em>không bệnh</em>:</p>
<p style="text-align:center; font-size:1.05em;">
$$n_{non-disease} = \frac{Z_{1-\alpha/2}^2 \, Sp(1-Sp)}{d^2}, \qquad
N \approx \frac{n_{non-disease}}{1-\text{Prev}}$$
</p>
<div class="note">
<strong>Ghi chú:</strong> Công thức trên tính trực tiếp số cá thể có (hoặc không có) bệnh cần kiểm tra.
Nếu prevalence rất nhỏ (ví dụ < 5%), tổng cỡ mẫu thể trở nên rất lớn.
</div>
<h3>4. Ví dụ (ước lượng Sensitivity với d = 0.05)</h3>
<p>Giả sử bạn muốn ước lượng độ nhạy $Se=0.85$ với sai số chấp nhận được $d=0.05$, $\alpha=0.05$ (Z=1.96), và prevalence = 10%:</p>
<p style="text-align:center;">
$$n_{disease} = \frac{1.96^2 \times 0.85 \times (1-0.85)}{0.05^2} \approx 196$$
<br>
$$N \approx \frac{196}{0.10} \approx 1959$$
</p>
<p>Vậy bạn cần khoảng <strong>196 bệnh nhân có biến cố</strong> quan sát được, tức khoảng <strong>1,960 người tổng cộng</strong> nếu prevalence là 10%.</p>
<h3>5. Kiểm định độ nhạy so với một mức mục tiêu (một mẫu)</h3>
<p>Nếu muốn kiểm tra giả thuyết:</p>
<p style="text-align:center;">$H_0: Se \le Se_0 \quad$ vs $\quad H_1: Se = Se_1 (>Se_0)$</p>
<p>một xấp xỉ thường dùng (khi số mẫu lớn) cho số cá thể có bệnh là:</p>
<p style="text-align:center;">
$$n_{disease} \approx
\frac{\big(Z_{1-\alpha}\sqrt{Se_0(1-Se_0)} + Z_{1-\beta}\sqrt{Se_1(1-Se_1)}\big)^2}
{(Se_1 - Se_0)^2}$$
</p>
<p>Tiếp tục chia cho prevalence để ước tính tổng $N$.</p>
<h3>6. So sánh hai tỉ lệ (Se1 vs Se2) — mẫu cho hai nhóm độc lập</h3>
<p>Để so sánh hai độ nhạy (hoặc hai độ đặc hiệu) dùng công thức ước lượng cho hai tỉ lệ:</p>
<p style="text-align:center;">
$$n_{per\ group} \approx
\frac{\Big(Z_{1-\alpha/2}\sqrt{2\bar p(1-\bar p)} + Z_{1-\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)}\Big)^2}
{(p_1-p_2)^2}$$
</p>
<p>với $\bar p=(p_1+p_2)/2$. Ở đây $n_{per\ group}$ là số <em>bệnh</em> cần trong mỗi nhóm nếu so sánh trên mẫu bệnh, rồi chia cho prevalence nhóm tương ứng để ra tổng N.</p>
<h3>7. Vấn đề thực tiễn và khuyến nghị cho Y tế công cộng</h3>
<ul>
<li><strong>Chuẩn vàng (gold standard):</strong> cỡ mẫu phải đủ lớn để so sánh kết quả xét nghiệm với gold standard đáng tin cậy — sai lệch gold standard làm lệch ước lượng Se/Sp.</li>
<li><strong>Phân tầng (stratification):</strong> nếu prevalence khác nhau giữa vùng/nhóm, hãy stratify và tính cỡ mẫu cho từng stratum hoặc lấy mẫu theo tầng.</li>
<li><strong>Thiếu (missing) và rút lui:</strong> cộng thêm an toàn ~1020% nếu có khả năng mất follow-up hoặc kết quả không hợp lệ.</li>
<li><strong>Pre-study pilot:</strong> thực hiện mẫu thăm dò nhỏ để ước lượng prelim prevalence và Se/Sp dự kiến — giảm sai sót khi thiết kế chính.</li>
<li><strong>Khi prevalence rất thấp:</strong> cân nhắc thiết kế tiếp cận theo nhóm (enrichment) hoặc tuyển trực tiếp số bệnh nhân (case-enriched study) thay vì lấy mẫu ngẫu nhiên trong cộng đồng.</li>
</ul>
<h3>8. Công cụ & tham khảo (tóm tắt)</h3>
<ul>
<li>R packages: <code>epiR</code> (ước lượng khoảng CI & cỡ mẫu), <code>powerMediation</code>, <code>pROC</code> (ROC/AUC related).</li>
<li>Tài liệu tham khảo kinh điển: Buderer (1996) — sample size for estimating sensitivity and specificity; sách và bài hướng dẫn về diagnostic studies.</li>
</ul>
<hr>
</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
if (window.MathJax && window.MathJax.typesetPromise) {
MathJax.typesetPromise();
}
});
</script>
</body>
</html>