การเลือก Control ใน Stata: คำถามวิจัย วิธีสุ่ม Control และโมเดล เป็นสามเรื่องที่ต่างกัน

On this page
Read the English version
บทคัดย่อ
คำถามวิจัย วิธีสุ่ม Control และโมเดลทางสถิติเป็นสามเรื่องที่ต่างกัน และความสับสนเรื่องค่าประมาณจาก Case-Control เกิดจากการเอาสามเรื่องนี้มาปนกัน Cohort สมมติของทารกแรกเกิด 200 คนที่ติดตามถึงวันที่ 28 แสดงให้เห็นเรื่องนี้: ในกลุ่มที่ได้รับ ANC ไม่เพียงพอ 20 จาก 100 คนเกิดภาวะแทรกซ้อน และในกลุ่มที่ได้รับ ANC เพียงพอ 10 จาก 100 คน ตลอด 2,440 และ 2,660 Person-days ข้อมูลชุดเดียวกันให้ Risk Ratio 2.00, Odds Ratio 2.25 และ Incidence Rate Ratio 2.18 และไม่มีค่าใดผิด การศึกษาแบบ Case-Control รับมาตรวัดหนึ่งในสามค่านี้มาจาก Control ของมัน: Non-cases ตอนจบให้ Odds Ratio ทุกคนตอน Baseline ให้ Risk Ratio และคนที่ยัง At Risk ณ Event Time แต่ละครั้งให้ Rate Ratio เพราะ Hazard คือ Instantaneous Incidence Rate การวิเคราะห์ Risk Sets เหล่านั้นด้วย Conditional Logistic Regression จึงประมาณ Hazard Ratio ของ Cox บทความนี้ไล่ตั้งแต่มาตรวัด วิธีสุ่ม Control และคำสั่ง Stata จนถึงสามคำถามที่ควรถามก่อนเลือกโมเดล
Cohort ทารกแรกเกิดชุดเดียว วิเคราะห์ได้สี่แบบ
ลองนึกภาพการติดตามทารกแรกเกิด 20,000 คนตั้งแต่แรกเกิดจนอายุ 28 วัน เราอยากรู้ว่า Inadequate Antenatal Care (ANC) คือการฝากครรภ์ที่ไม่เพียงพอ สัมพันธ์กับการเกิดภาวะแทรกซ้อนในทารกแรกเกิด (Neonatal Complications) ที่มากขึ้นหรือไม่
เราวิเคราะห์ประชากรชุดเดียวกันนี้ได้ด้วย Logistic Regression, Poisson Regression (โมเดลสำหรับจำนวน Event เทียบกับเวลาที่อยู่ในความเสี่ยง) หรือ Cox Regression (โมเดลมาตรฐานสำหรับเวลาจนเกิด Event) หรือจะเลือก Case และ Control กลุ่มเล็กกว่าออกมา แล้วใช้ Conditional Logistic Regression ซึ่งเปรียบเทียบ Case แต่ละรายกับ Control ใน Matched Set ของตัวเองเท่านั้น
ตอนแรกเรื่องนี้ดูน่าสับสน ทำไมโมเดลต่างกันจึงให้มาตรวัดต่างกัน? ทำไมการศึกษาแบบ Case-Control บางครั้งจึงประมาณ Risk Ratio หรือ Incidence Rate Ratio (IRR คืออัตราส่วนของจำนวน Event ต่อหน่วยเวลาที่อยู่ในความเสี่ยง) ทั้งที่ Logistic Regression รายงาน Odds Ratio?
คำตอบคือ คำถามวิจัย วิธีสุ่ม Control และโมเดลทางสถิติ เป็นสามเรื่องที่ต่างกัน เมื่อแยกสามเรื่องนี้ออกจากกันได้ ทั้งหัวข้อจะเข้าใจง่ายขึ้นมาก และบทความที่เหลือก็เดินตามลำดับนี้ คือเริ่มจากมาตรวัด ต่อด้วยการสุ่ม Control แล้วจึงถึงโมเดลและคำสั่ง Stata
1. เริ่มจากคำถามง่าย ๆ หนึ่งคำถาม
สมมติเราติดตามทารกแรกเกิด 200 คนนานสูงสุด 28 วัน ครึ่งหนึ่งได้รับ ANC ไม่เพียงพอ (Inadequate ANC) อีกครึ่งหนึ่งได้รับ ANC เพียงพอ (Adequate ANC) ตัวเลขทั้งหมดเป็นตัวเลขสมมติ
เพื่อให้คิดแบบเดียวกันทุกคน ทารกที่ไม่เกิด Event ให้เวลา 28 วัน ส่วนทารกที่เกิด Event ให้เวลาจนถึง Event ครั้งแรก เวลาเฉลี่ยจนเกิด Event คือ 10 วันในกลุ่ม Inadequate ANC และ 14 วันในกลุ่ม Adequate ANC เวลาที่อยู่ในความเสี่ยงจึงรวมได้ 80 × 28 + 20 × 10 = 2,240 + 200 = 2,440 Person-days ในกลุ่ม Inadequate ANC และ 90 × 28 + 10 × 14 = 2,520 + 140 = 2,660 Person-days ในกลุ่ม Adequate ANC ผลรวมของเวลาที่ทารกแต่ละคนอยู่ในความเสี่ยงนี้เรียกว่า Person-time
จากข้อมูลชุดเดียวนี้ เราคำนวณมาตรวัดได้สามแบบ
| ข้อมูล | Inadequate ANC | Adequate ANC |
|---|---|---|
| จำนวนทารก | 100 | 100 |
| ทารกที่เกิด Event | 20 | 10 |
| ทารกที่ไม่เกิด Event | 80 | 90 |
| Person-days ที่อยู่ในความเสี่ยงรวม | 2,440 | 2,660 |
มาตรวัดสามแบบจากทารก 200 คนชุดเดียวกัน
-
Risk Ratio (RR)
\[ \text{RR} = \frac{20/100}{10/100} = 2.00 \]
Risk ถามว่ามีกี่คนที่เกิด Outcome ในช่วงที่สังเกต Risk ของ Inadequate ANC = 20/100 = 20% และ Risk ของ Adequate ANC = 10/100 = 10% ทารกที่ได้รับ ANC ไม่เพียงพอมี Cumulative Risk ของ Outcome ใน 28 วันเป็นสองเท่า ตัวหารคือจำนวนทารกตอนเริ่มติดตาม
-
Odds Ratio (OR)
\[ \text{OR} = \frac{20/80}{10/90} = 2.25 \]
Odds เปรียบเทียบจำนวนคนที่เกิด Event กับจำนวนคนที่ไม่เกิด: 20/80 = 0.25 ในกลุ่ม Inadequate ANC และ 10/90 = 0.111 ในกลุ่ม Adequate ANC Odds ของ Outcome ใน 28 วันของกลุ่ม Inadequate ANC สูงเป็น 2.25 เท่า Odds ไม่ใช่ Probability และนี่คือเหตุผลที่ OR กับ RR ต่างกัน: Risk 0.2 คือ Odds 0.2/(1 − 0.2) = 0.25 และ Risk 0.5 คือ Odds 1
-
Incidence Rate Ratio (IRR)
\[ \text{IRR} = \frac{20/2440}{10/2660} = 2.18 \]
Incidence Rate วัดว่า Event เกิดถี่แค่ไหนเมื่อเทียบกับเวลารวมที่คนยังอยู่ในความเสี่ยง Rate ของ Inadequate ANC = 20/2,440 = 0.00820 Events ต่อ Person-day และ Rate ของ Adequate ANC = 10/2,660 = 0.00376 Events ต่อ Person-day Incidence Rate ของ Neonatal Event ครั้งแรกในกลุ่ม Inadequate ANC สูงกว่าประมาณ 2.18 เท่า
ผลลัพธ์: ทารก 200 คนชุดเดียวกันให้ RR = 2.00, OR = 2.25 และ IRR = 2.18
ไม่มีการคำนวณใดในนี้ที่ผิดโดยอัตโนมัติ แต่ละค่าวัดคนละแง่มุมของ Outcome
2. Incidence Rate ต่างจาก Risk ตรงไหน?
ลองดูทารกสองคน ทารก A เกิดภาวะแทรกซ้อนในวันที่ 5 ทารก B ไม่เกิดภาวะแทรกซ้อนเลยตลอด 28 วัน ทารก A ให้เวลาห้า Person-days ก่อนเกิด Event ส่วนทารก B ให้ 28 Person-days
ในการวิเคราะห์ Risk ใน 28 วัน ทารก A เกิด Event และทารก B ไม่เกิด ในการวิเคราะห์ Incidence Rate เราพิจารณาเพิ่มด้วยว่าทารก A อยู่ในความเสี่ยงเพียงห้าวัน ขณะที่ทารก B อยู่ 28 วัน นี่คือความต่าง
Incidence Rate มีประโยชน์เป็นพิเศษเมื่อระยะเวลา Follow-up ของแต่ละคนไม่เท่ากัน แต่ Incidence Rate ไม่ใช่ Probability Rate 0.02 Events ต่อ Person-day ไม่ได้แปลว่าทุกคนมี Cumulative Probability ของการเกิด Event 2% ตลอดการศึกษา
3. Hazard Ratio คืออะไร?
โดยทั่วไป Incidence Rate คือจำนวน Event หารด้วย Person-time:
$$\mathrm{IR} = \frac{\text{events}}{\text{person-time}}$$ถ้าคำนวณตลอด 28 วัน เราจะได้ Average Incidence Rate แต่ถ้าค่อย ๆ ย่อช่วงเวลาให้เล็กลงเรื่อย ๆ จนเข้าใกล้เวลา $t$ เพียงจุดเดียว อัตราการเกิด Event ในคนที่ยัง At Risk ณ เวลานั้นเรียกว่า Hazard Hazard จึงเป็น Instantaneous Incidence Rate [1]:
$$h(t) = \text{instantaneous incidence rate}$$ลองถามว่าเกิดอะไรขึ้นในวันที่ 10 หลังคลอด แทนที่จะดู Follow-up ทั้ง 28 วัน เราสนใจเฉพาะทารกที่ยัง At Risk อยู่ก่อนวันที่ 10 และเปรียบเทียบว่า Event เกิดเร็วแค่ไหนในกลุ่ม Inadequate ANC และ Adequate ANC ณ ขณะนั้น Hazard Ratio คือ
$$\mathrm{HR}(t) = \frac{\text{hazard in inadequate ANC at time } t}{\text{hazard in adequate ANC at time } t} = \frac{h_1(t)}{h_0(t)} = \text{instantaneous IRR}(t)$$กล่าวอีกอย่างคือ Hazard Ratio เป็น Rate Ratio ชนิดหนึ่ง ที่เปรียบเทียบอัตราการเกิด Event ณ เวลาเดียวกัน
จากตรงนี้มีความต่างสำคัญตามมา IRR แบบธรรมดาที่คำนวณจาก Event ทั้งหมดหารด้วย Person-time ทั้งหมด สรุปอัตราตลอดช่วง Follow-up ส่วน Hazard Ratio เปรียบเทียบอัตรา ณ ขณะเดียวกัน สองค่านี้ต่างกันได้ เพราะ Hazard อาจเปลี่ยนตามเวลา และแต่ละกลุ่มอาจให้ Person-time ในแต่ละช่วงของ Follow-up ไม่เท่ากัน
ถ้าข้อสมมติ Proportional Hazards เป็นจริง Hazard Ratio จะคงที่ตลอดเวลา เช่น ถ้า $h_1(t) = 2\,h_0(t)$ แล้ว $\mathrm{HR}(t) = 2$ ทุกเวลาของ Follow-up โดยมีเงื่อนไขตาม Covariates ในโมเดล คือ Hazard ของกลุ่ม Inadequate ANC เป็นสองเท่าของกลุ่ม Adequate ANC ทุกขณะ นี่คือเหตุผลที่ Cox Regression นิยมใช้กับ Outcome แบบ Time-to-Event โมเดลนี้คือ $h(t \mid X) = h_0(t)\,e^{\beta X}$ โดย Baseline Hazard $h_0(t)$ มีรูปร่างตามเวลาแบบใดก็ได้ และ $e^{\beta}$ คือ HR
ที่สำคัญคือ Overall IRR ที่คำนวณจาก Person-time รวม ไม่รับประกันว่าจะเท่ากับ HR จาก Cox แม้ Proportional Hazards จะเป็นจริง เมื่อ $h_1(t) = 2\,h_0(t)$ Overall IRR ก็ไม่จำเป็นต้องเท่ากับ 2 เพราะเป็นค่าเฉลี่ยของอัตราตลอด Follow-up ที่ถ่วงน้ำหนักตาม Person-time ของแต่ละกลุ่ม หาก Proportional Hazards ไม่เป็นจริง ค่าเดียวจาก Cox Regression หรือ clogit จะเป็น Time-weighted Summary และอาจไม่มีความหมายเป็น IRR หรือ HR คงที่ค่าเดียว
4. ทำไมการศึกษาแบบ Case-Control จึงประมาณได้สามมาตรวัด?
นี่คือแนวคิดที่สำคัญที่สุดเรื่องหนึ่งของระเบียบวิธี Case-Control การศึกษาแบบ Case-Control ซึ่งวัด Exposure ใน Case และในตัวอย่างของ Control แทนการวัดในทุกคน ไม่จำเป็นต้องประมาณ Odds Ratio ของ Cohort สิ่งที่มันประมาณขึ้นกับว่า Control มาจากที่ใด [2, 3] วิธีที่พบบ่อยมีสามวิธี คือ Exclusive, Inclusive และ Concurrent Sampling
เราคุ้นกับภาพ 'Case = ป่วย, Control = ไม่ป่วย' ภาพนี้ถูกสำหรับ Exclusive Sampling แต่ไม่ใช่นิยามทั่วไปของ Control ในการศึกษาแบบ Case-Control นิยามที่ถูกกว่าคือ Control เป็นตัวอย่าง (Sample) ของ Denominator ที่เราต้องการเป็นตัวแทน คำว่า Control ไม่ได้แปลว่าคนที่สุขภาพดี
ดังนั้น Case เหมือนกันในทุก Design เมื่อ Control เปลี่ยน Denominator ที่ Control เป็นตัวแทนก็เปลี่ยน มาตรวัดที่ Odds Ratio จาก Case-Control ประมาณจึงเปลี่ยนตาม [4] ความสัมพันธ์เหล่านี้มาจากโครงสร้างประชากรที่ตัวอย่าง Control แต่ละแบบเป็นตัวแทน
| วิธีสุ่ม | วิธีเลือก Control | Control เป็นตัวแทนของ | มาตรวัดของ Cohort ที่มุ่งประมาณ |
|---|---|---|---|
| Exclusive | คนที่ไม่เกิด Event เมื่อสิ้นสุด Follow-up | Non-cases ตอนจบ | Odds Ratio |
| Inclusive | คนที่สุ่มจาก Cohort ตอน Baseline รวมคนที่อาจกลายเป็น Case ในอนาคต | ทุกคนตอนเริ่มต้น | Risk Ratio |
| Concurrent | คนที่ยัง At Risk ณ เวลาที่ Case แต่ละรายเกิด Event | Person-time ที่อยู่ในความเสี่ยง | Incidence Rate Ratio (Rate หรือ Hazard) |
Exclusive Sampling
สมมติเราหาทารกทุกคนที่เกิดภาวะแทรกซ้อนภายในวันที่ 28 แล้วเลือก Control เฉพาะจากทารกที่ยังไม่เกิด Event เมื่อสิ้นสุด Follow-up การเปรียบเทียบแบบ Case-Control จะได้ Exposure Odds ใน Case เทียบกับใน Non-cases เมื่อสุ่มอย่างเป็นตัวแทน OR จาก Case-Control ที่ได้จะประมาณ OR ของ Cohort ทั้งหมด นี่คือเหตุผลที่ Ordinary Logistic Regression เหมาะสม:
$$\log\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1\,\mathrm{ANC}, \quad e^{\beta_1} = \mathrm{OR}$$ในสมการนี้ $p$ คือ Probability ของการเป็น Case Logistic Regression ไม่ได้ Model $p$ ตรง ๆ แต่ Model Odds คือ $p/(1-p)$ จึงให้ OR ในคำสั่งของบทความนี้ case เป็น 1 สำหรับ Case และ 0 สำหรับ Control, ANC หรือ inadequate_anc เป็น 1 สำหรับ ANC ไม่เพียงพอ และ id ระบุตัวทารก สำหรับตัวอย่างแบบ Exclusive คำสั่งแบบ Crude และแบบ Adjusted คือ:
cc case ANC
logistic case ANC
logistic case ANC age SES coverage_gapcc คำนวณ Crude OR จากตาราง 2 คูณ 2 ส่วน logistic ให้ Crude OR เดียวกันในรูป Regression ทั้งสองเป็นแนวคิดเดียวกัน ไม่ใช่สองโมเดลที่ต่างกัน
Inclusive Sampling
ทีนี้สมมติว่าสุ่ม Control จากทุกคนตอนเริ่ม Follow-up ทารกที่ถูกเลือกเป็น Control อาจเกิด Outcome ในภายหลังและกลายเป็น Case ได้ เพราะ Control เหล่านี้เป็นตัวแทนของประชากรตั้งต้น ไม่ใช่เฉพาะคนที่รอดจนจบ Exposure Odds Ratio จากตัวอย่าง Case-Control จึงประมาณ Risk Ratio ของ Cohort ภายใต้ข้อสมมติของการสุ่มที่เหมาะสม [2]
การสุ่มได้ทารกที่ภายหลังกลายเป็น Case นั้นถูกต้อง ณ Baseline ทารกคนนั้นเป็นหนึ่งในประชากรที่สร้าง Denominator ของ Risk คือจำนวน Case หารด้วยประชากร ณ Baseline การกลายเป็น Case ทีหลังไม่ใช่ปัญหา ทารกคนเดียวกันจึงปรากฏได้สองครั้ง เป็น Control Row หนึ่งครั้งและ Case Row หนึ่งครั้ง เพราะสอง Row นี้ทำหน้าที่คนละอย่าง:
id case ANC
15 0 1 <- control
...
15 1 1 <- caseยังใช้ Ordinary Logistic Regression ได้ แต่สอง Row ของทารกคนเดียวกันไม่เป็นอิสระต่อกัน ขณะที่ Ordinary Logistic Regression ถือว่าทุก Row เป็นคนละคน Standard Error จึงต้องคำนึงถึงความไม่เป็นอิสระนี้ เราจึง Cluster ตาม ID ของแต่ละคน แล้ว Row ที่มี ID เดียวกันจะถูกยอมให้มี Correlation กันตอนคำนวณ Standard Error:
logistic case ANC, vce(cluster id)
logistic case ANC age SES coverage_gap, vce(cluster id)คำสั่งยังเป็น logistic และยังคำนวณ Odds Ratio คือ OR ของตัวอย่าง Case-Control สิ่งที่ Sample OR นี้เป็นตัวแทนใน Cohort ขึ้นกับ Sampling Design Logistic Regression ไม่ได้กลายเป็นโมเดลของ Risk Ratio แต่ Inclusive Sampling ทำให้ Sample OR ประมาณ RR ของ Cohort
Case เหมือนกัน Control ต่างกัน: Cohort 100 คน
Cohort สมมติที่เล็กกว่า มีทารก 100 คน ช่วยให้เห็นการคำนวณ ในทารก 40 คนที่ได้รับ ANC ไม่เพียงพอ 20 คนเกิด Outcome ภายใน 28 วัน และในทารก 60 คนที่ได้รับ ANC เพียงพอ 10 คนเกิด Outcome
-
Risk Ratio ของ Cohort
\[ \text{RR} = \frac{20/40}{10/60} = 3.0 \]
Risk คือ 20/40 = 50% ในกลุ่ม Inadequate ANC และ 10/60 = 16.7% ในกลุ่ม Adequate ANC นี่คือ Cohort จริง ยังไม่ใช่การศึกษาแบบ Case-Control
-
Exclusive Controls: Non-cases ณ วันที่ 28
\[ \text{OR} = \frac{20/10}{20/50} = 5.0 \]
ณ วันที่ 28 Non-cases มี 20 คนในกลุ่ม Inadequate ANC และ 50 คนในกลุ่ม Adequate ANC Exclusive Controls มาจากคอลัมน์นี้ การเปรียบเทียบจึงเป็นสัดส่วน Exposure ของ Case เทียบกับสัดส่วน Exposure ของ Non-cases ANC ไม่เพียงพอทำให้ทารกจำนวนมากย้ายไปอยู่ฝั่ง Case และเหลืออยู่ฝั่ง Non-case น้อย OR จึงใหญ่
-
Inclusive Controls: ทุกคนตอนเริ่มต้น
\[ \frac{20/10}{40/60} = \frac{2}{0.667} = 3 \]
Inclusive Controls เป็นตัวแทนของสัดส่วน 40 : 60 ตอนเริ่มต้น ขณะที่ Case ยังเหมือนเดิม
-
ทำไมผลแบบ Inclusive จึงเป็น Risk Ratio
\[ \frac{20/10}{40/60} = \frac{20/40}{10/60} = \frac{\text{risk}_{\text{inadequate}}}{\text{risk}_{\text{adequate}}} = \text{RR} \]
เมื่อจัดตำแหน่งตัวเลขสี่ตัวเดิมใหม่ Risk ของแต่ละกลุ่มจะอยู่ด้านบนและด้านล่าง Inclusive Controls เป็นตัวแทนของจำนวนคนที่เริ่มต้นในแต่ละกลุ่ม Exposure จึงสร้าง Denominator ของ Risk ขึ้นมาใหม่ คือจำนวน Case หารด้วยจำนวนคนตอนเริ่มต้น
ผลลัพธ์: Case ชุดเดียวกันให้ 5.0 เมื่อใช้ Exclusive Controls ซึ่งคือ OR ของ Cohort และให้ 3.0 เมื่อใช้ Inclusive Controls ซึ่งคือ RR ของ Cohort
Exclusive Controls ตอบว่า Odds ของ Exposure ในคนที่เกิด Outcome เทียบกับคนที่ไม่เกิดเป็นเท่าไร ส่วน Inclusive Controls สร้าง Risk ขึ้นมาใหม่
Concurrent Sampling
Concurrent Sampling ใช้อีกแนวทางหนึ่ง มันไม่ได้ถามว่าตอนเริ่มมีใครบ้าง และไม่ได้ถามว่าตอนจบใครไม่เกิด Outcome แต่ทุกครั้งที่ทารกคนหนึ่งเกิด Outcome มันถามว่า ณ ขณะนี้ ใครบ้างที่ยังเกิด Outcome ได้ ผู้วิจัยระบุทารกคนอื่นทุกคนที่ยัง At Risk ณ เวลานั้น แล้วสุ่ม Control จำนวนเล็กน้อยจากกลุ่มนี้
สำหรับ Case ที่เกิดในวันที่ 5 Control มาจากทารกที่ยัง At Risk ในวันที่ 5 สำหรับ Case ที่เกิดในวันที่ 12 Control มาจากทารกที่ยัง At Risk ในวันที่ 12 คนที่ยัง At Risk ณ เวลาที่ Case เกิด Event คือ Risk Set ของ Case รายนั้น และ Case แต่ละรายกับ Control ที่สุ่มให้รวมกันเป็น Matched Set
Control ที่ถูกเลือกในวันที่ 5 อาจกลายเป็น Case ในวันที่ 12 ได้ ซึ่งยอมรับได้ เพราะสถานะ Control หมายถึงทารกคนนั้นยัง At Risk ณ เวลา Event ที่เกิดก่อนหน้า
Timeline ของทารกหกคนแสดงว่า Control เหล่านี้กลายเป็นตัวแทนของอะไร:
Day 0 Day 28
|-----------------------------------------------|
1 inadequate ANC ------ X event day 5
2 inadequate ANC ----------- X event day 10
3 inadequate ANC ---------------------------- no event
4 adequate ANC ------------------ X event day 18
5 adequate ANC ---------------------------- no event
6 adequate ANC ---------------------------- no event
Case 1 on day 5: control pool 2 3 4 5 6
Case 2 on day 10: control pool 3 4 5 6
Case 4 on day 18: control pool 3 5 6หลังวันที่ 5 ทารกคนที่ 1 ถูกเลือกไม่ได้แล้ว เพราะเกิด Event ไปแล้ว ทารกคนที่ 3, 5 และ 6 ไม่เกิด Event จนถึงวันที่ 28 จึงถูกเลือกเป็น Control ได้ในหลาย Risk Sets ขณะที่ทารกคนที่ 1 ให้เวลาเพียงเล็กน้อย Control จึงไม่ได้เป็นตัวแทนของจำนวนคน แต่เป็นตัวแทนของเวลาที่คนอยู่ใน Risk Set คือ Person-time มันสร้าง Denominator ของ Rate ขึ้นมาใหม่ คือ Events หารด้วย Person-time ไม่ใช่ Denominator ของ Risk คือ Events หารด้วยจำนวนคน
ข้อดีหลักคือ Control ที่สุ่มได้เป็นตัวแทนของเวลาที่ประชากรอยู่ในความเสี่ยง ไม่ใช่เพียงคนที่ยังไม่เกิด Event เมื่อสิ้นสุด Follow-up ด้วยเหตุนี้ Incidence Density Sampling ซึ่งเป็นอีกชื่อหนึ่งของ Concurrent Sampling จึงประมาณ Relative Incidence Rate ได้โดยไม่ต้องให้ Outcome พบน้อย [4, 5, 6]
5. ทำไม Concurrent Sampling จึงเรียกว่า IRR Design ทั้งที่วิเคราะห์ด้วย Conditional Logistic Regression?
นี่คือจุดที่ Epidemiology กับ Survival Analysis มาบรรจบกัน Concurrent Sampling นิยามตัวเองเป็น IRR Design ตามหลัก Epidemiology แต่เมื่อวิเคราะห์ด้วย clogit ที่ Match ตาม Event Time เรากำลังประมาณ Hazard Ratio ตามกรอบ Survival Analysis สองแนวคิดนี้ดูเหมือนเป็นคนละเรื่อง แต่เชื่อมโยงกันโดยตรง
คำว่า Incidence Rate Ratio อธิบายการเปรียบเทียบเชิง Epidemiology ที่ Concurrent Sampling ออกแบบมาเพื่อดึงกลับมา ส่วนคำว่า Conditional Logistic Regression อธิบายวิธีทางสถิติที่ใช้วิเคราะห์ข้อมูล Case-Control ที่จับคู่ไว้ ทั้งสองไม่ใช่นิยามที่แข่งกัน
ใน Concurrent Sampling Case แต่ละรายถูกเปรียบเทียบกับ Control ที่ยัง At Risk ณ Event Time เดียวกัน ซึ่งตรงกับการเปรียบเทียบ Instantaneous Incidence Rates และ Instantaneous Incidence Rate ก็คือ Hazard ดังนั้น Relative Incidence Rate ณ เวลา $t$ จึงเป็นปริมาณเดียวกันทางคณิตศาสตร์กับ Hazard Ratio ณ เวลา $t$
Design เป็นตัวตั้งชื่อมาตรวัด ส่วนโมเดลเป็นตัวอ่านค่า
เมื่อ Proportional Hazards Effect ร่วมกันเป็นข้อสมมติที่เหมาะสม Conditional Logistic Regression บน Risk Sets ที่สุ่มมา สามารถประมาณ Hazard Ratio Parameter เดียวกับ Cox Regression บน Cohort ทั้งหมดได้ [7, 8] นี่คือคำอธิบายของศัพท์ที่ดูขัดกัน Concurrent Sampling ถูกอธิบายว่าประมาณ Incidence Rate Ratio เพราะ Control-sampling Design ส่วน Conditional Logistic Regression เชื่อม Design นั้นเข้ากับ Hazard Ratio ที่ Cox Regression ประมาณ
แล้วทำไมตำรา Epidemiology จึงเรียกว่า IRR ไม่เรียก HR ไปเลย? เพราะตำราเน้นว่า Sampling Design เป็นตัวกำหนดว่า Case-Control Estimate เป็นตัวแทนของมาตรวัดใดใน Source Population [3] เมื่อมองผ่าน Statistical Model Design เดียวกันจะอ่านได้ดังตารางด้านล่าง
ความต่างที่ต้องรักษาไว้คือ Instantaneous Rate Ratio ไม่ควรถูกเข้าใจโดยอัตโนมัติว่าเป็น Overall Rate Ratio ที่คำนวณจาก Event ทั้งหมดหารด้วย Person-time ทั้งหมด
| Design | การตีความเชิง Epidemiology | Model | การตีความตาม Model |
|---|---|---|---|
| Exclusive Sampling | Cohort Odds Ratio | Logistic | OR |
| Inclusive Sampling | Cohort Risk Ratio | Logistic | RR ของ Cohort ต้นทาง |
| Concurrent (Density) Sampling | Incidence Rate Ratio | clogit บน Set ที่จับคู่ตามเวลา | HR ภายใต้ Proportional Hazards Model |
| Full Cohort ไม่มีการสุ่ม | ไม่ใช่ Case-Control Design | stcox | HR |
6. ทำไมต้องใช้ Conditional Logistic Regression แทน Ordinary Logistic Regression?
ลองนึกถึง Risk Sets สองชุด ในวันที่ 5 ทารก A เกิด Event และทารก B กับ C ถูกเลือกเป็น Control จากทารกที่ยัง At Risk อยู่ในวันนั้น ส่วนในวันที่ 12 ทารก D เกิด Event และทารก E กับ F ถูกเลือกเป็น Control
Day 5 Risk set 1: A (case) B, C (controls)
Day 12 Risk set 2: D (case) E, F (controls)Ordinary Logistic Regression มองข้ามการจัดกลุ่มนี้ เว้นแต่จะจัดการโครงสร้างการจับคู่ด้วยวิธีอื่น มันถือว่าข้อมูล Case-Control ที่สุ่มมาเป็นส่วนหนึ่งของการวิเคราะห์รวมกองเดียว คือ Case ทุกรายเทียบกับ Control ทุกราย
Conditional Logistic Regression เคารพโครงสร้าง Risk Set อย่างชัดเจน มันเปรียบเทียบ A กับ B และ C และเปรียบเทียบ D กับ E และ F แล้วจึงรวมข้อมูลจากทุก Risk Set เพื่อประมาณความสัมพันธ์ของ Exposure Case ใน Set 1 จะไม่ถูกเทียบกับ Control ใน Set 2 เลย เพราะมาจากคนละเวลา
เรื่องนี้สำคัญ เพราะ Hazard พื้นฐานอาจต่างกันระหว่างวันที่ 5 กับวันที่ 12 ในภาษาของโมเดล Ordinary Logistic Regression มี Intercept เดียว ส่วน Conditional Logistic Regression ให้แต่ละ Risk Set มี Baseline ของตัวเอง:
$$\operatorname{logit}(p) = \beta_0 + \beta_1 X \quad \text{versus} \quad \operatorname{logit}(p) = \alpha_{\text{set}} + \beta_1 X$$เราไม่ได้สนใจ $\alpha_{\text{set}}$ แต่สนใจเฉพาะ $\beta_1$ คือ Exposure สัมพันธ์กับการเป็น Case อย่างไรในคนที่อยู่ Risk Set เดียวกัน Conditional Likelihood ทำให้ Intercept ของแต่ละ Set หลุดออกไป [8] การเปรียบเทียบคนภายใน Event Time เดียวกันจึงไม่ต้องประมาณ Baseline Event Rate แยกให้ทุก Risk Set ที่สุ่มมา บทความเรื่อง logit, ologit และ clogit แสดงการเปรียบเทียบเดียวกันนี้ผ่าน Matched Pairs
ใน Stata คำสั่งคือ:
clogit case i.inadequate_anc, group(_set) orตัวแปร _set ระบุว่าทารกคนใดอยู่ใน Risk Set ที่สุ่มมาชุดเดียวกัน Conditional Logistic Regression ไม่ได้สร้าง Set เหล่านี้ Set ต้องถูกสร้างตั้งแต่ตอนสุ่ม Control ส่วน clogit เพียงรับ Matched Sets ที่มีอยู่แล้ว แล้วเปรียบเทียบ Case กับ Control ภายในแต่ละ Set:
Full cohort
-> know when each case had the event
-> build the risk set at that case's event time
-> sample controls from that risk set
-> give the case and its controls one set ID
-> clogit uses that set ID in the analysisCohort อีกชุดหนึ่งที่มีเพียง 6 คน (ใช้ตัวอักษรชุดใหม่ ไม่เกี่ยวกับตัวอย่างข้างบน) แสดงให้เห็นว่า Matching เกิดขึ้นตรงไหน และ clogit อ่านแต่ละ Set อย่างไร:
A ANC=1 event day 5
B ANC=0 event day 12
C ANC=1 event day 20
D ANC=0 no event
E ANC=1 no event
F ANC=0 no eventเมื่อ A เกิด Event วันที่ 5 ทั้ง 6 คนยัง At Risk อยู่ A เป็น Case แล้วสุ่มได้ D กับ E เป็น Control ต่อมา B เกิด Event วันที่ 12 ตอนนี้ A ออกจาก Risk Set ไปแล้ว คนที่ยัง At Risk คือ B, C, D, E และ F จึงสุ่มได้ C กับ F เป็น Control Matching เกิดตรงนี้ ไม่ใช่ตอน clogit:
set_id person case ANC
1 A 1 1
1 D 0 0
1 E 0 1
2 B 1 0
2 C 0 1
2 F 0 0จากนั้นจึงบอกโมเดลว่าแถวไหนอยู่ด้วยกัน:
clogit case ANC, group(set_id)group(set_id) หมายความว่าคนใน Set 1 เปรียบเทียบกันเอง คนใน Set 2 เปรียบเทียบกันเอง และห้ามเอาคนใน Set 1 ไปเทียบกับคนใน Set 2 ภายในแต่ละ Set โมเดลถามว่า เมื่อมี Case 1 คนและ Control หลายคน จากค่า Exposure ของทุกคน ใคร "น่าจะเป็น Case" มากที่สุด คนที่ ANC = 1 มีน้ำหนัก $e^{\beta}$ ส่วนคนที่ ANC = 0 มีน้ำหนัก $e^{0} = 1$ และ Probability ที่คน $j$ เป็น Case ภายใน Set คือ
ใน Set 1 Case คือ A ซึ่งมี ANC = 1 จึงสนับสนุน $\beta > 0$ ส่วนใน Set 2 Case คือ B ซึ่งมี ANC = 0 ขณะที่ Control C มี ANC = 1 จึงไม่สนับสนุน clogit ทำแบบนี้กับทุก Set แล้วรวม Evidence ทั้งหมดเพื่อหา $\beta$ ซึ่งก็คือ Matched OR
ใน Stata สามขั้นนี้คือสามคำสั่งที่ทำหน้าที่ต่างกัน stset บอก Stata ว่านี่คือ Survival Data เวลา Follow-up คืออะไร และ Event คืออะไร sttocc สุ่ม Control จาก Risk Set ณ Event Time ของ Case แต่ละราย ทั้งสองคำสั่งไม่ใช่โมเดล
หลังจากนั้น clogit ซึ่งเป็นโมเดลจึงวิเคราะห์ตัวอย่างที่จับคู่ไว้:
stset followup_time, failure(outcome2==1)
sttocc, number(4)
clogit case ANC, group(setid)แม้ Stata จะแสดงผลเป็น Odds Ratio แต่การตีความเชิง Epidemiology คือ Relative Incidence Rate และภายใต้ Proportional Hazards Model ที่เหมาะสม ตีความเป็น HR
7. ทำไม Cox Regression จึงเป็นการเปรียบเทียบของ Full Cohort?
Conditional Logistic Regression และ Cox Regression มีโครงสร้าง Likelihood ที่ใกล้เคียงกันมาก [7] ณ Event Time แต่ละครั้ง Cox Regression เปรียบเทียบคนที่เกิด Event กับทุกคนที่ยัง At Risk การวิเคราะห์ Concurrent Case-Control ทำการเปรียบเทียบแบบเดียวกัน แต่ใช้ Control ที่สุ่มมาแทนสมาชิก Cohort ทุกคนที่เข้าเกณฑ์ จึงได้ความสัมพันธ์ที่มีประโยชน์ดังนี้
| ลักษณะ | Concurrent Case-Control | Full Cohort |
|---|---|---|
| Model | Conditional Logistic | Cox Regression |
| การเปรียบเทียบ | Case เทียบกับ Risk Set ที่สุ่มมา | Case เทียบกับ Risk Set ทั้งหมด |
| ใช้ Event Time | ใช่ | ใช่ |
| เป้าหมายภายใต้ Proportional Hazards | HR | HR |
สองคำสั่งเทียบกัน
ดังนั้น Cox Regression จึงเป็น Reference Analysis ตามธรรมชาติ เมื่อต้องประเมินว่า Concurrent Case-Control Sampling ให้ความสัมพันธ์เหมือนที่เห็นใน Full Cohort หรือไม่:
* Concurrent Case-Control
clogit case i.inadequate_anc, group(_set) or
* Full Cohort
stset tmorbidity28, failure(morbidity28==1)
stcox i.inadequate_ancเหตุผลที่ต้องเปรียบเทียบสองคำสั่งนี้ คือทั้งสองใช้หลัก Risk-Set Comparison และสามารถประมาณ Relative Hazard Parameter เดียวกัน ภายใต้ Sampling และ Proportional Hazards Assumptions ที่เหมาะสม ในที่นี้ morbidity28 เป็น 1 สำหรับทารกที่เกิด Outcome ภายในวันที่ 28 และ tmorbidity28 คือเวลาที่อยู่ในความเสี่ยง
ค่าประมาณทั้งสองไม่จำเป็นต้องเท่ากันทุกตัวเลข เพราะการวิเคราะห์ Case-Control ใช้เพียงตัวอย่างของ Risk Sets ทั้งหมด ความต่างหลักคือ Efficiency และปริมาณข้อมูลที่มี ไม่ใช่ Outcome ทางชีววิทยาที่ต่างกัน
8. Poisson Regression อยู่ตรงไหน?
Poisson Regression ก็ประมาณ Incidence Rate Ratio ได้ เช่น:
poisson morbidity28 i.inadequate_anc, ///
exposure(tmorbidity28) irr vce(robust)Option exposure() บอก Stata ให้ใช้เวลาที่ทารกแต่ละคนอยู่ในความเสี่ยงเป็นตัวหาร โมเดลเชื่อมจำนวน Event ที่คาดหวังกับ Person-time พูดง่าย ๆ คือ:
จากนั้น Poisson Regression เปรียบเทียบ Incidence Rates ระหว่างสองกลุ่ม ANC ในตัวอย่างสองกลุ่มอย่างง่าย ผลที่ได้คืออัตราส่วนของ Event ต่อ Person-time รวม คือ IRR 2.18 จากทารก 200 คน
แต่มีข้อจำกัดสำคัญ Poisson Model อย่างง่ายที่ใช้หนึ่ง Record ต่อทารกหนึ่งคน และเวลา Exposure รวมเพียงค่าเดียว สมมติโครงสร้างของ Rate ที่ไม่ได้เปลี่ยนอย่างชัดแจ้งตลอดช่วง Follow-up Cox Regression ยืดหยุ่นกว่า เพราะ Baseline Hazard เปลี่ยนตามเวลาได้โดยไม่ต้องกำหนดรูปแบบฟังก์ชัน
ถ้าแบ่ง Follow-up เป็นช่วงย่อย แล้ว Fit Piecewise Poisson Model ที่มี Baseline Rate เฉพาะแต่ละช่วง Poisson Regression จะประมาณได้ใกล้เคียง Cox Regression และในโครงสร้างข้อมูลบางแบบ ค่าประมาณผลสัมพัทธ์ของทั้งสองอาจเท่ากันได้ ข้อสรุปที่ถูกต้องจึงไม่ใช่ว่า Cox ดีกว่า Poisson เสมอ
คำสั่ง Poisson ข้างต้นประมาณ Overall Incidence Rate Ratio จาก Person-time รวม จึงเป็นอีก Summary Measure หนึ่ง ไม่ใช่ตัวเปรียบเทียบที่ตรงที่สุดสำหรับ Time-matched Concurrent Sampling บทความเรื่อง Poisson Regression สำหรับ Rate (อังกฤษ) อธิบายตัวโมเดลลึกลงไปอีก
| ลักษณะ | Poisson + Offset แบบรวมเวลา | Concurrent + clogit |
|---|---|---|
| เปรียบเทียบ | Average Incidence Rates | Instantaneous Incidence Rates |
| เวลา | รวม Person-time ตลอด Follow-up | Match ณ Event Time |
| Effect | Overall IRR | HR ภายใต้ Proportional Hazards |
| ต้องเท่ากันไหม | ไม่จำเป็น | ไม่จำเป็น |
9. Robust และ Clustered Standard Errors เข้ามาเกี่ยวตรงไหน?
มีอีกประเด็นหนึ่งที่มักทำให้สับสน การเลือกระหว่าง Logistic Regression, Poisson Regression, Conditional Logistic Regression และ Cox Regression เป็นเรื่องของโมเดลที่ใช้ประมาณและ Effect ที่เป็นเป้าหมายเป็นหลัก ส่วนการเลือก Variance Estimator ซึ่งเป็นกฎที่ใช้คำนวณ Standard Error เป็นเรื่องของความไม่แน่นอน
vce(robust) เปลี่ยนวิธีที่โมเดลคำนวณ Standard Error เมื่อข้อมูลเบี่ยงจากข้อสมมติเรื่อง Variance ของโมเดลในบางลักษณะ โดยทั่วไปยังถือว่าแต่ละ Observation เป็นอิสระต่อกัน ส่วน vce(cluster id) ยอมให้ Observations ของคนเดียวกันมี Correlation กันได้ด้วย ทั้งสอง Option ไม่ได้เปลี่ยน Odds Ratio ให้เป็น Risk Ratio หรือ Incidence Rate Ratio โดยอัตโนมัติ
ตัวอย่างเช่น Modified Poisson Regression คือ Poisson Model ที่ Fit กับ Binary Outcome พร้อม Robust Standard Errors นิยมใช้ประมาณ Risk Ratio [9] มัน Model Log ของ Risk คือ $\log(p) = X\beta$ ขณะที่ Logistic Regression Model Log ของ Odds คือ $\log\{p/(1-p)\}$ ดังนั้น $e^{\beta}$ จึงเป็น RR ไม่ใช่ OR Variance ของ Poisson ไม่ตรงกับข้อมูลแบบ 0/1 จึงต้องเพิ่ม vce(robust) ซึ่งแก้ Standard Error ไม่ได้แก้มาตรวัด ใน Full Cohort ของทารก 20,000 คน RR และ HR ประมาณได้ด้วยคำสั่ง:
glm outcome2 ANC age SES coverage_gap, ///
family(poisson) link(log) vce(robust) eform
stset followup_time, failure(outcome2==1)
stcox ANC age SES coverage_gapส่วน Poisson Regression ที่ใช้ Person-time เป็น Exposure ประมาณ Incidence Rate Ratio ความต่างของมาตรวัดเป้าหมายมาจากวิธี Model Outcome และเวลา Follow-up ไม่ได้มาจากคำว่า robust บทความเรื่องการเลือก vce() อธิบายการเลือก Variance Estimator
โมเดลสี่ตัว และคำสั่งสามตัวที่ไม่ใช่โมเดล
| Model | ถามอะไร | Model อะไร | มาตรวัด |
|---|---|---|---|
Logistic Regression (logistic) | ใครมี Odds ที่จะเป็น Case มากกว่า? | Log Odds | OR |
Conditional Logistic Regression (clogit) | ภายใน Matched Set เดียวกัน ใครมี Odds ที่จะเป็น Case มากกว่า? | Log Odds ภายในแต่ละ Matched Set ซึ่งมี Intercept ของตัวเอง | Matched OR และเมื่อ Control มาจาก Risk Set คือ HR |
Modified Poisson Regression (glm กับ family(poisson) link(log) vce(robust)) | ใครมี Risk ที่จะเกิด Outcome มากกว่า? | Log Risk | RR |
Cox Regression (stcox) | ในคนที่ยัง At Risk ณ เวลานั้น ใครมี Hazard สูงกว่า? | Log Hazard โดย Baseline Hazard มีรูปร่างแบบใดก็ได้ | HR |
ความเข้าใจผิดที่พบบ่อยและวิธีแก้
-
"Odds Ratio จาก Case-Control ทุกค่าประมาณสิ่งเดียวกัน"
Stata ติดป้ายผลของ
cc,logisticและclogitว่า Odds Ratio ไม่ว่า Design จะเป็นแบบใด ใน Cohort 100 คน Case ชุดเดียวกันให้ 5.0 เมื่อใช้ Exclusive Controls และ 3.0 เมื่อใช้ Inclusive Controlsวิธีแก้: อ่านค่าประมาณจากที่มาของ Control: Non-cases ตอนจบให้ OR ของ Cohort ทุกคนตอน Baseline ให้ RR ของ Cohort และคนที่ยัง At Risk ณ Event Time แต่ละครั้งให้ Rate Ratio ซึ่งอ่านเป็น HR เมื่อวิเคราะห์ Risk Sets ด้วย
clogit -
"Control ต้องเป็นคนสุขภาพดี จึงต้องตัด Control ที่ภายหลังกลายเป็น Case ทิ้ง"
ใน Inclusive และ Concurrent Sampling Control อาจกลายเป็น Case ในภายหลังได้ การตัดทารกเหล่านั้นออกจะเหลือเฉพาะคนที่ยังไม่เกิด Outcome เมื่อสิ้นสุด Follow-up ซึ่งเปลี่ยน Design กลับไปเป็น Exclusive Sampling และดันค่าประมาณไปทาง OR
วิธีแก้: ถือว่า Control เป็นตัวอย่างของ Denominator เก็บคนที่ภายหลังเป็น Case ไว้เป็น Control ด้วย และ Cluster Standard Error ตาม
idเมื่อทารกคนเดียวปรากฏสอง Row -
วิเคราะห์ Risk Sets ด้วย Ordinary Logistic Regression
Ordinary Logistic Regression รวม Case และ Control ทุกรายไว้กองเดียว Case ในวันที่ 5 จึงถูกเทียบกับ Control ที่สุ่มในวันที่ 12 ซึ่ง Hazard อาจต่างกัน
วิธีแก้: ใช้
clogitกับgroup(_set)เพื่อให้ Case แต่ละรายถูกเทียบกับ Control ใน Risk Set ของตัวเองเท่านั้น -
"
clogitจับคู่ให้เอง"clogitเพียงอ่านตัวระบุ Set ที่ได้รับ ถ้า Set ไม่ได้สร้างจาก Risk Set ณ Event Time ของ Case แต่ละรายclogitก็แก้ไม่ได้วิธีแก้: สร้าง Risk Sets ตั้งแต่ตอนสุ่ม Control (
stsetแล้วตามด้วยsttoccหรือ Risk-Set Sampling ของคุณเอง) แล้วส่ง Set ID ให้clogit -
"Overall IRR จาก Poisson ต้องเท่ากับ HR จาก Cox"
Overall IRR เฉลี่ยอัตราตลอด Follow-up โดยถ่วงน้ำหนักตาม Person-time ของแต่ละกลุ่ม ส่วน HR เปรียบเทียบอัตรา ณ ขณะเดียวกัน แม้ Hazard ของกลุ่ม Inadequate ANC จะเป็นสองเท่าของกลุ่ม Adequate ANC พอดีทุกเวลา Overall IRR ก็ไม่จำเป็นต้องเท่ากับ 2
วิธีแก้: ตัดสินก่อนว่าเป้าหมายคือ Overall IRR (Poisson กับ Person-time) หรือ Time-specific Relative Hazard (Cox Regression หรือ
clogitบน Risk Sets) แล้วรายงานค่าประมาณภายใต้ชื่อนั้น -
"Rate 0.02 ต่อ Person-day คือ Risk 2%"
Rate นับ Event เทียบกับเวลาที่อยู่ในความเสี่ยง ไม่ใช่ Probability ที่คนหนึ่งจะเกิด Event ตลอดการศึกษา
วิธีแก้: ใช้ Risk สำหรับ Probability ของการเกิด Event ภายในช่วงเวลาที่ระบุ และรายงาน Rate เป็นจำนวน Event ต่อหน่วย Person-time
-
"
vce(robust)เปลี่ยน Odds Ratio ให้เป็น Risk Ratio"Variance Estimator เป็นเรื่องของความไม่แน่นอน
vce(robust)และvce(cluster id)เปลี่ยน Standard Error ส่วนมาตรวัดมาจากโมเดล Outcome เวลา Follow-up และวิธีสุ่ม Controlวิธีแก้: เลือกโมเดลตามมาตรวัดก่อน: Modified Poisson กับ Binary Outcome ในข้อมูล Cohort สำหรับ RR, Poisson กับ Person-time สำหรับ IRR และ Logistic Regression สำหรับ OR แล้วจึงเลือก
vce()สำหรับ Standard Error บทความเรื่องการเลือก vce() อธิบายการเลือกนั้น
10. แนวทางปฏิบัติสำหรับนักวิจัยทางคลินิก
ก่อนเลือก Regression Model ให้ถามสามคำถาม
หนึ่ง เราต้องการวัดอะไร?
- ถ้าคำถามเกี่ยวกับ Probability ของการเกิด Event ภายใน 28 วัน ให้พิจารณา Risk Ratio
- ถ้าเกี่ยวกับจำนวน Event ต่อ Person-day ให้พิจารณา Incidence Rate Ratio
- ถ้าเกี่ยวกับ Hazard ของ Event ครั้งแรกตามเวลา ให้พิจารณา Hazard Ratio
สอง เรามีข้อมูลอะไร?
- Binary Outcome เมื่อสิ้นสุด Follow-up อาจรองรับการวิเคราะห์แบบ Risk
- ข้อมูลที่มี Event Time แม่นยำและข้อมูล Censoring (เวลาที่ Follow-up ของแต่ละคนสิ้นสุดลงโดยยังไม่เกิด Event) รองรับการวิเคราะห์แบบ Time-to-Event ได้
- ข้อมูล Case-Control ต้องระบุ Control-sampling Strategy ของมันอย่างรอบคอบ
สาม Control ถูกเลือกมาอย่างไร?
- ถ้าสุ่ม Control จากคนที่รอดจนจบ (Survivors) OR จาก Case-Control ประมาณ OR ของ Cohort
- ถ้าสุ่ม Control จากประชากร ณ Baseline OR จาก Case-Control ประมาณ RR ของ Cohort ได้
- ถ้าสุ่ม Control จาก Person-time ที่อยู่ในความเสี่ยง การวิเคราะห์ Case-Control ประมาณ Relative Incidence Rates ได้
- เมื่อจับคู่ Control กับ Case เป็นรายบุคคล ณ Event Time Conditional Logistic Regression จัดการ Matched Risk Sets เหล่านั้นได้อย่างเหมาะสม
บทสรุป
Logistic Regression, Conditional Logistic Regression, Poisson Regression และ Cox Regression ไม่ใช่วิธีที่สลับใช้แทนกันได้ง่าย ๆ ในการวิเคราะห์ Binary Outcome แต่ละวิธีตอบคำถามทางสถิติที่ต่างกัน หรือสะท้อน Sampling Design ที่ต่างกัน
Risk Ratio เปรียบเทียบ Probability, Incidence Rate Ratio เปรียบเทียบอัตราการเกิด Event ต่อหน่วย Person-time และ Hazard Ratio เปรียบเทียบอัตราการเกิด Event ณ ขณะใดขณะหนึ่งในคนที่ยัง At Risk
จุดเชื่อมสำคัญคือ Hazard เป็น Instantaneous Incidence Rate นี่คือเหตุผลที่ Concurrent Case-Control Sampling ซึ่งในทาง Epidemiology อธิบายว่าประมาณ Incidence Rate Ratio เชื่อมโยงได้อย่างเป็นธรรมชาติกับ Conditional Logistic Regression และ Cox Proportional Hazards Regression
หลักที่มีประโยชน์ที่สุดนั้นเรียบง่าย และเริ่มจาก Estimand คือปริมาณที่การศึกษามุ่งจะประมาณอย่างเจาะจง
อภิธานศัพท์
- person-time (ผลรวมเวลาที่อยู่ในความเสี่ยง)
- เวลาที่แต่ละคนอยู่ใน Follow-up และอยู่ในความเสี่ยง รวมกันทุกคน เช่น Person-days
- incidence rate
- จำนวน Event หารด้วย Person-time ที่อยู่ในความเสี่ยง ไม่ใช่ Probability
- incidence rate ratio (IRR) (อัตราส่วนอัตราอุบัติการณ์)
- อัตราส่วนของ Incidence Rate สองค่า คือจำนวน Event ต่อหน่วย Person-time
- hazard (ฮาซาร์ด)
- Instantaneous Incidence Rate คืออัตราการเกิด Event ณ เวลา t ในคนที่ยัง At Risk
- hazard ratio (HR) (อัตราส่วนฮาซาร์ด)
- อัตราส่วนของ Hazard สองค่า ณ เวลาเดียวกัน คือ Instantaneous IRR ณ เวลานั้น
- proportional hazards (ข้อสมมติฮาซาร์ดเป็นสัดส่วน)
- ข้อสมมติว่า Hazard Ratio คงที่ตลอดเวลา Follow-up
- Cox regression (แบบจำลอง Cox)
- Regression สำหรับ Hazard คือ h(t | X) = h0(t) e^(βX) โดย Baseline Hazard h0(t) มีรูปร่างแบบใดก็ได้ และ e^β คือ HR
- exclusive (cumulative) sampling (การเลือกกลุ่มควบคุมแบบสะสม)
- การสุ่ม Control จากคนที่ไม่เกิด Event เมื่อสิ้นสุด Follow-up OR จาก Case-Control ประมาณ OR ของ Cohort
- inclusive (case-base) sampling (การเลือกกลุ่มควบคุมจากฐานประชากรทั้งหมด)
- การสุ่ม Control จากทุกคนตอน Baseline รวมคนที่อาจกลายเป็น Case ในอนาคต OR จาก Case-Control ประมาณ RR ของ Cohort
- concurrent (risk-set) sampling (การสุ่มกลุ่มควบคุมจากกลุ่มเสี่ยง)
- การสุ่ม Control จากคนที่ยัง At Risk ณ Event Time ของ Case แต่ละราย Control จึงเป็นตัวแทนของ Person-time
- incidence density sampling (การเลือกกลุ่มควบคุมตามความหนาแน่นของอุบัติการณ์)
- อีกชื่อหนึ่งของ Concurrent (Risk-Set) Sampling
- risk set
- คนที่ยัง At Risk ณ ขณะที่ Case รายหนึ่งเกิด Event
- matched set (ชุดที่จับคู่)
- Case หนึ่งรายพร้อม Control ที่สุ่มให้รายนั้น ระบุด้วย Set ID เช่น _set
- conditional logistic regression (conditional logistic regression)
- Logistic Regression ที่มี Intercept ของตัวเองให้แต่ละ Matched Set และ Fit ให้ Case แต่ละรายถูกเทียบกับ Control ใน Set ของตัวเองเท่านั้น (clogit ใน Stata)
- Poisson regression
- โมเดลสำหรับจำนวน Event เทียบกับเวลาที่อยู่ในความเสี่ยง เมื่อใช้ Person-time เป็น Exposure จะประมาณ IRR
- modified Poisson regression (Poisson ดัดแปลง)
- Poisson Model ที่ใช้ Log Link กับ Binary Outcome พร้อม Robust Standard Errors ใช้ประมาณ Risk Ratio ในข้อมูล Cohort
- estimand (ปริมาณเป้าหมายของการประมาณ)
- ปริมาณที่การศึกษามุ่งจะประมาณอย่างเจาะจง
เอกสารอ้างอิง
- Vandenbroucke JP, Pearce N. Case-control studies: basic concepts. Int J Epidemiol. 2012;41(5):1480-1489. doi:10.1093/ije/dys147 https://doi.org/10.1093/ije/dys147
- Pearce N. What does the odds ratio estimate in a case-control study? Int J Epidemiol. 1993;22(6):1189-1192. doi:10.1093/ije/22.6.1189 https://doi.org/10.1093/ije/22.6.1189
- Knol MJ, Vandenbroucke JP, Scott P, Egger M. What do case-control studies estimate? Survey of methods and assumptions in published case-control research. Am J Epidemiol. 2008;168(9):1073-1081. doi:10.1093/aje/kwn217 https://doi.org/10.1093/aje/kwn217
- Rodrigues L, Kirkwood BR. Case-control designs in the study of common diseases: updates on the demise of the rare disease assumption and the choice of sampling scheme for controls. Int J Epidemiol. 1990;19(1):205-213. doi:10.1093/ije/19.1.205 https://doi.org/10.1093/ije/19.1.205
- Greenland S, Thomas DC. On the need for the rare disease assumption in case-control studies. Am J Epidemiol. 1982;116(3):547-553. doi:10.1093/oxfordjournals.aje.a113439 https://doi.org/10.1093/oxfordjournals.aje.a113439
- Richardson DB. An incidence density sampling program for nested case-control analyses. Occup Environ Med. 2004;61(12):e59. doi:10.1136/oem.2004.014472 https://doi.org/10.1136/oem.2004.014472
- Langholz B, Goldstein L. Risk set sampling in epidemiologic cohort studies. Stat Sci. 1996;11(1):35-53. doi:10.1214/ss/1032209663 https://doi.org/10.1214/ss/1032209663
- Breslow NE, Day NE. Statistical Methods in Cancer Research, Volume I: The Analysis of Case-Control Studies. IARC Scientific Publications No. 32. Lyon: International Agency for Research on Cancer; 1980. https://publications.iarc.who.int/Book-And-Report-Series/Iarc-Scientific-Publications/Statistical-Methods-In-Cancer-Research-Volume-I-The-Analysis-Of-Case-Control-Studies-1980
- Zou G. A modified Poisson regression approach to prospective studies with binary data. Am J Epidemiol. 2004;159(7):702-706. doi:10.1093/aje/kwh090 https://doi.org/10.1093/aje/kwh090
ประเด็นสำคัญ
- คำถามวิจัย วิธีสุ่ม Control และโมเดลทางสถิติเป็นสามเรื่องที่ต่างกัน เมื่อแยกออกจากกันได้ ความขัดแย้งที่ดูเหมือนมีอยู่ส่วนใหญ่ก็หายไป
- Cohort ทารก 200 คนชุดเดียวให้ RR 2.00, OR 2.25 และ IRR 2.18 ไม่มีค่าใดผิด เพราะแต่ละค่าใช้ตัวหารต่างกัน คือคนตอนเริ่มต้น คนที่ไม่เกิด Event หรือ Person-time
- Control เป็นตัวอย่างของ Denominator: Control จาก Non-cases ตอนจบประมาณ OR ของ Cohort, Control จากทุกคนตอน Baseline ประมาณ RR ของ Cohort และ Control จากคนที่ยัง At Risk ณ Event Time แต่ละครั้งประมาณ Rate Ratio
- Hazard เป็น Instantaneous Incidence Rate ดังนั้น clogit บน Risk Sets จึงประมาณ HR เดียวกับ Cox Regression บน Full Cohort ส่วน Poisson กับ Person-time ประมาณ Overall IRR ที่ไม่จำเป็นต้องเท่ากัน
- เลือกคำถามทาง Epidemiology และ Estimand ก่อน แล้วจึงเลือกโมเดล vce(robust) หรือ vce(cluster id) เปลี่ยน Standard Error ไม่เคยเปลี่ยนมาตรวัด
อ่านต่อในวิกิ: [[nested-case-control-design-th]] [[logit-ologit-clogit-one-link-three-questions-th]] [[choosing-vce-robust-cluster-standard-errors-th]]