อัตราส่วนความเสี่ยง อัตราส่วนออดส์ ผลต่างความเสี่ยง และจำนวนที่ต้องรักษา: ตารางสองคูณสองเดียว คำตอบสี่แบบ

Health EconomicsClinical Epidemiology ResearchMethodology and Research Design TH
อัตราส่วนความเสี่ยง อัตราส่วนออดส์ ผลต่างความเสี่ยง และจำนวนที่ต้องรักษา: ตารางสองคูณสองเดียว คำตอบสี่แบบ
On this page

อ่านฉบับภาษาอังกฤษ (English version)

บทคัดย่อ

คณะกรรมการของโรงพยาบาลประจำอำเภอแห่งหนึ่งกำลังตัดสินว่าจะจ่ายเงินให้การรักษาเชิงป้องกันแบบใหม่ C หรือไม่ ในการทดลอง ผู้ป่วยที่ได้ C เกิดภาวะแทรกซ้อนรุนแรงภายในหนึ่งปี 8 จาก 66 คน และผู้ที่ได้การดูแลตามปกติเกิด 13 จาก 60 คน รายงานการทดลองให้ตัวเลขสี่ค่า คือ 9.55, 11, 0.56 และ 0.50 เราคำนวณทีละค่าจากตารางเดียวกัน และบอกว่าแต่ละค่าตอบคำถามใด ผลต่างความเสี่ยง (risk difference) นับจำนวนภาวะแทรกซ้อนที่เลี่ยงได้ต่อผู้ป่วย 100 คน และจำนวนที่ต้องรักษา (number needed to treat, NNT) แปลงผลต่างนั้นเป็นจำนวนผู้ป่วย อัตราส่วนความเสี่ยง (risk ratio) คือการหารความเสี่ยงหนึ่งด้วยอีกความเสี่ยงหนึ่ง ส่วนอัตราส่วนออดส์ (odds ratio) เปรียบเทียบออดส์ คือจำนวนผู้ป่วยที่เกิดภาวะแทรกซ้อนต่อผู้ป่วยที่ไม่เกิดหนึ่งคน จึงอยู่ห่างจาก 1 มากกว่าเมื่อภาวะแทรกซ้อนพบบ่อย ถ้าหารด้วยเวลาติดตามรวมแทนจำนวนคน จะได้อัตราส่วนแบบที่สาม คืออัตราส่วนอัตราอุบัติการณ์ (incidence rate ratio) เราแสดงว่าทำไม 0.50 จึงไม่ได้แปลว่าภาวะแทรกซ้อนลดลงครึ่งหนึ่ง การรวมกลุ่มเปลี่ยนอัตราส่วนออดส์ได้อย่างไร ความไม่แน่นอนของการทดลองกว้างเพียงใด และแบบจำลองเศรษฐศาสตร์ต้องการอะไรสำหรับผู้ป่วยของอำเภอเอง


Visual summary · ภาพสรุป

ตารางการทดลองเดียว ตัวเลขสี่ค่าบนโต๊ะคณะกรรมการ

คณะกรรมการของโรงพยาบาลประจำอำเภอแห่งหนึ่งต้องตัดสินว่าจะจ่ายเงินให้การรักษาเชิงป้องกันแบบใหม่ C สำหรับผู้ใหญ่ที่เพิ่งได้รับการวินิจฉัยโรคเรื้อรังโรคหนึ่งหรือไม่ ในการทดลอง ผู้ป่วยที่ได้ C เกิดภาวะแทรกซ้อนรุนแรงภายในหนึ่งปี 8 จาก 66 คน ส่วนผู้ที่ได้การดูแลตามปกติ A เกิด 13 จาก 60 คน อำเภอนี้คาดว่าจะมีผู้ป่วยใหม่ 100 คนต่อปี ตัวเลขเหล่านี้เป็นตัวอย่างสมมติเพื่อการสอน ไม่ใช่ผลจากการทดลองจริง

รายงานการทดลองให้ตัวเลขสี่ค่าจากจำนวนเหล่านี้ คือ 9.55, 11, 0.56 และ 0.50 กรรมการคนหนึ่งอ่าน 0.50 ว่า "C ลดภาวะแทรกซ้อนได้ครึ่งหนึ่ง" อีกคนบอกว่ารักษาผู้ป่วยทุก 11 คนจะป้องกันภาวะแทรกซ้อนได้หนึ่งครั้ง คนที่สามถามว่าแบบจำลองเศรษฐศาสตร์ควรใช้ตัวเลขใด

ตัวเลขทั้งสี่ค่าคำนวณถูกต้องจากตารางเดียวกัน แต่แต่ละค่าตอบคำถามคนละข้อ บทความนี้คำนวณทีละค่าจากจำนวนผู้ป่วย และแสดงว่าเมื่อใดตัวเลขเหล่านี้จึงแยกห่างกัน แล้วจบที่ข้อมูลนำเข้าที่แบบจำลองต้องการ คือจำนวนภาวะแทรกซ้อนที่เลี่ยงได้ในผู้ป่วยของอำเภอเอง

นับความเสี่ยงของแต่ละกลุ่มก่อน

เริ่มจากผู้ป่วย ไม่ใช่สูตร ในผู้ป่วย 66 คนที่ได้ C มี 8 คนเกิดภาวะแทรกซ้อนรุนแรงภายในหนึ่งปี 8 หารด้วย 66 ได้ 12.12% ในผู้ป่วย 60 คนที่ได้การดูแลตามปกติ มี 13 คนเกิดภาวะแทรกซ้อน คิดเป็น 21.67% สัดส่วนนี้ คือสัดส่วนของผู้ที่เกิดเหตุการณ์ภายในช่วงเวลาที่ระบุ เรียกว่าความเสี่ยง (risk)

ช่วงเวลาเป็นส่วนหนึ่งของตัวเลข ความเสี่ยง 21.67% ภายในหนึ่งปีเป็นข้อเท็จจริงคนละข้อกับสัดส่วนเดียวกันในห้าปี ตัวเลขทุกตัวต่อจากนี้จึงหมายถึงภายในหนึ่งปี

เมื่อวางจำนวนผู้ป่วยเป็นสองกลุ่มคูณสองผลลัพธ์ จะได้ตารางที่เป็นที่มาของทุกคำตอบในบทความนี้ ช่องด้านในทั้งสี่ช่องคือ 8, 58, 13 และ 47

การทดลองในตารางเดียว

ติดตามหนึ่งปีทั้งสองกลุ่ม ทุกคำตอบต่อจากนี้ใช้เพียงช่องด้านในทั้งสี่ช่อง
กลุ่มเกิดภาวะแทรกซ้อนไม่เกิดผู้ป่วยทั้งหมดความเสี่ยงภายในหนึ่งปี
C การรักษาใหม่8586612.12%
A การดูแลตามปกติ13476021.67%

ลบความเสี่ยง: ผลต่างความเสี่ยงและ NNT

อ่านก่อนในเว็บไซต์นี้: วิธีอ่านผลต่างความเสี่ยงและ risk ratio และการที่แบบจำลองการถดถอยให้แต่ละค่า มีสอนไว้แล้วใน What Is Regression in Clinical Epidemiology? A Simple Guide to Risk Difference and Risk Ratio (บทความภาษาอังกฤษ) ในที่นี้เราคำนวณทั้งสองค่าจากการทดลองของคณะกรรมการ เท่าที่แบบจำลองของคณะกรรมการต้องใช้

คณะกรรมการจ่ายเงินเป็นรายผู้ป่วย คำถามแรกจึงเป็นว่า C ป้องกันภาวะแทรกซ้อนได้กี่ครั้ง ในผู้ป่วย 100 คนที่ได้การดูแลตามปกติ จะเกิดภาวะแทรกซ้อน 21.67 ครั้งในหนึ่งปี ส่วนผู้ป่วย 100 คนที่ได้ C จะเกิด 12.12 ครั้ง ช่องว่างนี้ คือภาวะแทรกซ้อนที่น้อยลง 9.55 ครั้งต่อผู้ป่วย 100 คนต่อปี เรียกว่าผลต่างความเสี่ยง (risk difference)

เพราะความเสี่ยงทั้งสองเป็นร้อยละ ผลต่างจึงนับเป็นจุดร้อยละ (percentage points) 21.67% ลบ 12.12% ได้ 9.55 จุดร้อยละ ไม่ใช่ 9.55% เมื่อเขียนเป็น C ลบ A ผลต่างความเสี่ยงคือ -9.55 จุดร้อยละ และเครื่องหมายลบบอกว่า C มีภาวะแทรกซ้อนน้อยกว่า

ลองกลับด้านช่องว่างเดียวกันนี้ ถ้าผู้ป่วย 100 คนที่ได้ C เลี่ยงภาวะแทรกซ้อนได้ 9.55 ครั้ง ภาวะแทรกซ้อนหนึ่งครั้งจะเลี่ยงได้ทุก ๆ 100 / 9.55 = 10.48 คน ผู้ป่วยเป็นคนเต็มคน จึงปัดขึ้น ต้องให้ C แก่ผู้ป่วย 11 คนเป็นเวลาหนึ่งปี เพื่อป้องกันภาวะแทรกซ้อนหนึ่งครั้ง ตัวเลขนี้เรียกว่าจำนวนที่ต้องรักษา (number needed to treat, NNT)

เขียนเป็นสัญลักษณ์ โดยให้ $p_C$ และ $p_A$ เป็นความเสี่ยงสองค่า จะได้ $RD = p_C - p_A$ และ $NNT = 1/|RD|$ ทั้งสองค่าผูกกับกรอบเวลาหนึ่งปี การทดลองห้าปีจะให้ NNT อีกค่าหนึ่งสำหรับการรักษาเดียวกัน

หารความเสี่ยง: อัตราส่วนความเสี่ยง

คำถามที่สองเป็นแบบสัมพัทธ์ คือความเสี่ยงของการดูแลตามปกติเหลืออยู่เท่าใดเมื่อได้ C ให้หารความเสี่ยงสองค่า 12.12% หารด้วย 21.67% ได้ 0.56 ผู้ป่วยที่ได้ C มีความเสี่ยงเป็น 0.56 เท่าของผู้ป่วยที่ได้การดูแลตามปกติ C จึงลดความเสี่ยงนั้นได้เกือบครึ่งหนึ่ง

ตัวเลขนี้เรียกว่าอัตราส่วนความเสี่ยง (risk ratio) หรือความเสี่ยงสัมพัทธ์ (relative risk): $RR = p_C / p_A$ ค่า 1 หมายถึงไม่มีผล และค่าที่ต่ำกว่า 1 หมายถึงภาวะแทรกซ้อนน้อยกว่าเมื่อได้ C

อัตราส่วนเพียงอย่างเดียวบอกไม่ได้ว่า C ป้องกันภาวะแทรกซ้อนได้กี่ครั้ง risk ratio 0.56 เท่าเดิมในกลุ่มที่ภาวะแทรกซ้อนพบน้อยกว่า จะป้องกันได้น้อยครั้งกว่า ซึ่งเป็นประเด็นที่อำเภอต้องใช้ในภายหลัง

นับออดส์: อัตราส่วนออดส์

อ่านก่อนในเว็บไซต์นี้: ออดส์และความต่างจากความเสี่ยงมีสอนไว้ตั้งแต่พื้นฐานใน Understanding Odds and Odds Ratios in Clinical Epidemiology (บทความภาษาอังกฤษ) ในที่นี้เราคำนวณออดส์จากการทดลองของคณะกรรมการทีละขั้น

ตัวเลขที่สี่ คือ 0.50 มาจากการนับผู้ป่วยกลุ่มเดิมอีกแบบหนึ่ง และจะพบบ่อย เพราะการถดถอยโลจิสติก (logistic regression) ซึ่งเป็นแบบจำลองทางสถิติที่การศึกษาส่วนใหญ่ใช้กับผลลัพธ์แบบเกิดหรือไม่เกิด รายงานผลเป็นออดส์ ส่วนการศึกษาแบบ case-control ซึ่งเริ่มจากผู้ป่วยที่เกิดผลลัพธ์แล้วย้อนดูว่าได้รับอะไรมา ก็รายงานผลเป็นออดส์เช่นกัน และสิ่งที่การเปรียบเทียบนั้นประมาณได้ขึ้นอยู่กับวิธีเลือกกลุ่มควบคุม ดังที่บทความเรื่องสิ่งที่แต่ละรูปแบบการศึกษาประมาณค่าได้จริงอธิบายไว้ (รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง)

ออดส์ (odds) คือจำนวนผู้ที่เกิดภาวะแทรกซ้อนหารด้วยจำนวนผู้ที่ไม่เกิด ไม่ใช่หารด้วยทุกคน ในกลุ่ม C คือ 8 ต่อ 58 หรือ 0.138 ประมาณผู้ที่เกิดภาวะแทรกซ้อนหนึ่งคนต่อผู้ที่ไม่เกิดเจ็ดคน ในกลุ่มการดูแลตามปกติคือ 13 ต่อ 47 หรือ 0.277

หารออดส์สองค่า 0.138 ด้วย 0.277 จะได้ 0.50 อัตราส่วนออดส์ (odds ratio) เปรียบเทียบออดส์ของเหตุการณ์ คือจำนวนที่เกิดหารด้วยจำนวนที่ไม่เกิด ระหว่างสองกลุ่ม เมื่อเขียนด้วยสี่ช่องของตารางจะได้ $OR = \frac{8/58}{13/47} = \frac{8 \times 47}{58 \times 13}$ ซึ่งเป็นผลคูณไขว้ของตาราง

ทำไมค่านี้จึงห่างจาก 1 มากกว่า risk ratio ออดส์เท่ากับความเสี่ยงคูณด้วยจำนวนผู้ป่วยทั้งหมดหารด้วยผู้ที่ไม่เกิดเหตุการณ์ ในกลุ่ม C คือ 12.12% × 66/58 = 0.138 เพิ่มขึ้นราวหนึ่งในเจ็ด ในกลุ่มการดูแลตามปกติคือ 21.67% × 60/47 = 0.277 เพิ่มขึ้นมากกว่าหนึ่งในสี่ กลุ่มที่มีภาวะแทรกซ้อนมากกว่าจะมีออดส์สูงขึ้นจากความเสี่ยงเดิมมากกว่า อัตราส่วนของออดส์ 0.50 จึงอยู่ห่างจาก 1 มากกว่าอัตราส่วนของความเสี่ยง 0.56

เมื่อเหตุการณ์พบน้อย ผู้ที่ไม่เกิดเหตุการณ์แทบจะเป็นทุกคน ตัวคูณจึงใกล้ 1 และอัตราส่วนทั้งสองแทบเท่ากัน แต่ในที่นี้ ผู้ป่วยที่ได้การดูแลตามปกติราวหนึ่งในห้าคนเกิดภาวะแทรกซ้อน อัตราส่วนทั้งสองจึงแยกกัน

การอ่าน 0.50 ว่า "ภาวะแทรกซ้อนลดลงครึ่งหนึ่ง" คือความผิดพลาดของกรรมการคนแรก การลดความเสี่ยงในการดูแลตามปกติลงครึ่งหนึ่งจะได้ 10.83% ในกลุ่ม C ซึ่งแปลว่าเลี่ยงภาวะแทรกซ้อนได้ 10.83 ครั้งต่อผู้ป่วย 100 คนต่อปีด้วย เพราะการลดลงครึ่งหนึ่งตัดออกเท่ากับที่เหลืออยู่พอดี ตารางบอกว่า 9.55 อัตราส่วนออดส์ 0.50 ไม่ได้แปลว่าลดความเสี่ยงได้ 50% เมื่อผู้ป่วยที่ได้การดูแลตามปกติหนึ่งในห้าคนเกิดเหตุการณ์

โค้ด R table.R
# The trial: patients with a serious complication within one year, on C and on usual care A.
events <- c(C = 8, A = 13)
patients <- c(C = 66, A = 60)
risk <- events / patients
odds <- events / (patients - events)
cat("Risk within one year, C and A (%):", sprintf("%.2f", 100 * risk), "\n")
cat("Risk difference, C minus A (points):", sprintf("%.2f", 100 * (risk[[1]] - risk[[2]])), "\n")
nnt <- 1 / (risk[[2]] - risk[[1]])
cat("Number needed to treat:", sprintf("%.2f", nnt), "rounded up:", ceiling(nnt), "\n")
cat("Risk ratio:", sprintf("%.2f", risk[[1]] / risk[[2]]), "\n")
cat("Odds, C and A:", sprintf("%.3f", odds), "\n")
cat("Odds ratio:", sprintf("%.2f", odds[[1]] / odds[[2]]), "\n")
cat("Risk on C if 0.50 halved the risk on A (%):", sprintf("%.2f", 100 * 0.50 * risk[[2]]), "\n")
ผลลัพธ์จากการรัน table.log
Risk within one year, C and A (%): 12.12 21.67
Risk difference, C minus A (points): -9.55
Number needed to treat: 10.48 rounded up: 11
Risk ratio: 0.56
Odds, C and A: 0.138 0.277
Odds ratio: 0.50
Risk on C if 0.50 halved the risk on A (%): 10.83
ไล่ตัวเลขคำตอบทั้งสี่: ความเสี่ยงสองค่า ผลต่าง NNT อัตราส่วน ออดส์สองค่าและอัตราส่วนออดส์ และการอ่านผิดว่าลดลงครึ่งหนึ่ง

ตัวหารแบบที่สาม: เวลาที่เสี่ยง

อัตราส่วนทั้งสองที่ผ่านมาหารด้วยจำนวนคน ความเสี่ยงหารด้วยทุกคนในกลุ่ม ส่วนออดส์หารด้วยผู้ที่ไม่เกิดภาวะแทรกซ้อน ทางเลือกที่สามคือหารด้วยเวลา สมมติว่าภาวะแทรกซ้อนแต่ละครั้งเกิดที่กึ่งกลางปี และไม่มีใครออกจากการทดลองก่อนกำหนด ผู้ป่วยจึงพ้นจากความเสี่ยงต่อภาวะแทรกซ้อนครั้งแรกทันทีที่เกิดภาวะแทรกซ้อนนั้น

หนึ่งคน-ปี (person-year) คือผู้ป่วยหนึ่งคนที่ติดตามนานหนึ่งปี ผู้ป่วย 58 คนในกลุ่ม C ที่ไม่เกิดภาวะแทรกซ้อนให้ 58 คน-ปี และผู้ป่วย 8 คนที่เกิดให้คนละ 0.5 รวมอีก 4 คน-ปี ได้ 62.0 ในกลุ่มการดูแลตามปกติได้ 47 + 13 × 0.5 = 53.5 เวลาติดตามที่รวมกันแบบนี้ของทั้งกลุ่มเรียกว่าเวลาติดตามรวม (person-time)

จำนวนเหตุการณ์หารด้วยเวลาติดตามรวม (person-time) เรียกว่าอัตราอุบัติการณ์ (incidence rate) ซึ่งเป็นความเร็ว ไม่ใช่สัดส่วน ภาวะแทรกซ้อน 8 ครั้งใน 62.0 คน-ปี คือ 12.90 ครั้งต่อ 100 คน-ปีในกลุ่ม C และ 13 ครั้งใน 53.5 คน-ปี คือ 24.30 ครั้งในกลุ่มการดูแลตามปกติ อัตราส่วนของสองค่านี้ 12.90 / 24.30 คืออัตราส่วนอัตราอุบัติการณ์ (incidence rate ratio หรือ IRR) เท่ากับ 0.53 เมื่อภาวะแทรกซ้อนเกิดที่กึ่งกลางปี ค่านี้อยู่ระหว่าง risk ratio 0.56 กับอัตราส่วนออดส์ 0.50 เพราะออดส์ตัดผู้ป่วยที่เกิดภาวะแทรกซ้อนออกจากตัวหารทั้งคน ขณะที่เวลาติดตามรวมตัดออกเพียงครึ่งปีหลังเกิดภาวะแทรกซ้อน ถ้าภาวะแทรกซ้อนทั้งหมดเกิดตอนสิ้นปีพอดี เวลาติดตามรวมจะไม่ลดลงเลย และอัตราส่วนอัตราอุบัติการณ์จะเท่ากับ risk ratio

แบบจำลองปัวซง (Poisson) ซึ่งเป็นการถดถอยที่สร้างมาสำหรับข้อมูลนับ ให้อัตราส่วนนี้เมื่อใช้เวลาติดตามรวมของแต่ละกลุ่มเป็นตัวหาร และการศึกษาแบบ case-control ก็ประมาณค่านี้ได้เมื่อเลือกกลุ่มควบคุมของผู้ป่วยแต่ละรายจากผู้ที่ยังอยู่ในความเสี่ยง ณ เวลานั้น ดังที่บทความเรื่องสิ่งที่แต่ละรูปแบบการศึกษาประมาณค่าได้จริงอธิบายไว้ (รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง)

อัตรายังไม่ใช่โอกาสที่ผู้ป่วยหนึ่งคนจะนำเข้าแบบจำลองเศรษฐศาสตร์ แบบจำลองต้องแปลงอัตราเป็นความน่าจะเป็นของแต่ละช่วงของแบบจำลองก่อน เช่น ทุกหนึ่งปี วิธีแปลงอัตราเป็นความน่าจะเป็นมีสอนไว้ในบทความเรื่องอุบัติการณ์และตัวหารที่ถูกต้อง (อุบัติการณ์ ความชุก และตัวหารที่ถูกต้อง: ระบาดวิทยาเบื้องหลังต้นทุนความเจ็บป่วยและแบบจำลองมาร์คอฟ)

โค้ด R rate.R
# Add follow-up time: each complication taken as halfway through the year, nobody lost early.
events <- c(C = 8, A = 13)
patients <- c(C = 66, A = 60)
person_years <- (patients - events) * 1 + events * 0.5
cat("Person-years of follow-up, C and A:", sprintf("%.1f", person_years), "\n")
rate <- events / person_years
cat("Complications per 100 person-years, C and A:", sprintf("%.2f", 100 * rate), "\n")
cat("Incidence rate ratio:", sprintf("%.2f", rate[["C"]] / rate[["A"]]), "\n")
ผลลัพธ์จากการรัน rate.log
Person-years of follow-up, C and A: 62.0 53.5
Complications per 100 person-years, C and A: 12.90 24.30
Incidence rate ratio: 0.53
ที่มาของอัตราส่วนอัตราอุบัติการณ์: คน-ปีในกลุ่ม C และ A อัตราอุบัติการณ์สองค่าต่อ 100 คน-ปี และบรรทัดเดียวที่หารสองค่านั้น

ทำไมอัตราส่วนออดส์จึงห่างจาก risk ratio

ระยะห่างระหว่างอัตราส่วนทั้งสองขึ้นกับว่าภาวะแทรกซ้อนพบบ่อยเพียงใด ไม่ได้ขึ้นกับว่า C ได้ผลดีแค่ไหน ลองคง risk ratio ของ C ไว้ที่ 0.56 แล้วนึกถึงกลุ่มที่ภาวะแทรกซ้อนในการดูแลตามปกติพบน้อยกว่าหรือบ่อยกว่านี้

ถ้าผู้ป่วยที่ได้การดูแลตามปกติเกิดภาวะแทรกซ้อน 1.00% อัตราส่วนออดส์ก็จะเท่ากับ 0.56 เช่นกัน ทั้งสองค่าตรงกันเมื่อเหตุการณ์พบน้อย ที่ 21.67% ของการทดลอง อัตราส่วนออดส์คือ 0.50 และที่ 60.00% จะลดลงเหลือ 0.34 แม้ C ยังลดความเสี่ยงได้สัดส่วนเท่าเดิม

กฎที่อยู่เบื้องหลังเส้นโค้งคือ $OR = RR \times \frac{1 - p_A}{1 - p_C}$ โดย $p_A$ และ $p_C$ คือความเสี่ยงในกลุ่ม A และกลุ่ม C ที่การทดลอง หนึ่งลบความเสี่ยงได้ 78.33% ในกลุ่ม A และ 87.88% ในกลุ่ม C จึงได้ 0.56 × 78.33% / 87.88% = 0.50 ที่ความเสี่ยง 60.00% ในการดูแลตามปกติ ความเสี่ยงในกลุ่ม C คือ risk ratio ที่ยังไม่ปัดเศษคูณ 60.00% ได้ 33.57% อัตราส่วนออดส์จึงเป็น 0.56 × 40.00% / 66.43% = 0.34 รูปด้านล่างแสดงเส้นโค้งทั้งเส้น

ไล่ตามเส้นสีดำ: risk ratio ของ C คงที่ที่ 0.56 ไม่ว่าความเสี่ยงในการดูแลตามปกติจะเป็นเท่าใด เส้นสีส้มของอัตราส่วนออดส์เริ่มชิดกันที่ 1.00% แล้วลดลงเป็น 0.50 ที่ 21.67% ของการทดลองเรา และเป็น 0.34 ที่ 60.00% แสดงว่าช่องว่างนี้วัดว่าภาวะแทรกซ้อนพบบ่อยเพียงใด ไม่ได้วัดว่า C ได้ผลดีแค่ไหน

ย้อนจากอัตราส่วนออดส์กลับเป็น risk ratio

อ่านก่อนในเว็บไซต์นี้: วิธีหา risk ratio จากแบบจำลองเมื่อผลลัพธ์พบบ่อย มีสอนไว้แล้วใน หา Risk Ratio เมื่อผลลัพธ์พบบ่อย: ลำดับขั้นถอยลงเมื่อ Log-Binomial ชนกำแพง และการแปลงอัตราส่วนออดส์จากแบบจำลองโลจิสติกเป็นผลต่างความเสี่ยง มีสอนไว้ใน Risk Difference vs Odds Ratio in Logistic Regression: A Quick Stata User Guide (with Stata Cheats) (บทความภาษาอังกฤษ) ในที่นี้เราเก็บไว้เฉพาะส่วนที่แบบจำลองเศรษฐศาสตร์ต้องใช้

เงื่อนไขว่าพบน้อยต้องเป็นจริงในทุกกลุ่มที่นำมาเปรียบเทียบ การทดลองที่ความเสี่ยงโดยรวมต่ำ อาจยังมีกลุ่มย่อยที่เสี่ยงสูงซึ่งอัตราส่วนทั้งสองต่างกันมาก

สมมติว่ารายงานให้มาเพียงอัตราส่วนออดส์ 0.50 และเรารู้ว่าผู้ป่วยที่ได้การดูแลตามปกติเกิดภาวะแทรกซ้อน 21.67% ออดส์ของ A คือ 0.277 ออดส์ของ C จึงเป็นอัตราส่วนออดส์ที่ยังไม่ปัดเศษคูณออดส์ของ A ได้ 0.138 ซึ่งคิดเป็นความเสี่ยง 0.138 / (1 + 0.138) = 0.138 / 1.138 = 12.12% และ 12.12 / 21.67 = 0.56 เขียนเป็นบรรทัดเดียวได้ว่า $RR = \frac{OR}{1 - p_A + p_A \times OR}$ [1]

สูตรนี้แม่นตรงสำหรับตารางอย่างง่ายแบบของเรา แต่ถ้าใช้กับอัตราส่วนออดส์ที่ปรับปัจจัยอื่นแล้วจะมีความเอนเอียง เพราะความเสี่ยงโดยรวมค่าเดียวอธิบายผู้ป่วยทุกคนไม่ได้ [2]

สำหรับผลที่ปรับปัจจัยแล้วมีทางที่ดีกว่า และทั้งสองทางจบที่สิ่งที่แบบจำลองต้องการ แบบจำลองปัวซงที่ได้รับเวลาติดตามรวมเป็นตัวหารจะให้อัตราส่วนอัตราอุบัติการณ์ที่พบข้างต้น ถ้าไม่ให้เวลาติดตามรวม แต่ใช้กับผลลัพธ์แบบเกิดหรือไม่เกิดของผู้ป่วยแต่ละคนร่วมกับความคลาดเคลื่อนมาตรฐานแบบทนทาน (robust standard errors) ซึ่งเป็นการแก้ให้ช่วงความเชื่อมั่นถูกต้อง จะประมาณ risk ratio ได้โดยตรง [3] ส่วนการปรับมาตรฐาน (standardisation) ใช้แบบจำลองใดก็ได้ที่สร้างแล้ว ทำนายความเสี่ยงของผู้ป่วยทุกคนครั้งหนึ่งเหมือนได้ C อีกครั้งเหมือนได้ A แล้วเฉลี่ยค่าทำนายแต่ละชุด [4] ค่าเฉลี่ยทั้งสองคือความเสี่ยงสองค่าที่แบบจำลองรับ พร้อมอัตราส่วนและผลต่างของทั้งสอง

โค้ด R transport.R
# Keep the trial's risk ratio; change how common the complication is on usual care A.
rr <- (8 / 66) / (13 / 60)
risk_a <- c(rare = 0.01, trial = 13 / 60, common = 0.60)
odds_ratio <- rr * (1 - risk_a) / (1 - rr * risk_a)
cat("Risk on A (%):", sprintf("%.2f", 100 * risk_a), "\n")
cat("Risk ratio:", sprintf("%.2f", rr), " odds ratio at each:", sprintf("%.2f", odds_ratio), "\n")
cat("Risk on C at each (%):", sprintf("%.2f", 100 * rr * risk_a), "\n")
cat("1 minus the risk on A (%):", sprintf("%.2f", 100 * (1 - risk_a)), "\n")
cat("1 minus the risk on C (%):", sprintf("%.2f", 100 * (1 - rr * risk_a)), "\n")
or_trial <- odds_ratio[["trial"]]
cat("Odds on C, and 1 plus them:", sprintf("%.3f", or_trial * 13 / 47 + 0:1), "\n")
back <- or_trial / (1 - risk_a[["trial"]] + risk_a[["trial"]] * or_trial)
cat("Risk ratio recovered from the trial's odds ratio:", sprintf("%.2f", back), "\n")
ผลลัพธ์จากการรัน transport.log
Risk on A (%): 1.00 21.67 60.00
Risk ratio: 0.56  odds ratio at each: 0.56 0.50 0.34
Risk on C at each (%): 0.56 12.12 33.57
1 minus the risk on A (%): 99.00 78.33 40.00
1 minus the risk on C (%): 99.44 87.88 66.43
Odds on C, and 1 plus them: 0.138 1.138
Risk ratio recovered from the trial's odds ratio: 0.56
ไล่ตัวเลขการเลื่อนของอัตราส่วนออดส์ที่ความเสี่ยงในการดูแลตามปกติสามระดับ เมื่อคง risk ratio ไว้ที่ 0.56 และการย้อนกลับเป็น risk ratio

การรวมกลุ่มทำให้อัตราส่วนออดส์เปลี่ยนได้

อ่านก่อนในเว็บไซต์นี้: เหตุใดอัตราส่วนออดส์จึงเปลี่ยนเมื่อจัดกลุ่มผู้ป่วยต่างไป แม้ไม่มีการกวนเลย มีสอนไว้แล้วใน กลุ่มประชากรเดียวกัน แต่ Odds Ratio สองค่า: Non-Collapsibility ที่ไม่มีตัวกวนเกี่ยวข้อง ในที่นี้เราเก็บไว้เพียงตัวอย่างเดียวที่แบบจำลองเศรษฐศาสตร์ต้องใช้

รายงานการทดลองที่คณะกรรมการได้รับยังให้อัตราส่วนออดส์ที่ปรับตามความรุนแรงของโรคมาด้วย และค่านี้ต่างจาก 0.50 ของเราซึ่งไม่ได้ปรับ คือเปรียบเทียบสองกลุ่มตามที่เป็นอยู่ การสุ่มทำให้ความรุนแรงกระจายเท่ากันระหว่าง C กับ A จึงไม่มีปัจจัยที่สามใดบิดเบือนการเปรียบเทียบ คือไม่มีการกวน (confounding) ช่องว่างนี้มาจากตัวอัตราส่วนออดส์เอง ดังที่การทดลองสมมติต่อไปนี้แสดง

นึกถึงการทดลองที่มีผู้ป่วยอาการน้อยและอาการหนักจำนวนเท่ากัน ในกลุ่มการดูแลตามปกติ ผู้ป่วยอาการน้อย 20% และผู้ป่วยอาการหนัก 80% เกิดภาวะแทรกซ้อนภายในหนึ่งปี สมมติว่า C ลดออดส์ลงครึ่งหนึ่งในแต่ละกลุ่ม ผู้ป่วยอาการน้อยที่ได้ C จะมีความเสี่ยง 11.11% และผู้ป่วยอาการหนักมีความเสี่ยง 66.67%

อัตราส่วนออดส์ของแต่ละกลุ่มคือ 0.50 เมื่อรวมสองกลุ่มเข้าด้วยกัน ความเสี่ยงเฉลี่ยเป็น 50.00% ในกลุ่มการดูแลตามปกติ และ 38.89% ในกลุ่ม C อัตราส่วนออดส์ของทั้งการทดลองจึงเป็น 0.64 ซึ่งอยู่นอกช่วงของกลุ่มย่อยของตัวเอง

risk ratio และผลต่างความเสี่ยงยังอยู่ระหว่างค่าของกลุ่มย่อย risk ratio ของแต่ละกลุ่มคือ 0.56 และ 0.83 ให้ 0.78 สำหรับทั้งการทดลอง ส่วนผลต่างความเสี่ยง -8.89 และ -13.33 จุดร้อยละ ให้ -11.11 ซึ่งอยู่กึ่งกลางพอดีเพราะสองกลุ่มมีขนาดเท่ากัน

คุณสมบัตินี้เรียกว่าการยุบรวมไม่ได้ (non-collapsibility) คืออัตราส่วนออดส์ของประชากรทั้งหมดไม่จำเป็นต้องเท่ากับ หรือแม้แต่อยู่ระหว่างอัตราส่วนออดส์ของกลุ่มย่อย [2] อัตราส่วนออดส์ที่ไม่ได้ปรับกับที่ปรับแล้วจึงตอบคำถามต่างกัน และช่องว่างระหว่างสองค่าไม่ได้เป็นหลักฐานของการกวนด้วยตัวเอง (ความบังเอิญ อคติ และปัจจัยกวน: เหตุใดความสัมพันธ์ที่พบจึงยังไม่ใช่ผลของการรักษา) สำหรับแบบจำลอง การรวมอัตราส่วนออดส์ที่ปรับแล้วจากหลายการทดลองจึงเป็นการผสมคำถามเหล่านั้นเข้าด้วยกัน ส่วนความเสี่ยง อัตราส่วนความเสี่ยง และผลต่างความเสี่ยงไม่มีปัญหานี้

อ่านไปตามแต่ละแถว: ลูกศรสีน้ำเงินชี้จากการดูแลตามปกติ A ไปยัง C ทั้งสองกลุ่มมีอัตราส่วนออดส์ 0.50 แต่ทั้งการทดลองมี 0.64 ซึ่งอยู่นอกทั้งสองค่า ขณะที่ผลต่างความเสี่ยงและ risk ratio ของทั้งการทดลองอยู่ระหว่างค่าของสองกลุ่ม แปลว่าการรวมกลุ่มเพียงอย่างเดียวทำให้อัตราส่วนออดส์เปลี่ยน
โค้ด R strata.R
# An imagined trial: equal mild and severe groups, and C halves the odds in each group.
risk_a <- c(mild = 0.20, severe = 0.80)
risk_c <- 0.50 * risk_a / (1 - risk_a + 0.50 * risk_a)
cat("Risk on C, mild and severe (%):", sprintf("%.2f", 100 * risk_c), "\n")
cat("Risk ratio, mild and severe:", sprintf("%.2f", risk_c / risk_a), "\n")
cat("Risk difference, mild and severe (points):", sprintf("%.2f", 100 * (risk_c - risk_a)), "\n")
whole <- c(A = mean(risk_a), C = mean(risk_c))
odds <- whole / (1 - whole)
cat("Whole trial, risk on A and on C (%):", sprintf("%.2f", 100 * whole), "\n")
cat("Whole trial odds ratio:", sprintf("%.2f", odds[["C"]] / odds[["A"]]), "\n")
cat("Whole trial risk ratio:", sprintf("%.2f", whole[["C"]] / whole[["A"]]), "\n")
rd_whole <- whole[["C"]] - whole[["A"]]
cat("Whole trial risk difference (points):", sprintf("%.2f", 100 * rd_whole), "\n")
ผลลัพธ์จากการรัน strata.log
Risk on C, mild and severe (%): 11.11 66.67
Risk ratio, mild and severe: 0.56 0.83
Risk difference, mild and severe (points): -8.89 -13.33
Whole trial, risk on A and on C (%): 50.00 38.89
Whole trial odds ratio: 0.64
Whole trial risk ratio: 0.78
Whole trial risk difference (points): -11.11
ไล่ตัวเลขของการทดลองสมมติ: ความเสี่ยงและมาตรวัดของแต่ละกลุ่ม แล้วจึงของทั้งการทดลอง

การทดลองเล็ก ๆ หนึ่งการทดลองแน่นอนแค่ไหน

จนถึงตอนนี้ ตัวเลขทุกตัวมาจากการทดลองขนาดเล็กเพียงหนึ่งการทดลอง ถ้าทดสอบการรักษาเดิมกับผู้ป่วยอีก 66 และ 60 คน จำนวนที่นับได้จะต่างไปตามโอกาส และคำตอบทุกค่าก็จะต่างไปด้วย ช่วงความเชื่อมั่น (confidence interval) บอกว่าต่างได้มากเพียงใด คือช่วงของผลที่เข้ากันได้กับข้อมูลของการทดลอง ซึ่งมักใช้ระดับ 95%

อัตราส่วนต้องมีอีกหนึ่งขั้น อัตราส่วนมีค่าต่ำกว่า 0 ไม่ได้ และการลดความเสี่ยงลงครึ่งหนึ่งเป็นก้าวที่ห่างจาก 1 เท่ากับการเพิ่มความเสี่ยงเป็นสองเท่า จึงสร้างช่วงบนสเกลลอการิทึม ซึ่งสองขั้นนี้ยาวเท่ากัน แล้วค่อยแปลงกลับ ขั้นตอนคำนวณด้านล่างสร้างช่วงของ risk ratio ก่อน แล้วจึงสร้างช่วงของผลต่างความเสี่ยง

ช่วงความเชื่อมั่น 95% ของการทดลอง ทีละขั้น

ทุกขั้นตรวจด้วยเครื่องคิดเลขได้จากตัวเลขที่แสดงในขั้นนั้น

  1. หาลอการิทึมของ risk ratio

    \[ \ln 0.56 = -0.58 \]

    ln คือลอการิทึมธรรมชาติ และการยก e กำลังค่านั้นคือการย้อนกลับ ซึ่งใช้ในขั้นที่ 4 บนสเกลลอการิทึม ค่าที่ไม่มีผลคือ 0 แทนที่จะเป็น 1

  2. หาความคลาดเคลื่อนมาตรฐาน

    \[ SE = \sqrt{\tfrac{1}{8}-\tfrac{1}{66}+\tfrac{1}{13}-\tfrac{1}{60}} = 0.412 \]

    ความคลาดเคลื่อนมาตรฐาน (standard error, SE) คือขนาดโดยทั่วไปของความคลาดเคลื่อนจากโอกาสในค่าประมาณ คำนวณจากจำนวนสี่ค่า และจำนวนที่น้อยกว่าให้ความคลาดเคลื่อนมากกว่า

  3. ขยับออกไปข้างละ 1.96 เท่าของความคลาดเคลื่อนมาตรฐาน

    \[ 1.96 \times 0.412 = 0.81, \quad -0.58 \pm 0.81 = -1.39 \;\text{to}\; 0.23 \]

    ถ้าทำการทดลองซ้ำหลายครั้ง ช่วงที่สร้างด้วยวิธีนี้จะครอบค่าจริงได้ 95 ครั้งในทุก 100 ครั้ง

  4. แปลงกลับ

    \[ e^{-1.39} = 0.25, \quad e^{0.23} = 1.26 \]

    ช่วงของ risk ratio คือ 0.25 ถึง 1.26 ซึ่งรวมค่า 1 อยู่ด้วย การทดลองนี้จึงตัดความเป็นไปได้ที่ C ไม่ได้ผลเลยหรือมีโทษบ้างออกไปไม่ได้

  5. หาค่า p

    \[ z = \frac{0.58}{0.412} = 1.41, \quad p = 0.16 \]

    z คือจำนวนเท่าของความคลาดเคลื่อนมาตรฐานที่ลอการิทึมของ risk ratio อยู่ห่างจาก 0 ถ้า C ไม่ได้ผลเลย การทดลองขนาดนี้จะได้ผลที่ห่างจาก risk ratio เท่ากับ 1 อย่างน้อยเท่านี้ราว 16 ครั้งใน 100 ครั้ง ความบังเอิญเพียงอย่างเดียวจึงทำให้เกิดผลแบบนี้ได้ง่าย

  6. หา 1.96 เท่าของความคลาดเคลื่อนมาตรฐานของผลต่างความเสี่ยง

    \[ 1.96 \times 100\sqrt{\tfrac{8 \times 58}{66^3}+\tfrac{13 \times 47}{60^3}} = 13.064 \]

    แต่ละกลุ่มให้ค่าความเสี่ยงคูณหนึ่งลบความเสี่ยง หารด้วยขนาดกลุ่ม (ในที่นี้เขียนด้วยจำนวนผู้ป่วย) บวกสองค่านี้แล้วถอดรากที่สอง จะได้ความคลาดเคลื่อนมาตรฐานของผลต่างเป็นจุดร้อยละ แล้วคูณด้วย 1.96

  7. สร้างช่วงของผลต่างความเสี่ยงโดยตรง

    \[ -9.545 \pm 13.064 = -22.609 \;\text{to}\; 3.519 \]

    ผลต่างเป็นได้ทั้งค่าลบและค่าบวก จึงไม่ต้องใช้สเกลลอการิทึม ใช้ผลต่างที่ยังไม่ปัดเศษ คือ -9.545 จุดร้อยละ เพื่อให้ขอบของช่วงตรงพอดี ตั้งแต่ภาวะแทรกซ้อนน้อยลง 22.609 ครั้ง ถึงมากขึ้น 3.519 ครั้งต่อผู้ป่วย 100 คน

  8. แปลงขอบของช่วงเป็นจำนวนผู้ป่วย

    \[ \frac{100}{22.609} = 4.42, \quad \frac{100}{3.519} = 28.42 \]

    ที่ปลายด้านดี รักษาผู้ป่วย 4.42 คนป้องกันภาวะแทรกซ้อนได้หนึ่งครั้ง ที่ปลายอีกด้าน C ทำให้เกิดภาวะแทรกซ้อนเพิ่มหนึ่งครั้งทุก ๆ 28.42 คนที่ได้รับการรักษา

ผลลัพธ์: ค่าประมาณที่ดีที่สุดเอื้อ C แต่ช่วงกว้างตั้งแต่ประโยชน์มากไปจนถึงโทษบางส่วน ช่วงของอัตราส่วนออดส์ 0.19 ถึง 1.30 กว้างกว่านั้นอีกและรวมค่า 1 ด้วย

นี่เป็นช่วงแบบตัวอย่างขนาดใหญ่ที่ใช้กันทั่วไป เมื่อจำนวนน้อยมาก วิธีแบบแม่นตรงจะปลอดภัยกว่า

อ่านช่วงของ NNT

ช่วงของ NNT ต้องระวัง เพราะช่วงของผลต่างความเสี่ยงคร่อม 0 NNT จึงอยู่ระหว่าง 4.42 ถึงอนันต์ในด้านประโยชน์ และ 28.42 ถึงอนันต์ในด้านโทษ ควรรายงานแบบนั้น คือจำนวนที่ต้องรักษาเพื่อให้เกิดประโยชน์ (NNTB) และจำนวนที่ต้องรักษาจนเกิดโทษ (NNTH) การรายงาน NNT ติดลบค่าเดียวจะซ่อนการเปลี่ยนทิศทางไว้ [5]

ขอบของช่วงแสดงแบบยังไม่ปัดเศษเพื่อให้ตามการคำนวณได้ ถ้าปัดขึ้นแบบเดียวกับ NNT 11 จะได้ NNTB 5 และ NNTH 29

โค้ด R interval.R
# How sure is the trial? 95% intervals for the risk ratio, odds ratio and risk difference (points).
risk <- c(C = 8 / 66, A = 13 / 60)
log_rr <- log(risk[["C"]] / risk[["A"]])
se <- c(rr = sqrt(1 / 8 - 1 / 66 + 1 / 13 - 1 / 60), or = sqrt(1 / 8 + 1 / 58 + 1 / 13 + 1 / 47))
cat(sprintf("Log risk ratio: %.2f  standard error (SE): %.3f\n", log_rr, se[["rr"]]))
ends <- log_rr + c(-1.96, 1.96) * se[["rr"]]
cat("1.96 x SE:", sprintf("%.2f", 1.96 * se[["rr"]]), " limits:", sprintf("%.2f", ends), "\n")
cat("Risk ratio limits:", sprintf("%.2f", exp(ends)), "\n")
cat("OR limits:", sprintf("%.2f", exp(log(8 * 47 / (58 * 13)) + c(-1.96, 1.96) * se[["or"]])), "\n")
rd <- 100 * c(risk[["C"]] - risk[["A"]], sqrt(sum(risk * (1 - risk) / c(66, 60))))
cat(sprintf("Risk difference: %.3f  SE: %.3f  1.96 x SE: %.3f\n", rd[1], rd[2], 1.96 * rd[2]))
lims <- rd[1] + c(-1.96, 1.96) * rd[2]
cat("Limits:", sprintf("%.3f", lims), " NNT from:", sprintf("%.2f", c(-100, 100) / lims), "\n")
ผลลัพธ์จากการรัน interval.log
Log risk ratio: -0.58  standard error (SE): 0.412
1.96 x SE: 0.81  limits: -1.39 0.23
Risk ratio limits: 0.25 1.26
OR limits: 0.19 1.30
Risk difference: -9.545  SE: 6.665  1.96 x SE: 13.064
Limits: -22.609 3.519  NNT from: 4.42 28.42
ไล่ตัวเลขช่วงความเชื่อมั่น: ลอการิทึมของ risk ratio ความคลาดเคลื่อนมาตรฐานและขอบของช่วง ขอบของ risk ratio และอัตราส่วนออดส์ ผลต่างความเสี่ยงที่ยังไม่ปัดเศษพร้อมขอบของช่วง และ NNT สองด้าน
โค้ด R pvalue.R
# The p value for the risk ratio: how many standard errors the log risk ratio sits from 0.
log_rr <- log((8 / 66) / (13 / 60))
se <- sqrt(1 / 8 - 1 / 66 + 1 / 13 - 1 / 60)
z <- abs(log_rr) / se
cat("z, the log risk ratio in standard errors from 0:", sprintf("%.2f", z), "\n")
cat("Two-sided p:", sprintf("%.2f", 2 * pnorm(-z)), "\n")
ผลลัพธ์จากการรัน pvalue.log
z, the log risk ratio in standard errors from 0: 1.41
Two-sided p: 0.16
ที่มาของค่า p: ลอการิทึมของ risk ratio อยู่ห่างจาก 0 กี่เท่าของความคลาดเคลื่อนมาตรฐาน และค่า p แบบสองทาง
แถบเลื่อนเริ่มที่จำนวนของการทดลอง: 8 จาก 66 คนในกลุ่ม C และ 13 จาก 60 คนในกลุ่มการดูแลตามปกติ ลองเพิ่มขนาดของทั้งสองกลุ่มและจำนวนภาวะแทรกซ้อนตามสัดส่วนเดิม แล้วดูช่วงของ risk ratio แคบลงจนอยู่ต่ำกว่า 1 และช่วงของ NNT ไม่แยกเป็นสองด้านอีก แสดงว่าช่วงแคบลงเมื่อเห็นผลแบบเดิมในผู้ป่วยจำนวนมากขึ้น ถ้าคงขนาดกลุ่มไว้แล้วเพิ่มจำนวนภาวะแทรกซ้อนของทั้งสองกลุ่ม อัตราส่วนออดส์จะห่างจาก risk ratio มากขึ้น

แบบจำลองเศรษฐศาสตร์ต้องการอะไร

แบบจำลองของคณะกรรมการไม่ได้รับอัตราส่วน แต่รับโอกาสที่ผู้ป่วยหนึ่งคนจะเกิดภาวะแทรกซ้อนภายในหนึ่งปีของแต่ละทางเลือก แล้วใช้ค่านั้นนับภาวะแทรกซ้อน ต้นทุน และสุขภาพ ผลของการรักษาจึงต้องแปลงกลับเป็นความเสี่ยงสำหรับผู้ป่วยของอำเภอ

ถ้าผู้ป่วยของอำเภอคล้ายผู้ป่วยในการทดลอง ก็ใช้ความเสี่ยงของการทดลองได้เลย แต่ข้อมูลของอำเภออาจแสดงว่าภาวะแทรกซ้อนในการดูแลตามปกติพบน้อยกว่า เช่น 10.00% ภายในหนึ่งปี อัตราส่วนมักใช้ข้ามกลุ่มได้ดีกว่าผลต่าง แม้นั่นเป็นข้อสมมติที่ต้องตรวจ ไม่ใช่สิ่งที่รับประกันได้ วิธีที่ใช้กันทั่วไปจึงเป็นการนำ risk ratio ของการทดลองไปใช้กับความเสี่ยงของอำเภอเอง [6]

ภาวะแทรกซ้อนที่เลี่ยงได้ในผู้ป่วยใหม่ 100 คนต่อปีของอำเภอ

การรักษาเดียวกันและ risk ratio เดียวกัน ใช้กับความเสี่ยงในการดูแลตามปกติของการทดลองก่อน แล้วจึงใช้กับความเสี่ยงของอำเภอ แต่ละขั้นใช้ค่าที่ยังไม่ปัดเศษ เครื่องคิดเลขที่ใช้ค่าที่ปัดแล้วจึงอาจต่างกันในหลักสุดท้าย

  1. ที่ความเสี่ยงใน A ของการทดลอง

    \[ 100 \times (21.67\% - 12.12\%) = 9.55 \]

    เลี่ยงภาวะแทรกซ้อนได้ 9.55 ครั้งต่อปี และ NNT เท่ากับ 11

  2. การอ่านผิด: ถือว่า 0.50 ลดความเสี่ยงครึ่งหนึ่ง

    \[ \tfrac{1}{2} \times \tfrac{13}{60} = 10.83\% \]

    ความเสี่ยงในกลุ่ม C จะเป็น 10.83% จึงเลี่ยงภาวะแทรกซ้อนได้ 10.83 ครั้งต่อผู้ป่วย 100 คนต่อปี เพราะการลดครึ่งหนึ่งตัดออกเท่ากับที่เหลือ ซึ่งมากกว่าที่ตารางรองรับ

  3. ที่ความเสี่ยงใน A ของอำเภอ

    \[ 100 \times 10.00\% = 10.00 \]

    ภาวะแทรกซ้อน 10.00 ครั้งต่อปีเมื่อได้การดูแลตามปกติ

  4. นำ risk ratio มาใช้

    \[ 10.00 \times \frac{12.12}{21.67} = 5.59 \]

    เมื่อได้ C เกิดภาวะแทรกซ้อน 5.59 ครั้งต่อปี

  5. นับสิ่งที่ C ช่วยให้เลี่ยงได้

    \[ 10.00 - 5.59 = 4.41, \quad \left\lceil \frac{100}{4.41} \right\rceil = 23 \]

    เลี่ยงภาวะแทรกซ้อนได้ 4.41 ครั้งต่อปี และ NNT เท่ากับ 23

ผลลัพธ์: การรักษาเดียวกัน risk ratio เดียวกัน: เลี่ยงภาวะแทรกซ้อนได้ 9.55 ครั้งต่อปีที่ความเสี่ยงของการทดลอง และ 4.41 ครั้งที่ความเสี่ยงของอำเภอ NNT เพิ่มจาก 11 เป็น 23

ค่า 10.00% ของอำเภอเป็นตัวเลขสมมติ แบบจำลองจริงต้องใช้ค่าจากข้อมูลของพื้นที่

ความเสี่ยงสองค่าเข้าไปในแบบจำลอง

แบบจำลองเศรษฐศาสตร์จึงรับความเสี่ยงสองค่า คือ 10.00% ในการดูแลตามปกติ และ 5.59% เมื่อได้ C ไม่ใช่อัตราส่วน และไม่ใช่ NNT ของการทดลอง การนำ NNT 11 จากการทดลองมาใช้โดยตรงจะทำให้ประโยชน์ดูมากเกินจริงราวสองเท่าของที่ C ทำได้จริงในอำเภอนี้ ส่วนคำถามว่า risk ratio ของการทดลองใช้กับอำเภอได้หรือไม่ ก็เป็นการตัดสินเรื่องผู้ป่วย การดูแล และนิยามของภาวะแทรกซ้อนในตัวเอง [6]

นำความไม่แน่นอนเข้าไปในแบบจำลอง

ตัวเลข 4.41 ของอำเภออาศัย risk ratio ซึ่งการทดลองยังไม่แน่ใจ แบบจำลองที่รับเพียง 0.56 จะทำงานเหมือนการทดลองแน่นอน วิธีที่ตรงไปตรงมาคือรันแบบจำลองหลายครั้ง แต่ละครั้งใช้ risk ratio ที่เป็นไปได้ต่างกัน ผลจึงเป็นสัดส่วนของรอบ ไม่ใช่ตัวเลขเดียว

การสุ่มทำบนสเกลลอการิทึม ซึ่งช่วงความเชื่อมั่นสมมาตร แต่ละรอบสุ่มค่าลอการิทึมของ risk ratio จากการกระจายรูประฆังที่มีศูนย์กลาง -0.58 และส่วนเบี่ยงเบนมาตรฐาน 0.412 ซึ่งคือความคลาดเคลื่อนมาตรฐานจากขั้นตอนคำนวณ แล้วแปลงกลับ ค่าที่สุ่มได้ส่วนใหญ่อยู่ใกล้ 0.56 และ 95 ใน 100 ค่าอยู่ระหว่าง 0.25 ถึง 1.26 ซึ่งเป็นช่วงเดิม เมื่อแปลงกลับแล้วไม่มีค่าใดต่ำกว่าศูนย์

ลองนำขอบทั้งสองของช่วงนี้มาใช้กับตัวเลขของอำเภอ ที่ความเสี่ยง 10.00% ในการดูแลตามปกติของอำเภอ risk ratio 0.25 จะเลี่ยงภาวะแทรกซ้อนได้ 7.51 ครั้งต่อผู้ป่วย 100 คนต่อปี ส่วน risk ratio 1.26 จะเพิ่มภาวะแทรกซ้อน 2.56 ครั้ง (ทั้งสองค่าคำนวณจากขอบของช่วงที่ยังไม่ปัดเศษ) ตัวเลข 4.41 ของแบบจำลองจึงอยู่ในช่วงที่มีตั้งแต่ประโยชน์ชัดเจนไปจนถึงโทษบางส่วน

เส้นโค้งรูประฆังมีพื้นที่ 7.95% อยู่เหนือ 0 บนสเกลลอการิทึม ซึ่งตรงกับ risk ratio เท่ากับ 1 ดังนั้นในราว 8 รอบจาก 100 รอบ risk ratio ที่สุ่มได้จะมากกว่า 1 คือ C ทำให้เกิดภาวะแทรกซ้อนมากกว่าการดูแลตามปกติ และแบบจำลองจะนับต้นทุนของโทษนั้นแทนที่จะสมมติว่าไม่มีทางเกิด

การนำช่วงความเชื่อมั่นเข้าไปในแบบจำลองช่วยกระจายความไม่แน่นอนของการทดลองไปถึงการตัดสินใจ แต่ไม่ได้ซ่อมการทดลองที่มีความเอนเอียง [6] ฝึกคำนวณคำตอบทั้งสี่แบบและช่วงความเชื่อมั่นได้ที่ econclinicalepidem

โค้ด R district.R
# The district's input: 100 new patients a year, the trial's risk ratio, two risks on A.
patients <- 100
rr <- (8 / 66) / (13 / 60)
risk_a <- c(trial = 13 / 60, district = 0.10)
cat("Complications a year on A:", sprintf("%.2f", patients * risk_a), "\n")
cat("Complications a year on C:", sprintf("%.2f", patients * risk_a * rr), "\n")
cat("Avoided a year:", sprintf("%.2f", patients * risk_a * (1 - rr)), "\n")
cat("NNT, rounded up:", ceiling(1 / (risk_a * (1 - rr))), "\n")
sd_log <- sqrt(1 / 8 - 1 / 66 + 1 / 13 - 1 / 60)
limits <- exp(log(rr) + c(-1.96, 1.96) * sd_log)
cat("District, avoided at the limits:", sprintf("%.2f", patients * 0.10 * (1 - limits)), "\n")
above_1 <- pnorm(0, mean = log(rr), sd = sd_log, lower.tail = FALSE)
cat("Bell-curve area above a risk ratio of 1 (%):", sprintf("%.2f", 100 * above_1), "\n")
ผลลัพธ์จากการรัน district.log
Complications a year on A: 21.67 10.00
Complications a year on C: 12.12 5.59
Avoided a year: 9.55 4.41
NNT, rounded up: 11 23
District, avoided at the limits: 7.51 -2.56
Bell-curve area above a risk ratio of 1 (%): 7.95
ไล่ตัวเลขข้อมูลนำเข้าของอำเภอ: ภาวะแทรกซ้อนต่อปีเมื่อได้ A และ C ที่ความเสี่ยงสองระดับ จำนวนที่เลี่ยงได้ NNT ช่วงของอำเภอที่ขอบทั้งสองของช่วงความเชื่อมั่น และพื้นที่ใต้เส้นโค้งรูประฆังที่เกิน 1

คำศัพท์ที่เราใช้

Risk (ความเสี่ยง)
สัดส่วนของกลุ่มที่เกิดเหตุการณ์ภายในเวลาที่ระบุ เช่น 8 จาก 66 คน หรือ 12.12% ภายในหนึ่งปี
Risk difference (ผลต่างความเสี่ยง)
ความเสี่ยงหนึ่งลบอีกความเสี่ยงหนึ่ง หน่วยเป็นจุดร้อยละ ในที่นี้คือภาวะแทรกซ้อนน้อยลง 9.55 ครั้งต่อผู้ป่วย 100 คน
NNT, NNTB, NNTH (จำนวนที่ต้องรักษา)
จำนวนผู้ป่วยที่ต้องรักษาในเวลาที่ระบุเพื่อป้องกันเหตุการณ์หนึ่งครั้ง (NNTB) หรือจนเกิดเหตุการณ์เพิ่มหนึ่งครั้ง (NNTH)
Risk ratio (อัตราส่วนความเสี่ยง)
ความเสี่ยงหนึ่งหารด้วยอีกความเสี่ยงหนึ่ง 0.56 หมายถึง C เหลือความเสี่ยง 0.56 เท่าของการดูแลตามปกติ
Odds (ออดส์)
จำนวนผู้ที่เกิดเหตุการณ์หารด้วยจำนวนผู้ที่ไม่เกิด เช่น 8 ต่อ 58 หรือ 0.138
Odds ratio (อัตราส่วนออดส์)
ออดส์ของกลุ่มหนึ่งหารด้วยออดส์ของอีกกลุ่ม อยู่ห่างจาก 1 มากกว่า risk ratio เมื่อเหตุการณ์พบบ่อย
Person-time (เวลาติดตามรวม)
เวลาติดตามของผู้ป่วยทุกคนในกลุ่มรวมกัน นับเป็นคน-ปี เช่น 62.0 คน-ปีในกลุ่ม C
Incidence rate ratio (IRR) (อัตราส่วนอัตราอุบัติการณ์)
อัตราอุบัติการณ์หนึ่ง คือจำนวนเหตุการณ์ต่อเวลาติดตามรวม หารด้วยอีกอัตราหนึ่ง ในที่นี้คือ 0.53 ซึ่งอยู่ระหว่าง risk ratio กับอัตราส่วนออดส์
Confidence interval (ช่วงความเชื่อมั่น)
ช่วงของผลที่เข้ากันได้กับข้อมูลที่ระดับที่ระบุ โดยทั่วไปคือ 95%
Non-collapsibility (การยุบรวมไม่ได้)
อัตราส่วนออดส์ของทั้งกลุ่มอาจต่างจากอัตราส่วนออดส์ของกลุ่มย่อยได้แม้ไม่มีการกวน

เอกสารอ้างอิง

  1. Zhang J, Yu KF. What is the relative risk? A method of correcting the odds ratio in cohort studies of common outcomes. JAMA. 1998;280(19):1690-1691. doi:10.1001/jama.280.19.1690
  2. Greenland S. Model-based estimation of relative risks and other epidemiologic measures in studies of common outcomes and in case-control studies. Am J Epidemiol. 2004;160(4):301-305. doi:10.1093/aje/kwh221
  3. 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
  4. Muller CJ, MacLehose RF. Estimating predicted probabilities from logistic regression: different methods correspond to different target populations. Int J Epidemiol. 2014;43(3):962-970. doi:10.1093/ije/dyu029
  5. Altman DG. Confidence intervals for the number needed to treat. BMJ. 1998;317(7168):1309-1312. doi:10.1136/bmj.317.7168.1309
  6. Briggs A, Claxton K, Sculpher M. Decision Modelling for Health Economic Evaluation. Oxford: Oxford University Press; 2006. ISBN 9780198526629

ลำดับการเรียนในชุดนี้

  1. คู่มือชุดบทความเศรษฐศาสตร์สุขภาพ: อ่านหลักฐานก่อนอ่านต้นทุน
  2. อุบัติการณ์ ความชุก และตัวหารที่ถูกต้อง: ระบาดวิทยาเบื้องหลังต้นทุนความเจ็บป่วยและแบบจำลองมาร์คอฟ
  3. รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง
  4. อัตราส่วนความเสี่ยง อัตราส่วนออดส์ ผลต่างความเสี่ยง และจำนวนที่ต้องรักษา: ตารางสองคูณสองเดียว คำตอบสี่แบบ (บทความนี้)
  5. อัตราส่วนฮาซาร์ดไม่ใช่อัตราส่วนความเสี่ยง: ข้อสมมติความเป็นสัดส่วนของฮาซาร์ด เวลารอดชีพเฉลี่ยแบบจำกัดช่วง และข้อมูลนำเข้าแบบจำลอง
  6. ความบังเอิญ อคติ และปัจจัยกวน: เหตุใดความสัมพันธ์ที่พบจึงยังไม่ใช่ผลของการรักษา
  7. พ้นจากพีระมิดหลักฐาน: ระดับความเชื่อมั่นตามแนวทาง GRADE และการเลือกข้อมูลประสิทธิผลเข้าสู่แบบจำลองทางเศรษฐศาสตร์
  8. จากความไวสู่ต้นทุนต่อผู้ป่วยหนึ่งรายที่ตรวจพบ: ค่าทำนายผลบวก ความชุก และเศรษฐศาสตร์ของการคัดกรอง
  9. ต้นทุนของใคร ณ ปีใด: มุมมองการวิเคราะห์ ต้นทุนค่าเสียโอกาส การปรับค่าเงินเฟ้อ และการปรับลดค่าตามเวลา
  10. ปีสุขภาวะ ปีสุขภาวะที่สูญเสีย และค่าอรรถประโยชน์: เรากำลังวัดอะไรกันแน่
  11. อัตราส่วนต้นทุนประสิทธิผลส่วนเพิ่มและระนาบต้นทุนประสิทธิผล: ทางเลือกที่ด้อยกว่า ผลประโยชน์สุทธิ และเกณฑ์ 160,000 บาทต่อปีสุขภาวะ
  12. ต้นไม้การตัดสินใจ แบบจำลองมาร์คอฟ และการวิเคราะห์ความไวเชิงความน่าจะเป็น: แบบจำลองแปลงหลักฐานเป็นการตัดสินใจได้อย่างไร
  13. คุ้มค่าไม่ได้แปลว่าจ่ายไหว มีประสิทธิภาพไม่ได้แปลว่าเป็นธรรม: ผลกระทบด้านงบประมาณและความเป็นธรรมทางสุขภาพ
  14. การคัดเลือกพารามิเตอร์ บัญชีต้นทุนอ้างอิง และฐานข้อมูลค่าอรรถประโยชน์เมื่อข้อมูลในประเทศมีจำกัด
  15. การประเมินเทคโนโลยีสุขภาพระยะเริ่มต้น เพดานราคาที่คุ้มค่า และการตัดสินใจชุดสิทธิประโยชน์
  16. การสื่อสารหลักฐานเศรษฐศาสตร์สุขภาพ: จากผลลัพธ์แบบจำลองสู่ข้อเสนอแนะเชิงนโยบาย

ประเด็นสำคัญ

  • ตารางเดียวให้คำตอบสี่แบบ: ภาวะแทรกซ้อนน้อยลง 9.55 ครั้งต่อผู้ป่วย 100 คนต่อปี NNT 11 risk ratio 0.56 และอัตราส่วนออดส์ 0.50
  • อัตราส่วนออดส์ 0.50 ไม่ได้แปลว่าลดความเสี่ยงได้ 50% เมื่อผู้ป่วยที่ได้การดูแลตามปกติหนึ่งในห้าคนเกิดเหตุการณ์
  • การรวมกลุ่มเปลี่ยนอัตราส่วนออดส์ได้ ในที่นี้จาก 0.50 เป็น 0.64 โดยไม่มีการกวนเลย
  • เก็บช่วงความเชื่อมั่นไว้: ช่วง 0.25 ถึง 1.26 ของ risk ratio ไปถึงด้านโทษ และต้องเข้าแบบจำลองเป็นค่าที่สุ่มบนสเกลลอการิทึม
  • ให้ความเสี่ยงของผู้ป่วยเป้าหมายแก่แบบจำลอง: ที่ความเสี่ยง 10.00% ของอำเภอ C เลี่ยงภาวะแทรกซ้อนได้ 4.41 ครั้งต่อผู้ป่วย 100 คนต่อปี หรือ NNT 23

อ่านต่อในวิกิ: รูปแบบการศึกษา แบบจำลองทางสถิติ และเป้าหมายการประมาณค่า: แต่ละรูปแบบการศึกษาประมาณค่าอะไรได้จริง · อัตราส่วนฮาซาร์ดไม่ใช่อัตราส่วนความเสี่ยง: ข้อสมมติความเป็นสัดส่วนของฮาซาร์ด เวลารอดชีพเฉลี่ยแบบจำกัดช่วง และข้อมูลนำเข้าแบบจำลอง · พ้นจากพีระมิดหลักฐาน: ระดับความเชื่อมั่นตามแนวทาง GRADE และการเลือกข้อมูลประสิทธิผลเข้าสู่แบบจำลองทางเศรษฐศาสตร์ · อัตราส่วนต้นทุนประสิทธิผลส่วนเพิ่มและระนาบต้นทุนประสิทธิผล: ทางเลือกที่ด้อยกว่า ผลประโยชน์สุทธิ และเกณฑ์ 160,000 บาทต่อปีสุขภาวะ · หา Risk Ratio เมื่อผลลัพธ์พบบ่อย: ลำดับขั้นถอยลงเมื่อ Log-Binomial ชนกำแพง · Pooling 95% CI และ Effect Sizes: เมื่อไรควรใช้ Fixed-effect, Random-effects, Bootstrap และ Rubin's Rules · What Is Regression in Clinical Epidemiology? A Simple Guide to Risk Difference and Risk Ratio · Understanding Odds and Odds Ratios in Clinical Epidemiology · Risk Difference vs Odds Ratio in Logistic Regression: A Quick Stata User Guide (with Stata Cheats) · กลุ่มประชากรเดียวกัน แต่ Odds Ratio สองค่า: Non-Collapsibility ที่ไม่มีตัวกวนเกี่ยวข้อง

0
ถึงนักอ่านชาวไทยและต่างชาติทำความเข้าใจบริบททางการแพทย์ของผมอ่านต่อ →ถึงนักอ่านชาวไทยและต่างชาติทำความเข้าใจเนื้อหาของผมที่นอกเหนือจากการแพทย์อ่านต่อ →

ความคิดเห็น

ยังไม่มีความคิดเห็น มาเป็นคนแรกกันเลย

เข้าสู่ระบบเพื่อแสดงความคิดเห็น