215 lines
14 KiB
HTML
215 lines
14 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="vi">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>Tính cỡ mẫu cho Hồi quy Logistic</title>
|
||
|
||
<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.6;
|
||
color: #333;
|
||
max-width: 900px;
|
||
margin: auto;
|
||
padding: 20px;
|
||
}
|
||
.sample-size-guide h2 {
|
||
color: #0056b3;
|
||
border-bottom: 2px solid #f4f4f4;
|
||
padding-bottom: 5px;
|
||
}
|
||
.sample-size-guide h3 {
|
||
color: #1a73e8;
|
||
}
|
||
.sample-size-guide h4 {
|
||
color: #0056b3;
|
||
margin-top: 25px;
|
||
}
|
||
.sample-size-guide h5 {
|
||
color: #333;
|
||
font-style: italic;
|
||
margin-top: 15px;
|
||
}
|
||
.sample-size-guide code {
|
||
font-family: "Courier New", Courier, monospace;
|
||
background-color: #f1f1f1;
|
||
padding: 2px 4px;
|
||
border-radius: 4px;
|
||
}
|
||
.sample-size-guide ul {
|
||
margin-left: 20px;
|
||
}
|
||
.sample-size-guide li {
|
||
margin-bottom: 10px;
|
||
}
|
||
p[style*="text-align: center"] {
|
||
margin: 15px 0;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div class="sample-size-guide">
|
||
<h2>Giới thiệu Tính cỡ mẫu cho Hồi quy Logistic</h2>
|
||
<p>
|
||
Trong các nghiên cứu mà biến phụ thuộc là nhị phân (ví dụ: có bệnh/không bệnh, đạt/không đạt),
|
||
<strong>hồi quy logistic</strong> được sử dụng để mô hình hóa xác suất xảy ra của sự kiện.
|
||
Tính cỡ mẫu phù hợp cho hồi quy logistic giúp đảm bảo kết quả có <strong>độ tin cậy thống kê (power)</strong> và mô hình ước lượng ổn định.
|
||
</p>
|
||
<p>
|
||
Có hai phương pháp phổ biến (và một quy tắc kinh nghiệm):
|
||
</p>
|
||
<ul>
|
||
<li><strong>Phương pháp xấp xỉ Hsieh et al. (1989)</strong> (Dựa trên công thức)</li>
|
||
<li><strong>Phân tích công suất qua mô phỏng (Simulation-based Power Analysis)</strong></li>
|
||
<li><strong>Quy tắc kinh nghiệm (Rule of Thumb)</strong></li>
|
||
</ul>
|
||
|
||
<h3>1. Phương pháp Xấp xỉ Hsieh et al. (1989)</h3>
|
||
<p>
|
||
Phương pháp này cung cấp một công thức xấp xỉ cho cỡ mẫu cần thiết để phát hiện một hệ số hồi quy $\beta_1$ khác 0 trong mô hình hồi quy logistic đơn biến:
|
||
</p>
|
||
|
||
<p style="text-align: center; font-size: 1.1em;">
|
||
$$\text{logit}(p) = \beta_0 + \beta_1 X$$
|
||
</p>
|
||
|
||
<p>
|
||
Trong đó:
|
||
</p>
|
||
<ul>
|
||
<li>$p$: xác suất xảy ra sự kiện (outcome = 1)</li>
|
||
<li>$X$: biến độc lập (có thể là liên tục hoặc nhị phân)</li>
|
||
<li>$\beta_1$: hệ số hồi quy cần kiểm định</li>
|
||
</ul>
|
||
|
||
<h4>Công thức xấp xỉ của Hsieh</h4>
|
||
<p>Công thức sẽ khác nhau tùy thuộc vào biến độc lập $X$ là nhị phân hay liên tục.</p>
|
||
|
||
<h5>Trường hợp 1: Biến độc lập $X$ là nhị phân (Binary)</h5>
|
||
<p>
|
||
Áp dụng khi $X$ chỉ có hai giá trị (ví dụ: có/không, nhóm can thiệp/nhóm chứng).
|
||
</p>
|
||
|
||
<p style="text-align: center; font-size: 1.2em;">
|
||
$$N = \frac{(Z_{1-\alpha/2} + Z_{1-\beta})^2}
|
||
{p_0 (1 - p_0) (\ln(OR))^2 \, [P(X=1)(1 - P(X=1))]}$$
|
||
</p>
|
||
|
||
<p>Trong đó:</p>
|
||
<ul>
|
||
<li>$Z_{1-\alpha/2}$: giá trị Z cho mức ý nghĩa $\alpha$ (thường là 1.96 khi $\alpha = 0.05$)</li>
|
||
<li>$Z_{1-\beta}$: giá trị Z cho công suất mong muốn (ví dụ 0.84 khi power = 0.8)</li>
|
||
<li>$p_0$: xác suất xảy ra biến phụ thuộc khi $X=0$ (nhóm cơ sở/chứng)</li>
|
||
<li>$OR$: tỷ số odds (odds ratio) mong đợi giữa nhóm $X=1$ và $X=0$</li>
|
||
<li>$P(X=1)$: tỷ lệ mẫu có $X=1$ (ví dụ: 0.5 nếu chia đều 2 nhóm)</li>
|
||
</ul>
|
||
|
||
<h4>Ví dụ minh họa (X nhị phân)</h4>
|
||
<p>
|
||
Giả sử một nghiên cứu so sánh 2 nhóm ($P(X=1) = 0.5$):
|
||
</p>
|
||
<ul>
|
||
<li>$\alpha = 0.05$ (hai phía), power = 0.8</li>
|
||
<li>$p_0 = 0.2$ (tỷ lệ bệnh ở nhóm chứng)</li>
|
||
<li>$OR = 2.0$ (mong muốn phát hiện OR gấp 2 lần ở nhóm can thiệp)</li>
|
||
</ul>
|
||
<p>
|
||
Khi đó:
|
||
</p>
|
||
<p style="text-align: center; font-size: 1.1em;">
|
||
$$N = \frac{(1.96 + 0.84)^2}{0.2(1-0.2)(\ln 2)^2(0.5)(1-0.5)} \approx 197$$
|
||
</p>
|
||
<p>Vậy, cần khoảng 197 quan sát (khoảng 99 người ở mỗi nhóm).</p>
|
||
|
||
|
||
<h5>Trường hợp 2: Biến độc lập $X$ là liên tục (Continuous)</h5>
|
||
<p>
|
||
Áp dụng khi $X$ là một biến liên tục (ví dụ: tuổi, huyết áp, điểm số).
|
||
</p>
|
||
|
||
<p style="text-align: center; font-size: 1.2em;">
|
||
$$N = \frac{(Z_{1-\alpha/2} + Z_{1-\beta})^2}
|
||
{p_0 (1 - p_0) (\beta_1)^2 \, \sigma_X^2}$$
|
||
</p>
|
||
|
||
<p>Trong đó:</p>
|
||
<ul>
|
||
<li>$Z_{1-\alpha/2}$, $Z_{1-\beta}$, và $p_0$ được định nghĩa như trên.</li>
|
||
<li>$\beta_1$: là hệ số hồi quy (log-odds ratio) mong đợi cho <strong>mỗi đơn vị tăng</strong> của $X$.
|
||
(Lưu ý: $\beta_1 = \ln(OR)$ cho mỗi 1 đơn vị $X$ tăng lên).</li>
|
||
<li>$\sigma_X^2$: là phương sai (variance) của biến $X$.</li>
|
||
</ul>
|
||
|
||
|
||
<h3>2. Phân tích Công suất qua Mô phỏng</h3>
|
||
<p>
|
||
Khi mô hình phức tạp (nhiều biến, tương tác hoặc phân phối phi chuẩn),
|
||
phương pháp mô phỏng là lựa chọn đáng tin cậy nhất.
|
||
Ý tưởng là:
|
||
</p>
|
||
<ol>
|
||
<li>Giả định các giá trị thật của $\beta_0$, $\beta_1$, ... và phân phối của các biến $X$.</li>
|
||
<li>Tạo dữ liệu giả lập cho $N$ quan sát.</li>
|
||
<li>Chạy mô hình logistic và ghi nhận p-value của $\beta_1$.</li>
|
||
<li>Lặp lại bước 2-3 nhiều lần (ví dụ 1000 lần) và đếm tỷ lệ p-value < $\alpha$. Tỷ lệ này chính là công suất (power) thống kê.</li>
|
||
</ol>
|
||
<p>
|
||
Sau đó điều chỉnh $N$ cho đến khi công suất đạt mức mong muốn (ví dụ 0.8).
|
||
</p>
|
||
|
||
<h3>3. Quy tắc Kinh nghiệm (Rule of Thumb)</h3>
|
||
<p>
|
||
Nếu không có thông tin chi tiết về $OR$ hay $p_0$, có thể dùng quy tắc kinh nghiệm "10 sự kiện trên mỗi biến" (10 Events Per Variable - EPV):
|
||
</p>
|
||
<ul>
|
||
<li><strong>Peduzzi et al. (1996):</strong> Cần ít nhất 10 sự kiện (event) cho mỗi biến độc lập (mỗi tham số $\beta$) trong mô hình.</li>
|
||
</ul>
|
||
|
||
<p style="text-align: center; font-size: 1.1em;">
|
||
$$N \ge \frac{10 \times m}{p_{event}}$$
|
||
</p>
|
||
|
||
<p>
|
||
Trong đó:
|
||
</p>
|
||
<ul>
|
||
<li>$m$: số biến độc lập trong mô hình.</li>
|
||
<li>$p_{event}$: tỷ lệ xảy ra sự kiện <strong>hiếm gặp hơn</strong> trong mẫu (tức là $\min(p, 1-p)$).</li>
|
||
</ul>
|
||
<p>
|
||
<strong>Ví dụ:</strong> Nếu bạn có 5 biến độc lập ($m=5$) và tỷ lệ bệnh trong mẫu là 20% ($p=0.2$), thì $p_{event} = 0.2$.
|
||
Cỡ mẫu cần là: $N \ge \frac{10 \times 5}{0.2} = 250$.
|
||
</p>
|
||
|
||
<hr>
|
||
<p>
|
||
<strong>Kết luận:</strong> Khi có đủ thông tin (odds ratio, baseline risk, phương sai của X), nên dùng <strong>phương pháp Hsieh</strong> hoặc <strong>phân tích mô phỏng</strong>.
|
||
Nếu không, quy tắc “10 sự kiện mỗi biến” là lựa chọn an toàn cho thiết kế ban đầu.
|
||
</p>
|
||
</div>
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", () => {
|
||
if (window.MathJax && window.MathJax.typesetPromise) {
|
||
MathJax.typesetPromise();
|
||
}
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |