ทำไม 1 ลบ Kaplan-Meier จึงประเมินความเสี่ยงสูงเกินจริงเมื่อผู้ป่วยอาจเสียชีวิตไปก่อน

Clinical Epidemiology ResearchMethodology and Research Design THUniqcret doctor knowledges TH
ทำไม 1 ลบ Kaplan-Meier จึงประเมินความเสี่ยงสูงเกินจริงเมื่อผู้ป่วยอาจเสียชีวิตไปก่อน
On this page

Read the English version

บทคัดย่อ

เมื่อผู้ป่วยอาจเสียชีวิตก่อนเกิดเหตุการณ์ที่สนใจ การเสียชีวิตไม่ใช่การเซ็นเซอร์ เพราะทำให้เหตุการณ์นั้นเกิดไม่ได้อีก ไม่ใช่เพียงสังเกตไม่เห็น 1 ลบ Kaplan-Meier (เส้นการรอดชีพตามปกติที่พลิกกลับเป็นความเสี่ยง โดยนับผู้เสียชีวิตเหมือนผู้ที่ขาดการติดตาม) ประมาณความเสี่ยงสมมติในโลกที่ไม่มีการเสียชีวิต ภายใต้ข้อสมมติที่ทดสอบไม่ได้ และไม่เคยต่ำกว่าความเสี่ยงจริง ความเสี่ยงจริงคืออุบัติการณ์สะสม (cumulative incidence function) ซึ่งประมาณด้วยตัวประมาณ Aalen-Johansen ที่ถ่วงสัดส่วนของแต่ละเหตุการณ์ด้วยสัดส่วนผู้ที่ยังปลอดเหตุการณ์ ในตัวอย่างคำนวณด้วยมือ ผู้ป่วย 20 จาก 100 คนเสียชีวิตก่อนมีใครกลับเป็นซ้ำ 1 ลบ Kaplan-Meier ให้ 12.5% และอุบัติการณ์สะสมให้ 10% ตัวอย่างคำนวณด้วยมืออีกชุดติดตามผู้ป่วยมะเร็งสิบสองคนนานถึง 12 เดือน อุบัติการณ์สะสมของการกลับเป็นซ้ำคือ 0.380 เทียบกับ 0.489 จาก 1 ลบ Kaplan-Meier ในการทดลองหัวใจล้มเหลวจำลองที่มีผู้ป่วย 1,500 คน 1 ลบ Kaplan-Meier ประเมินความเสี่ยงของการนอนโรงพยาบาลครั้งแรกสูงเกินจริงทั้งสองกลุ่ม บทความนี้แสดงวิธีคำนวณและตรวจสอบอุบัติการณ์สะสม เปรียบเทียบกลุ่มด้วยการทดสอบของ Gray และรายงานทั้งสองสาเหตุ


ภาพสรุป ข้อมูลจำลอง

ความเสี่ยงการกลับเป็นซ้ำที่ดูสูงเกินไป

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

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

การเซ็นเซอร์กับเหตุการณ์แข่งขันต่างกัน

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

หลังการเซ็นเซอร์ การกลับเป็นซ้ำยังเป็นไปได้แต่มองไม่เห็น หลังการเสียชีวิต การกลับเป็นซ้ำจะไม่เกิดขึ้นอีกเลย การนับการเสียชีวิตเป็นการเซ็นเซอร์จึงวาดอนาคตที่ผู้ป่วยไม่มีทางมี [1, 2]

ให้ $T$ เป็นเวลาจากการผ่าตัดถึงเหตุการณ์แรกของสองแบบ ฟังก์ชันอุบัติการณ์สะสม (cumulative incidence function) ของสาเหตุ $k$ เขียนเป็น $\mathrm{CIF}_k(t)$ คือความน่าจะเป็นที่เหตุการณ์แรกเป็นสาเหตุ $k$ และเกิดภายในเวลา $t$ ในที่นี้สาเหตุคือการกลับเป็นซ้ำ (R) และการเสียชีวิตก่อนการกลับเป็นซ้ำ (D) จึงได้ $\mathrm{CIF}_R(t)$ และ $\mathrm{CIF}_D(t)$ การรอดชีพปลอดเหตุการณ์จากทุกสาเหตุ (all-cause event-free survival) คือ $S(t) = P(T > t)$ ความน่าจะเป็นที่ยังมีชีวิตและยังไม่กลับเป็นซ้ำ ณ เวลา $t$

ตัวอย่างคำนวณด้วยมือ: ผู้ป่วยหนึ่งร้อยคน การเสียชีวิตเกิดก่อน

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

  1. อุบัติการณ์สะสม

    \[ \mathrm{CIF}_R = \frac{10}{100} = 10\% \]

    เมื่อไม่มีใครถูกเซ็นเซอร์ก่อนเหตุการณ์สุดท้าย ค่านี้คือสัดส่วนของกลุ่มตั้งต้นที่กลับเป็นซ้ำ

  2. 1 ลบ Kaplan-Meier นับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์

    \[ 1 - \mathrm{KM} = \frac{10}{80} = 12.5\% \]

    KM คือค่าประมาณ Kaplan-Meier ของการไม่กลับเป็นซ้ำ ค่านี้ตัดผู้เสียชีวิต 20 คนออกจากชุดเสี่ยง (risk set) คือผู้ป่วยที่ยังถูกติดตามและยังปลอดเหตุการณ์ ราวกับเป็นบันทึกที่หายไป จึงเหลือผู้เสี่ยงอยู่ 80 คน

  3. ส่วนต่าง

    \[ 12.5\% - 10\% = 2.5 \text{ percentage points} \]

    หน่วยของส่วนต่างคือจุดเปอร์เซ็นต์ ผู้เสียชีวิต 20 คนถูกปฏิบัติเสมือนเป็นผู้ป่วยที่ยังกลับเป็นซ้ำได้

ผลลัพธ์: 1 ลบ Kaplan-Meier ให้ 12.5% และอุบัติการณ์สะสมให้ 10% ความต่างนี้ตั้งอยู่บนข้อกำหนดว่าผู้เสียชีวิตทั้ง 20 คนเกิดก่อนการกลับเป็นซ้ำครั้งแรก

ลำดับของเหตุการณ์มีผลเฉพาะกับ 1 ลบ Kaplan-Meier ถ้าการกลับเป็นซ้ำบางครั้งเกิดก่อนการเสียชีวิตบางครั้ง ค่านี้จะอยู่ระหว่าง 10% กับ 12.5% และถ้าการกลับเป็นซ้ำทั้ง 10 ครั้งเกิดก่อน ค่านี้จะเท่ากับ 10% ส่วนอุบัติการณ์สะสมคงอยู่ที่ 10% ไม่ว่าลำดับจะเป็นอย่างไร เพราะเมื่อไม่มีใครถูกเซ็นเซอร์ก่อนเหตุการณ์สุดท้าย ค่านี้คือสัดส่วนธรรมดาของผู้ที่กลับเป็นซ้ำ

ตัวประมาณ Aalen-Johansen

กลุ่มผู้ป่วยจริงมีการเซ็นเซอร์ อุบัติการณ์สะสมจึงต้องใช้ตัวประมาณ ไม่ใช่สัดส่วนธรรมดา ตัวประมาณ Aalen-Johansen (Aalen-Johansen estimator) สร้างค่านี้ทีละเวลาที่เกิดเหตุการณ์ [1]

$$\widehat{\mathrm{CIF}}_k(t) = \sum_{t_j \le t} \hat S(t_{j-1})\,\frac{d_{kj}}{n_j}$$

เครื่องหมายหมวกแสดงค่าประมาณจากข้อมูล ผลรวมครอบคลุมเวลา $t_j$ ที่แตกต่างกันจนถึง $t$ ซึ่งมีเหตุการณ์แรกเกิดขึ้น ณ แต่ละเวลา $n_j$ คือจำนวนผู้ที่ยังปลอดเหตุการณ์และยังอยู่ในการติดตามก่อนเวลา $t_j$ (ชุดเสี่ยง) และ $d_{kj}$ คือจำนวนเหตุการณ์แรกของสาเหตุ $k$ ที่เวลา $t_j$

$\hat S(t_{j-1})$ คือการรอดชีพปลอดเหตุการณ์จากทุกสาเหตุหลังเวลาที่เกิดเหตุการณ์ครั้งก่อน โดย $\hat S(t_0) = 1$ ซึ่งเป็นค่าประมาณ Kaplan-Meier เองที่นับเหตุการณ์แรกทุกชนิดไม่ว่าสาเหตุใด แต่ละพจน์จึงเท่ากับสัดส่วนของกลุ่มที่ยังปลอดเหตุการณ์คูณด้วยสัดส่วนของชุดเสี่ยงที่เกิดเหตุการณ์สาเหตุ $k$ ผู้ป่วยที่ถูกเซ็นเซอร์เพียงออกจากชุดเสี่ยง โดยสมมติว่าความเสี่ยงในอนาคตของพวกเขาคล้ายกับผู้ที่ยังถูกติดตามอยู่

ทำไมความเสี่ยงของการเสียชีวิตจึงสำคัญ

ในเวลาต่อเนื่อง แนวคิดเดียวกันนี้แสดงว่าทำไมเหตุการณ์แข่งขันจึงเปลี่ยนความเสี่ยงของการกลับเป็นซ้ำ ฮาซาร์ด (hazard) คืออัตราการเกิดเหตุการณ์ ณ ขณะหนึ่งในผู้ป่วยที่ยังปลอดเหตุการณ์ ฮาซาร์ดเฉพาะสาเหตุ (cause-specific hazard) ของการกลับเป็นซ้ำ $\lambda_R(t)$ นับเฉพาะการกลับเป็นซ้ำ แล้วจะได้

$$\mathrm{CIF}_R(t) = \int_0^t S(u)\,\lambda_R(u)\,du$$

อุบัติการณ์สะสมรวมอัตราการกลับเป็นซ้ำตลอดเวลา โดยถ่วงด้วยสัดส่วนที่ยังมีชีวิตและยังไม่กลับเป็นซ้ำ การเสียชีวิตลด $S(u)$ ความเสี่ยงของการกลับเป็นซ้ำจึงขึ้นกับฮาซาร์ดของการเสียชีวิตด้วย ไม่ใช่เฉพาะฮาซาร์ดของการกลับเป็นซ้ำ [1, 3] การรักษาที่เพิ่มอัตราการเสียชีวิตอาจลดอุบัติการณ์สะสมของการกลับเป็นซ้ำได้ โดยฮาซาร์ดของการกลับเป็นซ้ำไม่เปลี่ยนเลย

ตัวอย่างคำนวณด้วยมือ: ผู้ป่วยสิบสองคน ทีละขั้น

ตัวอย่างคำนวณด้วยมือ ผู้ป่วยสิบสองคนถูกติดตามนานถึง 12 เดือนหลังผ่าตัดมะเร็ง เรียงตามลำดับ คือ เสียชีวิตเดือนที่ 2 กลับเป็นซ้ำเดือนที่ 3 ถูกเซ็นเซอร์เดือนที่ 4 เสียชีวิตเดือนที่ 5 กลับเป็นซ้ำเดือนที่ 6 และ 7 ถูกเซ็นเซอร์เดือนที่ 8 เสียชีวิตเดือนที่ 9 กลับเป็นซ้ำเดือนที่ 10 ถูกเซ็นเซอร์เดือนที่ 11 และถูกเซ็นเซอร์สองคนเดือนที่ 12 รวมเป็นการกลับเป็นซ้ำ 4 คน เสียชีวิตก่อนกลับเป็นซ้ำ 3 คน และถูกเซ็นเซอร์ 5 คน

  1. เดือนที่ 2: เสียชีวิต

    \[ \widehat{\mathrm{CIF}}_D = 1 \times \frac{1}{12} = 0.083 \]

    ทั้ง 12 คนเสี่ยงอยู่ และ $\hat S$ ลดลงเป็น $1 - \tfrac{1}{12} = 0.917$

  2. เดือนที่ 3: กลับเป็นซ้ำ

    \[ \widehat{\mathrm{CIF}}_R = \frac{11}{12} \times \frac{1}{11} = \frac{1}{12} = 0.083 \]

    มีผู้เสี่ยงอยู่สิบเอ็ดคน และ $\hat S$ ลดลงเป็น 0.833

  3. เดือนที่ 4: เซ็นเซอร์

    ผู้ป่วยหนึ่งคนออกจากชุดเสี่ยง และไม่มีค่าประมาณใดเปลี่ยน

  4. เดือนที่ 5: เสียชีวิต

    \[ \widehat{\mathrm{CIF}}_D = 0.083 + 0.833 \times \frac{1}{9} = 0.176 \]

    มีผู้เสี่ยงอยู่เก้าคน และ $\hat S$ ลดลงเป็น 0.741

  5. เดือนที่ 6: กลับเป็นซ้ำ

    \[ \widehat{\mathrm{CIF}}_R = 0.083 + 0.741 \times \frac{1}{8} = 0.176 \]

    มีผู้เสี่ยงอยู่แปดคน และ $\hat S$ ลดลงเป็น 0.648

  6. เดือนที่ 7: กลับเป็นซ้ำ

    \[ \widehat{\mathrm{CIF}}_R = 0.176 + 0.648 \times \frac{1}{7} = 0.269 \]

    มีผู้เสี่ยงอยู่เจ็ดคน และ $\hat S$ ลดลงเป็น 0.556

  7. เดือนที่ 8 และ 9: เซ็นเซอร์ แล้วเสียชีวิต

    \[ \widehat{\mathrm{CIF}}_D = 0.176 + 0.556 \times \frac{1}{5} = 0.287 \]

    เดือนที่ 9 มีผู้เสี่ยงอยู่ห้าคน และ $\hat S$ ลดลงเป็น 0.444

  8. เดือนที่ 10: กลับเป็นซ้ำ

    \[ \widehat{\mathrm{CIF}}_R = 0.269 + 0.444 \times \frac{1}{4} = 0.380 \]

    มีผู้เสี่ยงอยู่สี่คน และ $\hat S$ ลดลงเป็น 0.333 การเซ็นเซอร์เดือนที่ 11 และ 12 ไม่เปลี่ยนอะไร

ผลลัพธ์: ที่เดือนที่ 12 $\hat S = 0.333$ และ $\widehat{\mathrm{CIF}}_R = 0.380$ และ $\widehat{\mathrm{CIF}}_D = 0.287$

ตาราง Aalen-Johansen ของผู้ป่วยสิบสองคน

ตัวอย่างคำนวณด้วยมือ ส่วนที่เพิ่มแต่ละครั้งคือ $\hat S$ ก่อนเกิดเหตุการณ์คูณด้วย $1/n_j$ (มีเหตุการณ์หนึ่งครั้ง ณ แต่ละเวลา) และไปอยู่ในคอลัมน์ของสาเหตุที่เกิดขึ้น การเซ็นเซอร์ที่เดือนที่ 4, 8, 11 และ 12 เพียงทำให้ชุดเสี่ยงเล็กลง
เดือนเหตุการณ์แรกผู้เสี่ยงอยู่, $n_j$$\hat S$ ก่อนเกิดเหตุการณ์ส่วนที่เพิ่ม$\widehat{\mathrm{CIF}}_R$$\widehat{\mathrm{CIF}}_D$$\hat S$ หลังเกิดเหตุการณ์
2เสียชีวิต121.0000.0830.0000.0830.917
3กลับเป็นซ้ำ110.9170.0830.0830.0830.833
5เสียชีวิต90.8330.0930.0830.1760.741
6กลับเป็นซ้ำ80.7410.0930.1760.1760.648
7กลับเป็นซ้ำ70.6480.0930.2690.1760.556
9เสียชีวิต50.5560.1110.2690.2870.444
10กลับเป็นซ้ำ40.4440.1110.3800.2870.333

การตรวจสอบในตัว: ทุกคนอยู่ที่ใดที่หนึ่ง

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

$$1 = S(t) + \mathrm{CIF}_R(t) + \mathrm{CIF}_D(t)$$

การรอดชีพปลอดเหตุการณ์และอุบัติการณ์สะสมของทุกสาเหตุแบ่งกลุ่มทั้งหมดออกเป็นส่วน ๆ ที่เดือนที่ 12 ในตัวอย่างคำนวณด้วยมือ $0.333 + 0.380 + 0.287 = 1.000$ และทุกแถวของตารางผ่านการตรวจแบบเดียวกันภายในความคลาดเคลื่อนจากการปัดเศษ ตารางที่ไม่ผ่านการตรวจนี้มีข้อผิดพลาด หรือมีค่า 1 ลบ Kaplan-Meier อยู่ในที่ที่ควรเป็นอุบัติการณ์สะสม

1 ลบ Kaplan-Meier ของผู้ป่วยสิบสองคน นับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์

ตัวอย่างคำนวณด้วยมือ ผู้ป่วยสิบสองคนชุดเดิม โดยให้การกลับเป็นซ้ำเป็นเหตุการณ์ และนับการเสียชีวิตแต่ละครั้งเป็นการเซ็นเซอร์ $\widehat{\mathrm{KM}}_R(t)$ คือค่าประมาณ Kaplan-Meier ของการไม่กลับเป็นซ้ำจนถึงเวลา $t$ ณ การกลับเป็นซ้ำแต่ละครั้ง ค่านี้ถูกคูณด้วยตัวคูณที่แสดงไว้ ซึ่งคือสัดส่วนของชุดเสี่ยงที่ยังไม่กลับเป็นซ้ำ ชุดเสี่ยงเป็นชุดเดียวกับในตาราง Aalen-Johansen การเสียชีวิตที่เดือนที่ 2, 5 และ 9 ทำให้ชุดเสี่ยงเล็กลงแต่ไม่เคยทำให้เส้นลดลง
เดือนผู้เสี่ยงอยู่ตัวคูณKaplan-Meier ปลอดการกลับเป็นซ้ำ1 ลบ Kaplan-Meier
31110/110.9090.091
687/80.7950.205
776/70.6820.318
1043/40.5110.489

ชุดเสี่ยงเดียวกัน แต่ตัวคูณต่างกัน

ที่เดือนที่ 12 1 ลบ Kaplan-Meier เท่ากับ 0.489 เทียบกับอุบัติการณ์สะสมของการกลับเป็นซ้ำ 0.380 สูงกว่า 0.109 หรือสูงกว่า 1.29 เท่า เมื่อเขียนเป็นผลรวม 1 ลบ Kaplan-Meier มีรูปแบบเดียวกับตัวประมาณ Aalen-Johansen

$$1 - \widehat{\mathrm{KM}}_R(t) = \sum_{t_j \le t} \widehat{\mathrm{KM}}_R(t_{j-1})\,\frac{d_{Rj}}{n_j}$$

สิ่งที่ต่างมีเพียงตัวคูณ Aalen-Johansen คูณสัดส่วนการกลับเป็นซ้ำ $d_{Rj}/n_j$ แต่ละครั้งด้วย $\hat S$ ซึ่งลดลงเมื่อมีผู้เสียชีวิต ส่วน Kaplan-Meier คูณด้วยเส้นการไม่กลับเป็นซ้ำของมันเอง ซึ่งไม่ลดลง 1 ลบ Kaplan-Meier จึงไม่เคยต่ำกว่าอุบัติการณ์สะสม และสูงกว่าเมื่อมีการเสียชีวิตเกิดก่อนการกลับเป็นซ้ำ [1, 2]

ตัวอย่างเช่นที่เดือนที่ 10 Aalen-Johansen เพิ่ม $0.444 \times \tfrac{1}{4} = 0.111$ ขณะที่ Kaplan-Meier เพิ่ม $0.682 \times \tfrac{1}{4}$ การเสียชีวิตสามครั้งทำให้ $\hat S$ ลดลงแต่เส้น Kaplan-Meier ไม่ถูกแตะต้อง การกลับเป็นซ้ำทุกครั้งในภายหลังจึงมีน้ำหนักมากขึ้นใน 1 ลบ Kaplan-Meier

ความเสี่ยงสมมติ ไม่ใช่ความผิดพลาดทางการคำนวณ

แล้ว 0.489 ประมาณอะไร ค่านี้คือความน่าจะเป็นของการกลับเป็นซ้ำภายในเดือนที่ 12 ในโลกสมมติที่การเสียชีวิตก่อนการกลับเป็นซ้ำเกิดขึ้นไม่ได้ ค่านี้ยังสมมติว่าการกำจัดการเสียชีวิตออกไปจะไม่เปลี่ยนฮาซาร์ดของการกลับเป็นซ้ำ คือผู้ป่วยที่เสียชีวิตจะกลับเป็นซ้ำในอัตราเดียวกับผู้ที่ยังถูกติดตามอยู่ ข้อมูลทดสอบข้อสมมตินี้ไม่ได้ เพราะไม่มีใครถูกสังเกตหลังการเสียชีวิต [1, 3]

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

ตัวอย่างคำนวณด้วยมือ แถบเลื่อนกำหนดว่าผู้ป่วย 100 คนเสียชีวิตก่อนมีการกลับเป็นซ้ำกี่คน (ฮาซาร์ดของการเสียชีวิตที่สูงขึ้นทำให้มีผู้เสียชีวิตก่อนมากขึ้น) ขณะที่สัดส่วนของผู้รอดชีวิตที่กลับเป็นซ้ำคงที่ 1 ลบ Kaplan-Meier ซึ่งนับการเสียชีวิตเป็นการเซ็นเซอร์ จึงอยู่ที่ 12.5% เสมอ และอุบัติการณ์สะสมของการกลับเป็นซ้ำต่ำกว่านั้นมากขึ้น แถบด้านล่างแสดงการเปรียบเทียบเดียวกันในการทดลองหัวใจล้มเหลวจำลอง (ข้อมูลจำลอง)

การเปรียบเทียบกลุ่ม: การทดสอบของ Gray

การทดสอบของ Gray (Gray's test) ถามว่าเส้นอุบัติการณ์สะสมของสาเหตุหนึ่งเหมือนกันหรือไม่ระหว่างกลุ่ม เช่นสองกลุ่มการรักษา ตลอดการติดตาม [5] การทดสอบนี้ทำหน้าที่เช่นเดียวกับการทดสอบ log-rank (log-rank test) ซึ่งทดสอบว่าเส้นการรอดชีพต่างกันหรือไม่ สำหรับเส้น Kaplan-Meier แต่ต่างจาก log-rank ที่นับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์ ตรงที่การทดสอบของ Gray คงผู้ป่วยที่เกิดเหตุการณ์แข่งขันไว้ในการเปรียบเทียบ

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

การถดถอยสำหรับความเสี่ยงแข่งขันเป็นเรื่องของตอนที่ 5 ของชุดบทความนี้ ได้แก่แบบจำลอง Cox เฉพาะสาเหตุ (cause-specific Cox model) ซึ่งเป็นการถดถอยของฮาซาร์ดสาเหตุหนึ่งในผู้ป่วยที่ยังปลอดเหตุการณ์ และแบบจำลอง Fine-Gray สำหรับอุบัติการณ์สะสม

ความต่างแบบเดียวกันในการทดลองหัวใจล้มเหลวจำลอง

ส่วนที่เหลือของบทความวิเคราะห์ชุดข้อมูลจำลองชุดเดียว การทดลองแบบสุ่มรับผู้ใหญ่ 1,500 คนหลังเข้ารักษาด้วยหัวใจล้มเหลว กลุ่มละ 750 คน และติดตามนาน 24 ถึง 36 เดือน ผลลัพธ์คือการนอนโรงพยาบาลด้วยหัวใจล้มเหลวครั้งแรกหลังการสุ่ม และการเสียชีวิตก่อนการนอนโรงพยาบาลคือเหตุการณ์แข่งขัน ยานี้เป็นของสมมติ และการจำลองให้ยาลดทั้งอัตราการนอนโรงพยาบาลและอัตราการเสียชีวิตจากโรคหัวใจและหลอดเลือด

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

ในข้อมูล 683 คนนอนโรงพยาบาลครั้งแรก (364 คนในกลุ่มควบคุม 319 คนในกลุ่มที่ได้รับยา) และ 514 คนเสียชีวิตก่อนการนอนโรงพยาบาล (258 และ 256) อีก 303 คน (128 คนในกลุ่มควบคุม 175 คนในกลุ่มที่ได้รับยา) ถูกเซ็นเซอร์โดยไม่เกิดเหตุการณ์ใดเลย ที่การปิดการศึกษาหรือเมื่อขาดการติดตาม การขาดการติดตามในการจำลองไม่เกี่ยวกับความเสี่ยง ตามที่ตัวประมาณทั้งสองสมมติ การจำลองสร้างจากอัตราที่ทราบ จึงตรวจแต่ละค่าประมาณกับค่าจริงจากการจำลองได้

การนอนโรงพยาบาลครั้งแรกภายใน 12 และ 24 เดือน: อุบัติการณ์สะสมเทียบกับ 1 ลบ Kaplan-Meier

ข้อมูลจำลอง ค่าประมาณแบบจุดของความน่าจะเป็น แสดงสี่ตำแหน่งทศนิยมตามที่คำนวณได้ แต่ละค่าประมาณวางเทียบกับค่าจริงจากการจำลอง จึงไม่แสดงช่วงเชื่อมั่น แม้ฟังก์ชัน R ชื่อ cuminc จะให้ความแปรปรวนที่ใช้สร้างช่วงเชื่อมั่นด้วย ข้อมูลการทดลองจำลองและค่าจริงที่อยู่เบื้องหลังแถวค่าจริงจากการจำลองไม่ได้เผยแพร่ จึงอ่านตารางได้แต่คำนวณซ้ำไม่ได้
ปริมาณ (ความน่าจะเป็น)กลุ่มควบคุม 12 เดือนกลุ่มที่ได้รับยา 12 เดือนกลุ่มควบคุม 24 เดือนกลุ่มที่ได้รับยา 24 เดือน
อุบัติการณ์สะสมของการนอนโรงพยาบาล ค่าประมาณ Aalen-Johansen0.35340.26970.46060.4116
อุบัติการณ์สะสมของการนอนโรงพยาบาล ค่าจริงจากการจำลอง0.34170.27340.45360.3899
1 ลบ Kaplan-Meier ของการนอนโรงพยาบาล นับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์ ค่าประมาณ0.41320.30310.58990.5188
ความเสี่ยงของการนอนโรงพยาบาลถ้าไม่มีการเสียชีวิต ค่าจริงจากการจำลอง0.40100.31240.59500.4935
อุบัติการณ์สะสมของการเสียชีวิตก่อนการนอนโรงพยาบาล ค่าประมาณ Aalen-Johansen0.22870.20940.33300.3105

การอ่านตาราง: 1 ลบ Kaplan-Meier สูงกว่าในทั้งสองกลุ่ม

ภายใน 24 เดือน อุบัติการณ์สะสมของการนอนโรงพยาบาลคือ 46.1% ในกลุ่มควบคุม และ 41.2% ในกลุ่มที่ได้รับยา การทดสอบของ Gray เปรียบเทียบสองเส้นตลอดช่วงการติดตามทั้งหมด [5] ได้ค่าสถิติไคสแควร์ 5.99 ที่องศาอิสระ 1 P = 0.014 การทดสอบนี้บอกไม่ได้ว่าความต่างมาจากฤทธิ์ของยาต่อการนอนโรงพยาบาลหรือต่อการเสียชีวิต

1 ลบ Kaplan-Meier ให้ 59.0% และ 51.9% ที่ 24 เดือน สูงกว่าในทั้งสองกลุ่ม ช่องว่างมีอยู่แล้วที่ 12 เดือน คือ 35.3% เทียบกับ 41.3% ในกลุ่มควบคุม และกว้างขึ้นเมื่อมีผู้เสียชีวิตสะสมมากขึ้น ตัวประมาณแต่ละตัวต่างจากค่าจริงจากการจำลองของปริมาณที่มันประมาณเพียงไม่กี่จุดเปอร์เซ็นต์

Kaplan-Meier ทำได้เช่นนั้นในที่นี้เพียงเพราะการจำลองทำให้การเสียชีวิตเป็นอิสระจากแนวโน้มที่ผู้ป่วยจะต้องนอนโรงพยาบาล การทดลองจริงตรวจข้อสมมตินี้ไม่ได้ Aalen-Johansen ไม่ต้องการข้อสมมติเกี่ยวกับการเสียชีวิต ต้องการเพียงว่าการเซ็นเซอร์ไม่เกี่ยวกับพยากรณ์โรค

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

โค้ด: ตรวจผลรวม Aalen-Johansen ที่คำนวณด้วยมือใน Stata และการทดสอบของ Gray ใน R

ในสคริปต์ทั้งสอง t_rec คือเวลาถึงการนอนโรงพยาบาลครั้งแรก การเสียชีวิต หรือการเซ็นเซอร์ และ rec_status เท่ากับ 0 สำหรับผู้ถูกเซ็นเซอร์ 1 สำหรับการนอนโรงพยาบาล และ 2 สำหรับการเสียชีวิตก่อนการนอนโรงพยาบาล ส่วนที่ยกมาจากสคริปต์ Stata ตรวจผลรวม Aalen-Johansen ที่คำนวณด้วยมือกับคำสั่งที่ผู้ใช้เขียนขึ้น stcompet [6] ซึ่ง compet1(2) ระบุว่ารหัส 2 คือเหตุการณ์แข่งขัน ทั้ง Stata ทางการและ stcompet ไม่มีการทดสอบของ Gray ค่า P จึงมาจาก cuminc ในแพ็กเกจ R ชื่อ cmprsk

Stata: ผลรวม Aalen-Johansen ตรวจสอบกับ stcompet

โค้ด Stata w3_sim.do (บรรทัด 160-167 จาก 637)
* cross-check the hand calculation against stcompet when it is installed
capture which stcompet
if _rc == 0 {
    stcompet ci_pkg = ci, compet1(2) by(arm)
    generate double ci_gap = abs(ci_pkg - aj_cif) if rec_status == 1
    summarize ci_gap, meanonly
    display "stcompet versus hand Aalen-Johansen, largest absolute gap: " %12.10f r(max)
}
ผลลัพธ์จากการรัน w3_sim.log
. * cross-check the hand calculation against stcompet when it is installed
. capture which stcompet

. if _rc == 0 {
.     stcompet ci_pkg = ci, compet1(2) by(arm)
.     generate double ci_gap = abs(ci_pkg - aj_cif) if rec_status == 1
(817 missing values generated)
.     summarize ci_gap, meanonly
.     display "stcompet versus hand Aalen-Johansen, largest absolute gap: " %12.10f r(max)
stcompet versus hand Aalen-Johansen, largest absolute gap: 0.0000000000
. }
ข้อมูลจำลอง ส่วนที่ยกมาจากสคริปต์การจำลอง พร้อมผลลัพธ์ของการรันอยู่ข้างกัน ไฟล์ข้อมูลการทดลองจำลองไม่ได้เผยแพร่ บรรทัดก่อนหน้าในสคริปต์ซึ่งไม่ได้แสดงไว้ กำหนดการนอนโรงพยาบาลเป็นเหตุการณ์ด้วย stset และสร้างผลรวม Aalen-Johansen ด้วยมือไว้ในตัวแปร aj_cif แบบเดียวกับตารางของผู้ป่วยสิบสองคน ส่วนที่ยกมาตรวจผลรวมนั้นกับ stcompet และผลลัพธ์แสดงช่องว่างที่ใหญ่ที่สุดระหว่างทั้งสองคือศูนย์ถึงสิบตำแหน่งทศนิยม

R: การทดสอบของ Gray และอุบัติการณ์สะสมด้วย cmprsk

โค้ด R w3_sim_r.R (บรรทัด 95-99 จาก 384)
  # Aalen-Johansen cumulative incidence and Gray's test (cmprsk::cuminc)
  ci <- cuminc(d$t_rec, d$rec_status, group = d$arm, cencode = 0)
  print(ci$Tests)
  tp <- timepoints(ci, c(12, 24))$est
  print(tp)
ผลลัพธ์จากการรัน w3_sim_r.log
        stat        pv df
1 5.98748833 0.0144077  1
2 0.06172269 0.8037936  1
           12        24
0 1 0.3534148 0.4606164
1 1 0.2697090 0.4116034
0 2 0.2287071 0.3330379
1 2 0.2093512 0.3104714
ข้อมูลจำลอง ส่วนที่ยกมาจากสคริปต์การจำลอง พร้อมผลลัพธ์ของการรันอยู่ข้างกัน ไฟล์ข้อมูลการทดลองจำลองไม่ได้เผยแพร่ บรรทัดเหล่านี้อยู่ในฟังก์ชันที่สคริปต์เรียกใช้กับข้อมูลการทดลองจำลอง ซึ่งส่งเข้ามาในชื่อ d ตารางแรกคือการทดสอบของ Gray แถวที่ 1 สำหรับการนอนโรงพยาบาล และแถวที่ 2 สำหรับการเสียชีวิตก่อนการนอนโรงพยาบาล โดย stat คือค่าสถิติไคสแควร์ pv คือค่า P และ df คือองศาอิสระ ในตารางที่สอง ป้ายของแต่ละแถวบอกกลุ่ม (0 กลุ่มควบคุม 1 กลุ่มที่ได้รับยา) และสาเหตุ (1 การนอนโรงพยาบาล 2 การเสียชีวิตก่อนการนอนโรงพยาบาล) และคอลัมน์คือ 12 และ 24 เดือน

ความเข้าใจผิดที่พบบ่อยและวิธีแก้

  • "Kaplan-Meier ผิดเมื่อมีความเสี่ยงแข่งขัน"

    การคำนวณของมันถูกต้อง เพียงแต่ตอบคำถามต่างออกไป

    วิธีแก้: 1 ลบ Kaplan-Meier ประมาณความเสี่ยงในโลกสมมติที่ไม่มีเหตุการณ์แข่งขัน โดยสมมติว่าการกำจัดเหตุการณ์นั้นจะไม่เปลี่ยนฮาซาร์ดของการกลับเป็นซ้ำ นั่นเป็นปริมาณที่ชอบธรรมแต่เป็นปริมาณสมมติ สำหรับความเสี่ยงที่ผู้ป่วยเผชิญจริงให้ใช้อุบัติการณ์สะสม

  • "การเสียชีวิตก็เป็นเพียงผู้ป่วยที่ถูกเซ็นเซอร์อีกคน"

    หลังการเซ็นเซอร์ เหตุการณ์ยังเกิดได้ หลังการเสียชีวิต เหตุการณ์เกิดไม่ได้

    วิธีแก้: ลงรหัสการเสียชีวิตก่อนเหตุการณ์เป็นเหตุการณ์แข่งขันเสมอเมื่อคำถามคือความเสี่ยงที่ผู้ป่วยเผชิญ

  • "1 ลบการรอดชีพปลอดการกลับเป็นซ้ำคือความเสี่ยงของการกลับเป็นซ้ำ"

    ถ้าเหตุการณ์ของเส้นคือการกลับเป็นซ้ำหรือการเสียชีวิต แล้วแต่อย่างใดเกิดก่อน 1 ลบเส้นนั้นคือ $\mathrm{CIF}_R(t) + \mathrm{CIF}_D(t)$ ถ้านับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์ ค่านั้นคือปริมาณสมมติข้างต้น

    วิธีแก้: ระบุนิยามของเหตุการณ์ก่อนอ่านเส้น

  • "อุบัติการณ์สะสมของการกลับเป็นซ้ำที่ต่ำกว่าแสดงว่าการรักษาออกฤทธิ์ต่อการกลับเป็นซ้ำ"

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

    วิธีแก้: รายงานอุบัติการณ์สะสมของทุกสาเหตุ และใช้ฮาซาร์ดเฉพาะสาเหตุเพื่อถามว่าการรักษาออกฤทธิ์อย่างไร

  • "subdistribution hazard ratio เท่ากับ 0.70 หมายความว่าความเสี่ยงต่ำกว่า 30%"

    แบบจำลอง Fine-Gray เปรียบเทียบ subdistribution hazard ซึ่งผู้ป่วยที่เกิดเหตุการณ์แข่งขันยังคงอยู่ในชุดเสี่ยง อัตราส่วนของฮาซาร์ดไม่ใช่อัตราส่วนของความเสี่ยง

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

สิ่งที่ควรทำในการวิเคราะห์ของคุณเอง

อภิธานศัพท์

competing event (เหตุการณ์แข่งขัน)
เหตุการณ์ เช่นการเสียชีวิตก่อนการกลับเป็นซ้ำ ที่ทำให้เหตุการณ์ที่สนใจเกิดไม่ได้อีก
all-cause survival
ในที่นี้คือการรอดชีพปลอดเหตุการณ์จากทุกสาเหตุ $S(t)$ คือความน่าจะเป็นที่ไม่เกิดเหตุการณ์แรกของสาเหตุใดเลยภายในเวลา $t$
cumulative incidence function (อุบัติการณ์สะสม)
$\mathrm{CIF}_k(t)$ คือความน่าจะเป็นที่เหตุการณ์แรกเป็นสาเหตุ $k$ และเกิดภายในเวลา $t$
Aalen-Johansen estimator (ตัวประมาณ Aalen-Johansen)
ตัวประมาณของอุบัติการณ์สะสมที่บวก ณ เวลาที่เกิดเหตุการณ์แต่ละครั้ง ค่า $\hat S$ ก่อนเวลานั้นคูณด้วยสัดส่วนของชุดเสี่ยงที่เกิดเหตุการณ์ของสาเหตุนั้น
Gray's test (การทดสอบของ Gray)
การทดสอบว่าเส้นอุบัติการณ์สะสมของสาเหตุหนึ่งเท่ากันหรือไม่ระหว่างกลุ่ม

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

  1. Putter H, Fiocco M, Geskus RB. Tutorial in biostatistics: competing risks and multi-state models. Stat Med. 2007;26(11):2389-2430. doi:10.1002/sim.2712 https://doi.org/10.1002/sim.2712
  2. Austin PC, Lee DS, Fine JP. Introduction to the analysis of survival data in the presence of competing risks. Circulation. 2016;133(6):601-609. doi:10.1161/CIRCULATIONAHA.115.017719 https://doi.org/10.1161/CIRCULATIONAHA.115.017719
  3. Andersen PK, Geskus RB, de Witte T, Putter H. Competing risks in epidemiology: possibilities and pitfalls. Int J Epidemiol. 2012;41(3):861-870. doi:10.1093/ije/dyr213 https://doi.org/10.1093/ije/dyr213
  4. Wolbers M, Koller MT, Stel VS, Schaer B, Jager KJ, Leffondré K, Heinze G. Competing risks analyses: objectives and approaches. Eur Heart J. 2014;35(42):2936-2941. doi:10.1093/eurheartj/ehu131 https://doi.org/10.1093/eurheartj/ehu131
  5. Gray RJ. A class of K-sample tests for comparing the cumulative incidence of a competing risk. Ann Stat. 1988;16(3):1141-1154. doi:10.1214/aos/1176350951 https://doi.org/10.1214/aos/1176350951
  6. Coviello V, Boggess M. Cumulative incidence estimation in the presence of competing risks. Stata J. 2004;4(2):103-112. doi:10.1177/1536867X0400400201 https://doi.org/10.1177/1536867X0400400201

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

  • การเสียชีวิตก่อนการกลับเป็นซ้ำคือเหตุการณ์แข่งขัน ไม่ใช่การเซ็นเซอร์ เพราะทำให้การกลับเป็นซ้ำเกิดไม่ได้อีก ไม่ใช่เพียงสังเกตไม่เห็น
  • 1 ลบ Kaplan-Meier ที่นับผู้เสียชีวิตเป็นผู้ถูกเซ็นเซอร์ประมาณความเสี่ยงสมมติในโลกที่ไม่มีการเสียชีวิต ภายใต้ข้อสมมติที่ข้อมูลทดสอบไม่ได้ และไม่เคยต่ำกว่าอุบัติการณ์สะสม
  • ตัวประมาณ Aalen-Johansen บวก ณ เวลาที่เกิดเหตุการณ์แต่ละครั้ง สัดส่วนที่ยังปลอดเหตุการณ์คูณด้วยสัดส่วนของชุดเสี่ยงที่เกิดเหตุการณ์ของสาเหตุนั้น
  • การรอดชีพปลอดเหตุการณ์กับอุบัติการณ์สะสมของทุกสาเหตุรวมกันได้หนึ่ง ซึ่งให้ทุกตารางมีการตรวจสอบในตัว
  • การทดสอบของ Gray ชั่งน้ำหนักหลักฐานว่าเส้นอุบัติการณ์สะสมต่างกัน ไม่ได้บอกว่าต่างกันเท่าไรหรือเพราะอะไร จึงควรรายงานอุบัติการณ์สะสมของทุกสาเหตุ ณ เวลาที่ระบุ

อ่านต่อในวิกิ: [[time-to-event-survival-analysis-th]]

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

ความคิดเห็น

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

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