เหตุการณ์ซ้ำ: นับการนอนโรงพยาบาลทุกครั้งโดยไม่แสร้งว่าแต่ละครั้งเป็นอิสระต่อกัน

On this page
Read the English version
บทคัดย่อ
ผู้ป่วยหัวใจล้มเหลวกลับมานอนโรงพยาบาลซ้ำแล้วซ้ำอีก แต่การทดลองจำนวนมากวิเคราะห์เฉพาะเวลาจนถึงการนอนโรงพยาบาลครั้งแรก แบบจำลองเหตุการณ์ซ้ำ (recurrent-event model) เก็บการนอนโรงพยาบาลไว้ทุกครั้ง โดยใช้ข้อมูลรูปแบบ start-stop ที่มีหนึ่งแถวต่อหนึ่งช่วงที่ยังเสี่ยงอยู่ แบบจำลอง Andersen-Gill ประมาณแบบจำลอง Cox หนึ่งแบบกับการนอนโรงพยาบาลทุกครั้งบนนาฬิกาเดียวที่นับจากการสุ่ม พร้อมค่าคลาดเคลื่อนมาตรฐาน (standard error) แบบคลัสเตอร์ตามผู้ป่วย เพราะการนอนโรงพยาบาลของผู้ป่วยคนเดียวกันสัมพันธ์กัน แบบจำลอง Prentice-Williams-Peterson แบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาล โดยวัดเวลาจากการสุ่ม (เวลารวม, total time) หรือจากการนอนโรงพยาบาลครั้งก่อน (เวลาระหว่างครั้ง, gap time) ในการทดลองจำลองที่มีผู้ป่วย 1,500 คนและการนอนโรงพยาบาล 1,313 ครั้ง อัตราส่วนฮาซาร์ด (hazard ratio) ของ Andersen-Gill ซึ่งเปรียบเทียบอัตราการนอนโรงพยาบาลระหว่างสองกลุ่ม เท่ากับ 0.73 (ช่วงเชื่อมั่น 95% คือ 0.63 ถึง 0.85) การจัดคลัสเตอร์เพิ่มค่าคลาดเคลื่อนมาตรฐานของลอการิทึมของมันจาก 0.0555 เป็น 0.0738 โดยค่าประมาณไม่เปลี่ยน การเสียชีวิตยุติการนับ การถือว่าเป็นการเซ็นเซอร์ธรรมดา (การติดตามที่สิ้นสุดโดยไม่เกิดเหตุการณ์) จึงเปลี่ยนคำถาม บทความนี้แสดงวิธีสร้างแถว เลือกนาฬิกา และรายงานการเสียชีวิตควบคู่กับการนอนโรงพยาบาล
การทดลองที่นับเฉพาะการนอนโรงพยาบาลครั้งแรก
คณะกรรมการอำนวยการ (steering committee) กำลังทบทวนแผนการวิเคราะห์ของการทดลองแบบสุ่มในผู้ป่วยหัวใจล้มเหลว การทดลองนี้รับผู้ใหญ่ 1,500 คนหลังการนอนโรงพยาบาลด้วยหัวใจล้มเหลว และติดตามผล 24 ถึง 36 เดือน ยานี้เป็นของสมมติและข้อมูลเป็นข้อมูลจำลอง
ผลลัพธ์หลักคือเวลาจนถึงการนอนโรงพยาบาลด้วยหัวใจล้มเหลวครั้งแรก ตลอดการติดตาม ผู้ป่วยบางคนกลับมานอนโรงพยาบาลซ้ำแล้วซ้ำอีก บางคนในกลุ่มนี้ถึงสี่ครั้งขึ้นไป และส่วนใหญ่ไม่เคยนอนโรงพยาบาลเลย แพทย์โรคหัวใจในคณะกรรมการถามว่า จะใช้การนอนโรงพยาบาลทุกครั้งอย่างไร โดยไม่ปฏิบัติต่อการนอนโรงพยาบาลซ้ำของผู้ป่วยคนเดียวกันเสมือนมาจากคนละคน
การนอนโรงพยาบาลเป็นเหตุการณ์ซ้ำ (recurrent events) คือเหตุการณ์ที่เกิดได้มากกว่าหนึ่งครั้งในผู้ป่วยคนเดียวกัน คำตอบมีสามส่วน จัดข้อมูลให้มีหนึ่งแถวต่อหนึ่งช่วงที่ผู้ป่วยยังเสี่ยงอยู่ และนับการนอนโรงพยาบาลทุกครั้งด้วยค่าคลาดเคลื่อนมาตรฐานที่คำนึงถึงตัวผู้ป่วย จากนั้นรายงานการเสียชีวิตควบคู่กัน เพราะผู้ป่วยที่เสียชีวิตแล้วไม่สามารถนอนโรงพยาบาลได้อีก
สิ่งที่การวิเคราะห์เหตุการณ์แรกทิ้งไป
ลองดูผู้ป่วยสี่คนที่ติดตามนานสูงสุด 24 เดือน ซึ่งเป็นตัวอย่างคำนวณด้วยมือ ไม่ใช่ข้อมูลของการทดลอง R1 นอนโรงพยาบาลที่เดือนที่ 3 และ 8 และยังมีชีวิตอยู่และอยู่ในการติดตามที่เดือนที่ 24 R2 นอนโรงพยาบาลที่เดือนที่ 5 และเสียชีวิตที่เดือนที่ 12 R3 ไม่เคยนอนโรงพยาบาลและถูกติดตามถึงเดือนที่ 24
R4 นอนโรงพยาบาลที่เดือนที่ 2, 4 และ 10 และขาดการติดตามที่เดือนที่ 18 ผู้ป่วยทั้งสี่คนมีการนอนโรงพยาบาลรวม 6 ครั้ง การวิเคราะห์เวลาจนถึงเหตุการณ์แรกเก็บการนอนโรงพยาบาลไว้เพียงหนึ่งครั้งต่อผู้ป่วยหนึ่งคน คือ 3 จาก 6 ครั้ง
การเซ็นเซอร์ (censoring) หมายถึงการติดตามสิ้นสุดโดยไม่เกิดเหตุการณ์ จึงรู้เพียงว่าผู้ป่วยปลอดเหตุการณ์ถึงเวลานั้น ในการวิเคราะห์เหตุการณ์แรก R1, R2 และ R4 ออกจากการวิเคราะห์ ณ การนอนโรงพยาบาลครั้งแรก และ R3 ถูกเซ็นเซอร์ที่เดือนที่ 24 การนอนโรงพยาบาลครั้งที่สองของ R1 และครั้งที่สองและสามของ R4 ไม่เคยเข้าสู่การวิเคราะห์ ผู้ป่วยที่นอนโรงพยาบาลสามครั้งจึงดูเหมือนผู้ป่วยที่นอนครั้งเดียว
หนึ่งแถวต่อหนึ่งช่วงที่ยังเสี่ยงอยู่
แบบจำลองเหตุการณ์ซ้ำมองข้อมูลแบบกระบวนการนับ (counting process) คือผู้ป่วยแต่ละคนมีจำนวนการนอนโรงพยาบาลสะสมที่เพิ่มขึ้นหนึ่งทุกครั้งที่นอนโรงพยาบาล ข้อมูลถูกจัดในรูปแบบ start-stop (start-stop layout) ซึ่งมีหนึ่งแถวต่อหนึ่งช่วงที่ผู้ป่วยเสี่ยงต่อการนอนโรงพยาบาลครั้งถัดไป
แต่ละแถวมีห้าค่า start และ stop คือเดือนนับจากการสุ่มที่ช่วงเริ่มและสิ้นสุด event เป็น 1 ถ้าช่วงนั้นจบด้วยการนอนโรงพยาบาล และเป็น 0 ถ้าจบด้วยการเซ็นเซอร์หรือการเสียชีวิต enum คือลำดับครั้งของการนอนโรงพยาบาลที่ผู้ป่วยกำลังเสี่ยง และ gap คือ stop ลบ start
ผู้ป่วยที่มีการนอนโรงพยาบาล $k$ ครั้งจึงมี $k + 1$ แถว โดยแถวสุดท้ายจบที่การเสียชีวิตหรือการเซ็นเซอร์ ในการทดลองจำลองที่วิเคราะห์ด้านล่าง ผู้ป่วย 1,500 คนที่มีการนอนโรงพยาบาล 1,313 ครั้งให้ข้อมูล 2,813 แถว
ตัวอย่างคำนวณด้วยมือ: ผู้ป่วยสี่คน สิบแถว
ตัวอย่างคำนวณด้วยมือ เวลาเป็นเดือนนับจากการสุ่ม แต่ละช่วงเขียนเป็น (start, stop] คือไม่รวมจุดเริ่มและรวมจุดสิ้นสุด การนอนโรงพยาบาลปิดแถวด้วย event = 1 และการสิ้นสุดการติดตามปิดแถวสุดท้ายด้วย event = 0
-
R1: นอนโรงพยาบาลที่ 3 และ 8 ถูกเซ็นเซอร์ที่ 24
\[ (0, 3],\ (3, 8],\ (8, 24] \]
สามแถว สองแถวจบด้วยการนอนโรงพยาบาล แถวที่สามจบด้วยการเซ็นเซอร์ เวลาระหว่างครั้ง (gap) คือ 3, 5 และ 16
-
R2: นอนโรงพยาบาลที่ 5 เสียชีวิตที่ 12
\[ (0, 5],\ (5, 12] \]
สองแถว แถวที่สองจบด้วยการเสียชีวิตและลงรหัส event = 0 เหมือนการเซ็นเซอร์ เวลาระหว่างครั้งคือ 5 และ 7
-
R3: ไม่เคยนอนโรงพยาบาล ถูกเซ็นเซอร์ที่ 24
\[ (0, 24] \]
หนึ่งแถว event = 0 เวลาระหว่างครั้งคือ 24
-
R4: นอนโรงพยาบาลที่ 2, 4 และ 10 ขาดการติดตามที่ 18
\[ (0, 2],\ (2, 4],\ (4, 10],\ (10, 18] \]
สี่แถว เวลาระหว่างครั้งคือ 2, 2, 6 และ 8
-
จำนวนแถว
\[ 3 + 2 + 1 + 4 = 10 \]
หนึ่งแถวต่อหนึ่งช่วงที่ยังเสี่ยงอยู่
-
จำนวนการนอนโรงพยาบาล
\[ 2 + 1 + 0 + 3 = 6 \]
การวิเคราะห์เหตุการณ์แรกเก็บไว้ 3 ครั้ง
-
อัตราการนอนโรงพยาบาลแบบหยาบ
\[ \frac{6}{24 + 12 + 24 + 18} = \frac{6}{78} = 0.077 \]
จำนวนการนอนโรงพยาบาลต่อผู้ป่วย-เดือนของการติดตาม โดยนับทุกครั้ง
ผลลัพธ์: ผู้ป่วยสี่คนให้ 10 แถว การนอนโรงพยาบาล 6 ครั้ง และเวลาติดตาม 78 ผู้ป่วย-เดือน ซึ่งเป็นอัตราแบบหยาบ 0.077 ครั้งต่อผู้ป่วย-เดือน
สิบแถว start-stop ของตัวอย่างคำนวณด้วยมือ
| ผู้ป่วย | start (เดือน) | stop (เดือน) | event | enum | gap (เดือน) |
|---|---|---|---|---|---|
| R1 | 0 | 3 | 1 | 1 | 3 |
| R1 | 3 | 8 | 1 | 2 | 5 |
| R1 | 8 | 24 | 0 | 3 | 16 |
| R2 | 0 | 5 | 1 | 1 | 5 |
| R2 | 5 | 12 | 0 | 2 | 7 |
| R3 | 0 | 24 | 0 | 1 | 24 |
| R4 | 0 | 2 | 1 | 1 | 2 |
| R4 | 2 | 4 | 1 | 2 | 2 |
| R4 | 4 | 10 | 1 | 3 | 6 |
| R4 | 10 | 18 | 0 | 4 | 8 |
Andersen-Gill: การนอนโรงพยาบาลทุกครั้งบนนาฬิกาเดียว
แบบจำลอง Andersen-Gill (Andersen-Gill model) ประมาณแบบจำลอง Cox กับแถว start-stop ทำให้การนอนโรงพยาบาลทุกครั้งนับรวมในอัตราส่วนฮาซาร์ด (hazard ratio, HR) หนึ่งค่า [1]
$$h_i(t) = h_0(t)\,\exp(\beta A_i)$$ในสมการนี้ $h_i(t)$ คืออัตราการนอนโรงพยาบาล ณ เดือนที่ $t$ นับจากการสุ่ม ของผู้ป่วย $i$ ที่ยังเสี่ยงอยู่ และ $A_i$ เป็น 1 สำหรับกลุ่มรักษาและ 0 สำหรับกลุ่มควบคุม $h_0(t)$ คืออัตราของกลุ่มควบคุม ซึ่งไม่กำหนดรูปแบบไว้เช่นเดียวกับแบบจำลอง Cox ทั่วไป $\beta$ คือลอการิทึมของอัตราส่วนฮาซาร์ด และ $\exp(\beta)$ คืออัตราส่วนฮาซาร์ด $h_0(t)$ ค่าเดียวใช้กับการนอนโรงพยาบาลครั้งแรก ครั้งที่สอง และครั้งต่อ ๆ ไปเหมือนกัน จึงถือว่าการนอนโรงพยาบาลทุกครั้งใช้แทนกันได้
เวลาเดินบนนาฬิกาเดียวนับจากการสุ่ม เรียกว่าเวลารวม (total time) ในแต่ละขณะชุดเสี่ยง (risk set) คือผู้ป่วยที่อาจเกิดเหตุการณ์ ณ ตอนนั้น ประกอบด้วยผู้ป่วยทุกคนที่ยังมีชีวิตและอยู่ในการติดตาม เมื่อ R4 นอนโรงพยาบาลครั้งที่สองที่เดือนที่ 4 ผู้ป่วยในตัวอย่างคำนวณด้วยมือทั้งสี่คนอยู่ในชุดเสี่ยงนั้น
ทำไมค่าคลาดเคลื่อนมาตรฐานจึงต้องคลัสเตอร์ตามผู้ป่วย
การนอนโรงพยาบาลของผู้ป่วยคนเดียวกันไม่เป็นอิสระต่อกัน ผู้ป่วยบางคนมีแนวโน้มนอนโรงพยาบาลมากกว่าคนอื่นและนอนบ่อยกว่าตลอดการติดตาม การนอนครั้งหนึ่งจึงทำนายครั้งต่อไปได้มากขึ้น ค่าคลาดเคลื่อนมาตรฐานแบบอิงแบบจำลอง (model-based) หรือแบบไร้เดียงสา (naive) ปฏิบัติต่อการนอนโรงพยาบาล 1,313 ครั้งเสมือนมาจากคน 1,313 คนที่ไม่เกี่ยวข้องกัน เมื่อมีการพึ่งพากันในทางบวกเช่นนี้ ค่านั้นจะออกมาน้อยเกินไป
ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช (sandwich standard error หรือ robust standard error) เริ่มจากรวมทุกอย่างที่ผู้ป่วยแต่ละคนมีส่วนต่อค่าประมาณ แล้ววัดว่าผลรวมรายผู้ป่วยเหล่านี้แปรผันเท่าไร จึงยังใช้ได้เมื่อการนอนโรงพยาบาลรวมกลุ่มอยู่ในผู้ป่วยแต่ละคน การจัดคลัสเตอร์ตามผู้ป่วยไม่เปลี่ยนอัตราส่วนฮาซาร์ดเอง และค่าประมาณนั้นอ่านได้เป็นอัตราส่วนของอัตราการนอนโรงพยาบาลโดยเฉลี่ยระหว่างสองกลุ่มในผู้ป่วยที่ยังมีชีวิตและอยู่ในการติดตาม robust standard error ทำให้ช่วงเชื่อมั่นยังใช้ได้ภายใต้การอ่านแบบนั้น โดยไม่ต้องสมมติว่าการนอนโรงพยาบาลของผู้ป่วยคนเดียวกันเป็นอิสระต่อกัน [2]
robust standard error ช่วยแก้ค่าคลาดเคลื่อนมาตรฐานเมื่อข้อสมมติเรื่องความแปรปรวนผิด แต่ไม่ได้แก้แบบจำลองค่าเฉลี่ยที่ผิด และสัมประสิทธิ์ที่ลำเอียงก็ยังคงลำเอียงอยู่
ในการทดลองจำลอง อัตราส่วนฮาซาร์ด Andersen-Gill เท่ากับ 0.73 ค่าคลาดเคลื่อนมาตรฐานแบบไร้เดียงสาของลอการิทึมของมันคือ 0.0555 ซึ่งจะให้ช่วงเชื่อมั่น 95% ที่ 0.66 ถึง 0.82 การจัดคลัสเตอร์ตามผู้ป่วยเพิ่มค่าคลาดเคลื่อนมาตรฐานเป็น 0.0738 และขยายช่วงเป็น 0.63 ถึง 0.85 ค่าประมาณไม่เปลี่ยน มีเพียงความไม่แน่นอนที่เปลี่ยน
- Stata:
stset stop, id(id) failure(event == 1) time0(start) exit(time .)แล้วตามด้วยstcox arm, vce(cluster id) - R:
coxph(Surv(start, stop, event) ~ arm + cluster(id), data = rl, ties = "breslow")โดยrlคือแถว start-stop
Prentice-Williams-Peterson: การนอนโรงพยาบาลตามลำดับ
แบบจำลอง Prentice-Williams-Peterson (PWP) คำนึงถึงลำดับของการนอนโรงพยาบาล [3] โดยแบ่งชั้น (stratify) แบบจำลอง Cox ตามลำดับครั้งที่นอนโรงพยาบาล ทำให้การนอนโรงพยาบาลแต่ละลำดับมีอัตราพื้นฐานของตัวเอง ผู้ป่วยเข้าสู่ชุดเสี่ยงของการนอนโรงพยาบาลครั้งที่ $k$ ได้ก็ต่อเมื่อผ่านครั้งที่ $k - 1$ แล้ว
$$h_{ik}(t) = h_{0k}(t)\,\exp(\beta A_i)$$ในสมการนี้ $k$ คือลำดับครั้งที่นอนโรงพยาบาลซึ่งกำหนดชั้น และ $h_{0k}(t)$ คืออัตราของกลุ่มควบคุมสำหรับการนอนโรงพยาบาลครั้งที่ $k$ ณ เวลา $t$ บนนาฬิกาที่เลือก อัตราส่วนฮาซาร์ด $\exp(\beta)$ ใช้ร่วมกันทุกชั้น เว้นแต่จะประมาณแยกทีละชั้น มันเปรียบเทียบสองกลุ่มในผู้ป่วยที่มีจำนวนครั้งที่นอนโรงพยาบาลก่อนหน้าเท่ากัน
PWP ใช้นาฬิกาได้สองแบบ ในเวลารวม (PWP-TT) $t$ นับเดือนนับจากการสุ่ม และแต่ละแถวคงค่า start และ stop ไว้ ในเวลาระหว่างครั้ง (gap time) (PWP-GT) $t$ นับเดือนนับจากการนอนโรงพยาบาลครั้งก่อน นาฬิกาเริ่มที่ 0 ใหม่หลังการนอนโรงพยาบาลแต่ละครั้ง ดังนั้นแต่ละแถวจึงวิ่งจาก 0 ถึงค่า gap ของมัน
ในตัวอย่างคำนวณด้วยมือ ทั้งสี่ชั้นมี 4, 3, 2 และ 1 แถว ที่เดือนที่ 4 ในเวลารวม มีเพียง R1 และ R4 ที่เสี่ยงต่อการนอนโรงพยาบาลครั้งที่สอง เพราะ R2 ยังไม่เคยนอนครั้งแรก และ R3 ไม่เคยนอนเลย ในเวลาระหว่างครั้ง การนอนโรงพยาบาลครั้งที่สองของ R4 มาหลังครั้งแรก 2 เดือน ชุดเสี่ยงจึงคือช่วงที่ผู้ป่วยทุกคนเสี่ยงต่อการนอนโรงพยาบาลครั้งที่สองซึ่งยาวอย่างน้อย 2 เดือน ได้แก่ R1 (5 เดือน) R2 (7) และ R4 (2)
เวลารวมเหมาะกับคำถามเกี่ยวกับเวลานับจากการสุ่ม เช่นเมื่อผลของการรักษาอาจสะสมขึ้นหรือจางลงระหว่างการทดลอง เวลาระหว่างครั้งเหมาะกับกระบวนการที่เริ่มใหม่หลังการนอนโรงพยาบาลแต่ละครั้ง ซึ่งคำถามคือจะนานเท่าไรกว่าจะถึงครั้งถัดไป ควรเลือกนาฬิกาไว้ในแผนการวิเคราะห์ก่อนเห็นข้อมูล
การนอนโรงพยาบาลครั้งหลัง ๆ ผู้ป่วยที่ถูกคัดเลือกมา
ชั้นหลัง ๆ มีขนาดเล็กและเป็นผู้ป่วยที่ถูกคัดเลือกมา มีผู้ป่วยไม่มากที่ไปถึงชั้นเหล่านั้น การวิเคราะห์จำลองจึงรวมการนอนโรงพยาบาลครั้งที่สี่และครั้งหลังจากนั้นไว้ในชั้นเดียว ผู้ป่วยที่ไปถึงการนอนโรงพยาบาลครั้งหลังยังมักมีแนวโน้มนอนโรงพยาบาลมากกว่าด้วย และภายในชั้นนั้นสองกลุ่มไม่ใช่กลุ่มที่ถูกสุ่มอีกต่อไป
PWP-TT ให้ HR 0.78 (ช่วงเชื่อมั่น 95% คือ 0.69 ถึง 0.87) และ PWP-GT ให้ 0.77 (0.69 ถึง 0.87) ทั้งสองใช้ค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ ในการทดลองจำลองที่มีผู้ป่วย 100,000 คน ทั้งสองค่าลงตัวใกล้ 0.76 ไม่ใช่ 0.70 ผู้ป่วยกลุ่มรักษาที่ไปถึงการนอนโรงพยาบาลครั้งที่สองมีแนวโน้มนอนโรงพยาบาลมากกว่าผู้ป่วยกลุ่มควบคุมที่ไปถึงครั้งนั้นโดยเฉลี่ย และสิ่งนี้ดึงการเปรียบเทียบเข้าหา 1 การจัดคลัสเตอร์เปลี่ยนค่าคลาดเคลื่อนมาตรฐานของ PWP น้อยกว่าของ Andersen-Gill มาก น่าจะเพราะการกำหนดเงื่อนไขด้วยจำนวนครั้งที่นอนโรงพยาบาลก่อนหน้าดูดซับความเกี่ยวพันกันไปได้มากแล้ว
- Stata:
stcox arm, strata(enum_c) vce(cluster id)หลังstsetแบบ start-stop สำหรับเวลารวม และหลังstset gap, failure(event == 1)สำหรับเวลาระหว่างครั้ง - R:
coxph(Surv(start, stop, event) ~ arm + strata(enum_c) + cluster(id), data = rl, ties = "breslow")โดยใช้Surv(gap, event)สำหรับเวลาระหว่างครั้งenum_cคือลำดับครั้งที่นอนโรงพยาบาลที่รวมครั้งที่สี่ขึ้นไปไว้ด้วยกัน
อีกสองแบบจำลอง: Wei-Lin-Weissfeld และ shared frailty
แบบจำลอง Wei-Lin-Weissfeld (WLW) ปฏิบัติต่อการนอนโรงพยาบาลครั้งแรก ครั้งที่สอง และครั้งที่สามเป็นผลลัพธ์แยกกัน โดยแต่ละครั้งจับเวลานับจากการสุ่ม [4] ผู้ป่วยทุกคนถือว่าเสี่ยงต่อการนอนโรงพยาบาลทุกลำดับตั้งแต่เริ่ม แม้แต่ครั้งที่สามก่อนครั้งที่สอง เนื่องจากชุดเสี่ยงของการนอนโรงพยาบาลครั้งหลังไม่รอให้ครั้งก่อน ๆ เกิดขึ้นก่อน อัตราส่วนฮาซาร์ดของครั้งหลังจึงสะท้อนผลต่อการนอนโรงพยาบาลครั้งก่อนเหล่านั้นด้วย WLW จึงเหมาะกับเหตุการณ์หลายชนิดที่ต่างกันมากกว่าการนอนโรงพยาบาลชนิดเดียวที่เรียงลำดับกัน
แบบจำลอง shared frailty ให้ผู้ป่วยแต่ละคนมีตัวคูณสุ่ม เรียกว่าfrailty ที่ปรับขนาดอัตราการนอนโรงพยาบาลทุกอัตราของผู้ป่วยคนนั้น อัตราส่วนฮาซาร์ดของแบบจำลองนี้เปรียบเทียบผู้ป่วยที่ได้รับการรักษากับผู้ป่วยที่ไม่ได้รับซึ่งมี frailty เท่ากัน การทดลองจำลองสร้างด้วยวิธีนี้ โดยให้ frailty มีค่าเฉลี่ยหนึ่งและความแปรปรวน 0.6 จากการแจกแจงแกมมา (gamma distribution) ซึ่งเป็นการแจกแจงของค่าบวก และอัตราส่วนของอัตรา (rate ratio) 0.70
เนื่องจาก frailty เป็นอิสระจากกลุ่ม การเสียชีวิต และการเซ็นเซอร์ ผู้ป่วยที่ยังอยู่ในการติดตามจึงมี frailty เฉลี่ยเท่ากันในสองกลุ่มทุกเดือน อัตราส่วนของอัตราระดับผู้ป่วยและระดับประชากรจึงเป็น 0.70 ทั้งคู่ในที่นี้ สองค่านี้ต่างกันได้เมื่อการเสียชีวิตขึ้นกับ frailty หรือเมื่อชุดเสี่ยงถูกจำกัดไว้เฉพาะผู้ป่วยที่มีประวัติแบบหนึ่ง เช่นในการวิเคราะห์เหตุการณ์แรกหรือ PWP
การเสียชีวิตยุติการนับ
การเสียชีวิตเป็นเหตุการณ์ปลายทาง (terminal event) คือเมื่อผู้ป่วยเสียชีวิตแล้วจะไม่มีการนอนโรงพยาบาลเกิดขึ้นอีก Andersen-Gill และ PWP ลงรหัสแถวสุดท้ายของผู้ป่วยที่เสียชีวิตเป็น event = 0 เหมือนการเซ็นเซอร์ และแบบจำลองการนับด้านล่างก็ยุติการติดตามผู้ป่วยคนนั้น ณ การเสียชีวิตเช่นกัน การอ่านว่าเป็นการเซ็นเซอร์สมมติว่าผู้ป่วยที่เสียชีวิตจะนอนโรงพยาบาลในอัตราเดียวกับผู้ป่วยที่คล้ายกันซึ่งยังมีชีวิตอยู่ ในหัวใจล้มเหลวเรื่องนี้ไม่ค่อยน่าเชื่อ เพราะผู้ป่วยที่เสียชีวิตมักป่วยหนักที่สุด และผู้ป่วยที่ป่วยหนักที่สุดนอนโรงพยาบาลบ่อยที่สุด
จึงปฏิบัติต่อการเสียชีวิตเสมือนการเซ็นเซอร์แบบอิสระไม่ได้ การลงรหัสเป็น event = 0 เป็นข้อกำหนดของรูปแบบข้อมูลที่ตรึงคำถามไว้ คืออัตราส่วนฮาซาร์ดอธิบายอัตราการนอนโรงพยาบาลในผู้ป่วยที่ยังมีชีวิต ยาที่ไม่เปลี่ยนอัตรานั้นแต่ทำให้อายุสั้นลงก็ยังลดจำนวนการนอนโรงพยาบาลต่อผู้ป่วยที่ถูกสุ่มได้ เพราะผู้ป่วยของยานั้นมีเวลาที่ยังมีชีวิตอยู่น้อยลง
ในการทดลองจำลอง ยาลดฮาซาร์ดของการเสียชีวิตจากโรคหัวใจและหลอดเลือด (อัตราส่วนฮาซาร์ด 0.70) ผู้ป่วยกลุ่มรักษาจึงมีชีวิตยาวขึ้นและมีเวลานอนโรงพยาบาลมากขึ้น เมื่อมีผู้ป่วยจำลอง 100,000 คน จำนวนการนอนโรงพยาบาลเฉลี่ยต่อผู้ป่วยคือ 0.93 ในกลุ่มควบคุมและ 0.71 ในกลุ่มรักษา ซึ่งเป็นความต่างสัมพัทธ์ที่น้อยกว่าอัตราส่วนของอัตรา 0.70 การเสียชีวิตถูกสร้างให้เป็นอิสระจาก frailty จึงทำให้ค่า Andersen-Gill เมื่อมีผู้ป่วยจำลอง 100,000 คนเป็น 0.70 ข้อมูลจริงไม่มีหลักประกันเช่นนั้น
มีสามแนวทางที่ทำให้การเสียชีวิตยังอยู่ในสายตา ผลลัพธ์รวม (composite outcome) นับการเสียชีวิตจากโรคหัวใจและหลอดเลือดเป็นเหตุการณ์ควบคู่กับการนอนโรงพยาบาล การเสียชีวิตแต่ละครั้งจึงนับเป็นผลเสียของยา แม้การเสียชีวิตหนึ่งครั้งยังตัดการนอนโรงพยาบาลครั้งหลังได้หลายครั้ง ฟังก์ชันความถี่เฉลี่ย (mean frequency function) ประมาณจำนวนการนอนโรงพยาบาลที่คาดไว้ต่อผู้ป่วยภายในแต่ละเดือน โดยผู้ป่วยที่เสียชีวิตไม่เพิ่มการนอนโรงพยาบาลอีก จึงต้องอ่านควบคู่กับเส้นโค้งการรอดชีพของการเสียชีวิต [5] แบบจำลองร่วม (joint models) ซึ่งเชื่อมการนอนโรงพยาบาลกับการเสียชีวิตผ่าน frailty ร่วมกัน ไปไกลกว่านั้น และอยู่นอกขอบเขตของบทความนี้
สำหรับการนอนโรงพยาบาลครั้งแรก การเสียชีวิตก่อนนอนโรงพยาบาลเป็นเหตุการณ์แข่งขัน (competing event) คือเหตุการณ์ที่ทำให้เหตุการณ์ที่สนใจไม่มีวันเกิดขึ้นได้ 1 ลบเส้นโค้ง Kaplan-Meier จึงประมาณสัดส่วนของผู้ที่จะนอนโรงพยาบาลถ้าไม่มีใครเสียชีวิตก่อน โดยสมมติว่าการกำจัดการเสียชีวิตจะไม่เปลี่ยนอัตราการนอนโรงพยาบาล ซึ่งเป็นปริมาณเชิงสมมติ (hypothetical) อุบัติการณ์สะสม (cumulative incidence function) ให้สัดส่วนของผู้ที่นอนโรงพยาบาลจริงภายในเดือนที่กำหนดเมื่อการเสียชีวิตอาจเกิดก่อน ตอนที่ 4 ของชุดบทความนี้อธิบายทั้งสองอย่าง
นับแทนการจับเวลา: negative binomial regression
แนวทางที่ง่ายกว่าคือไม่สนใจเวลาและนับจำนวนการนอนโรงพยาบาลของผู้ป่วยแต่ละคน Poisson regression (การถดถอยปัวซอง) สร้างแบบจำลองของจำนวนนับโดยใช้เวลาติดตามเป็นตัวแปรการเปิดรับ (exposure) จึงเปรียบเทียบจำนวนการนอนโรงพยาบาลต่อเดือนของการติดตาม ลอการิทึมของเวลาติดตามเข้าสู่แบบจำลองเป็นออฟเซ็ต (offset) ซึ่งเป็นพจน์ที่สัมประสิทธิ์ถูกตรึงไว้ที่หนึ่ง Poisson regression ถือว่าความแปรปรวนของจำนวนนับเท่ากับค่าเฉลี่ย
frailty ทำให้ข้อสมมตินี้ไม่เป็นจริง เพราะผู้ป่วยไม่กี่คนนอนโรงพยาบาลหลายครั้งและส่วนใหญ่ไม่นอนเลย ความแปรผันส่วนเกินนี้เรียกว่าการกระจายเกิน (overdispersion) Negative binomial regression (การถดถอยทวินามลบ) เพิ่มตัวคูณระดับผู้ป่วยที่มีความแปรปรวน $\alpha$ เพื่อดูดซับมัน ในการทดลองจำลอง $\hat\alpha$ เท่ากับ 0.67 โดยเครื่องหมายหมวกแสดงค่าประมาณ ใกล้กับความแปรปรวนของ frailty ในตัวสร้างข้อมูลที่ 0.6 อัตราส่วนของอัตราจาก negative binomial เท่ากับ 0.72 (ช่วงเชื่อมั่น 95% คือ 0.62 ถึง 0.83)
อัตราส่วนของอัตราจาก Poisson เท่ากับ 0.73 และค่าคลาดเคลื่อนมาตรฐานแบบไร้เดียงสาและแบบ robust คือ 0.0555 และ 0.0738 ซึ่งเท่ากับของ Andersen-Gill ถึงทศนิยมสี่ตำแหน่ง เมื่อมีหนึ่งแถวต่อผู้ป่วย robust standard error ของแบบจำลอง Poisson ก็คำนึงถึงตัวผู้ป่วยอยู่แล้ว แบบจำลองการนับให้อัตราส่วนของอัตราและจำนวนนับเฉลี่ย ไม่ได้บอกว่าการนอนโรงพยาบาลเกิดเมื่อใด และจัดการการเสียชีวิตได้ไม่ดีไปกว่าแบบจำลองแบบ Cox บทความแยกเรื่อง Poisson regressionอธิบายเรื่องอัตราไว้ลึกกว่านี้
- Stata:
nbreg n_adm arm, exposure(fu_months) irrโดยn_admคือจำนวนนับ และfu_monthsคือเวลาติดตามเป็นเดือน - R:
glm.nb(n_adm ~ arm + offset(log(fu_months)), data = w3)จากแพ็กเกจ MASS
การทดลองจำลอง: ทุกแบบจำลองเรียงข้างกัน
การทดลองจำลองมีผู้ป่วย 1,500 คน กลุ่มละ 750 คน และการนอนโรงพยาบาล 1,313 ครั้ง คือ 727 ครั้งในกลุ่มควบคุมและ 586 ครั้งในกลุ่มรักษา ผู้ป่วยที่นอนโรงพยาบาลอย่างน้อยหนึ่งครั้งมี 364 คนในกลุ่มควบคุมและ 319 คนในกลุ่มรักษา จำนวนการนอนโรงพยาบาลเฉลี่ยต่อผู้ป่วยคือ 0.97 ในกลุ่มควบคุมและ 0.78 ในกลุ่มรักษา อัตราส่วนของอัตราการนอนโรงพยาบาลในตัวสร้างข้อมูลคือ 0.70
แบบจำลอง Cox สำหรับการนอนโรงพยาบาลครั้งแรกเท่านั้น โดยเซ็นเซอร์การเสียชีวิตก่อนนอนโรงพยาบาล ใช้การนอนโรงพยาบาล 683 จาก 1,313 ครั้ง ให้ HR 0.77 (ช่วงเชื่อมั่น 95% คือ 0.66 ถึง 0.89) และค่าของมันในการทดลองจำลองที่มีผู้ป่วย 100,000 คนคือ 0.75 ไม่ใช่ 0.70 นี่คือแบบจำลอง Cox เฉพาะสาเหตุ (cause-specific Cox) ของตอนที่ 5 ของชุดบทความนี้
อัตราส่วนฮาซาร์ดของการนอนโรงพยาบาลครั้งแรกในระดับประชากรเคลื่อนจาก 0.70 ณ การสุ่ม เป็น 0.76 หลังหนึ่งปี และ 0.80 หลังสองปี ขณะที่อัตราส่วนระดับผู้ป่วยคงที่ที่ 0.70 อัตราส่วนฮาซาร์ดของการนอนโรงพยาบาลครั้งแรกค่าเดียวจึงเป็นค่าเฉลี่ยของอัตราส่วนที่ไม่คงที่ตลอดการติดตาม ผู้ป่วยกลุ่มควบคุมที่เปราะบางที่สุดนอนโรงพยาบาลเร็วและออกจากชุดเสี่ยงเร็วกว่าผู้ป่วยกลุ่มรักษาที่เปราะบางที่สุด ผู้ป่วยกลุ่มควบคุมที่เหลืออยู่จึงมีแนวโน้มนอนโรงพยาบาลน้อยกว่าผู้ป่วยกลุ่มรักษาที่เหลืออยู่
ทุกแบบจำลองบนการนอนโรงพยาบาลจำลองชุดเดียวกัน
| แบบจำลอง | นาฬิกา | อัตราส่วน (ช่วงเชื่อมั่น 95%) | ค่าคลาดเคลื่อนมาตรฐานแบบอิงแบบจำลอง สเกลลอการิทึม | ค่าคลาดเคลื่อนมาตรฐานแบบ robust สเกลลอการิทึม | ค่าเมื่อมีผู้ป่วยจำลอง 100,000 คน |
|---|---|---|---|---|---|
| Cox เฉพาะการนอนโรงพยาบาลครั้งแรก | เวลารวม | 0.77 (0.66 ถึง 0.89) | ไม่แสดง | ไม่จำเป็น: หนึ่งแถวต่อผู้ป่วย | 0.75 |
| Andersen-Gill | เวลารวม | 0.73 (0.63 ถึง 0.85) | 0.0555 | 0.0738 | 0.70 |
| PWP เวลารวม | เวลารวม แบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาล | 0.78 (0.69 ถึง 0.87) | 0.0559 | 0.0581 | 0.76 |
| PWP เวลาระหว่างครั้ง | เวลาระหว่างครั้ง แบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาล | 0.77 (0.69 ถึง 0.87) | 0.0559 | 0.0587 | 0.76 |
| Poisson | จำนวนนับต่อเดือนของการติดตาม | 0.73 (0.63 ถึง 0.85) | 0.0555 | 0.0738 | ไม่ได้คำนวณ |
| Negative binomial | จำนวนนับต่อเดือนของการติดตาม | 0.72 (0.62 ถึง 0.83) | 0.0729 | ไม่ใช้ | 0.71 |
Stata: Andersen-Gill พร้อมค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ตามผู้ป่วย
* Andersen-Gill: every admission counts, total time, robust (sandwich) SE clustered on patient
stset stop, id(id) failure(event == 1) time0(start) exit(time .)
stcox arm, vce(cluster id)
. * Andersen-Gill: every admission counts, total time, robust (sandwich) SE clustered on patient
. stset stop, id(id) failure(event == 1) time0(start) exit(time .)
Survival-time data settings
ID variable: id
Failure event: event==1
Observed time interval: (start, stop]
Exit on or before: time .
--------------------------------------------------------------------------
2,813 total observations
0 exclusions
--------------------------------------------------------------------------
2,813 observations remaining, representing
1,500 subjects
1,313 failures in multiple-failure-per-subject data
29,562.808 total analysis time at risk and under observation
At risk from t = 0
Earliest observed entry t = 0
Last observed exit t = 35.94684
. stcox arm, vce(cluster id)
Failure _d: event==1
Analysis time _t: stop
Exit on or before: time .
ID variable: id
Iteration 0: Log pseudolikelihood = -9007.5576
Iteration 1: Log pseudolikelihood = -8991.7416
Iteration 2: Log pseudolikelihood = -8991.7416
Refining estimates:
Iteration 0: Log pseudolikelihood = -8991.7416
Cox regression with no ties
No. of subjects = 1,500 Number of obs = 2,813
No. of failures = 1,313
Time at risk = 29,562.8078
Wald chi2(1) = 17.80
Log pseudolikelihood = -8991.7416 Prob > chi2 = 0.0000
(Std. err. adjusted for 1,500 clusters in id)
------------------------------------------------------------------------------
| Robust
_t | Haz. ratio std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
arm | .7325 .054048 -4.22 0.000 .6338715 .8464749
------------------------------------------------------------------------------
R: แบบจำลองเดียวกัน ค่าคลาดเคลื่อนมาตรฐานแบบไร้เดียงสาและแบบ robust ในตารางเดียว
# Andersen-Gill: every admission counts, total time, robust (sandwich) SE clustered on patient
ag <- coxph(Surv(start, stop, event) ~ arm + cluster(id), data = rl, ties = "breslow")
print(summary(ag))
> ag <- coxph(Surv(start, stop, event) ~ arm + cluster(id),
+ data = rl, ties = "breslow")
> print(summary(ag))
Call:
coxph(formula = Surv(start, stop, event) ~ arm, data = rl, ties = "breslow",
cluster = id)
n= 2813, number of events= 1313
coef exp(coef) se(coef) robust se z Pr(>|z|)
arm -0.31129 0.73250 0.05555 0.07376 -4.22 2.44e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
exp(coef) exp(-coef) lower .95 upper .95
arm 0.7325 1.365 0.6339 0.8464
Concordance= 0.539 (se = 0.009 )
Likelihood ratio test= 31.63 on 1 df, p=2e-08
Wald test = 17.81 on 1 df, p=2e-05
Score (logrank) test = 31.66 on 1 df, p=2e-08, Robust = 17.59 p=3e-05
(Note: the likelihood ratio and score tests assume independence of
observations within a cluster, the Wald and robust score tests do not).
เปรียบเทียบแบบจำลองเหตุการณ์ซ้ำ
ให้เลือกตามคำถาม: Andersen-Gill สำหรับอัตราการนอนโรงพยาบาลในผู้ป่วยที่ยังมีชีวิต PWP สำหรับการนอนโรงพยาบาลครั้งถัดไปเมื่อทราบจำนวนครั้งที่นอนโรงพยาบาลก่อนหน้า และแบบจำลองการนับสำหรับจำนวนการนอนโรงพยาบาลต่อเดือนของการติดตาม ตารางด้านล่างเรียงแบบจำลองตามนาฬิกา ชุดเสี่ยง และความหมาย บทความแนะนำเชิงปฏิบัติฉบับหนึ่งเปรียบเทียบแบบจำลองเหล่านี้บนข้อมูลทางระบาดวิทยา [6] และบทความทบทวนฉบับหนึ่งนำมาใช้กับการนอนโรงพยาบาลซ้ำจากหัวใจล้มเหลวในการทดลองขนาดใหญ่ [7]
| แบบจำลอง | นาฬิกา | ชุดเสี่ยงของเหตุการณ์ถัดไป | อัตราส่วนเปรียบเทียบอะไร | จัดการความเกี่ยวพันกันด้วย |
|---|---|---|---|---|
| Cox เหตุการณ์แรก | เวลารวม | ผู้ป่วยที่ยังมีชีวิต อยู่ในการติดตาม และยังไม่เคยนอนโรงพยาบาล | อัตราการนอนโรงพยาบาลครั้งแรก | ไม่ต้องจัดการ: หนึ่งแถวต่อผู้ป่วย |
| Andersen-Gill | เวลารวม | ทุกคนที่ยังมีชีวิตและอยู่ในการติดตาม | อัตราการนอนโรงพยาบาลในผู้ป่วยที่ยังมีชีวิต โดยนับทุกครั้งเหมือนกัน | ค่าคลาดเคลื่อนมาตรฐานแบบ robust ที่คลัสเตอร์ตามผู้ป่วย |
| PWP เวลารวม | เวลารวม | สำหรับการนอนโรงพยาบาลครั้งที่ k คือผู้ป่วยที่มี k - 1 ครั้ง | อัตราของการนอนโรงพยาบาลครั้งถัดไป เมื่อทราบจำนวนครั้งที่ผ่านมา | การแบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาลและค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ |
| PWP เวลาระหว่างครั้ง | เวลานับจากการนอนโรงพยาบาลครั้งล่าสุด | เหมือน PWP เวลารวม แต่เริ่มนาฬิกาใหม่ | อัตราของการนอนโรงพยาบาลครั้งถัดไปตามเวลาที่ผ่านจากครั้งล่าสุด เมื่อทราบจำนวนครั้งที่ผ่านมา | การแบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาลและค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ |
| Wei-Lin-Weissfeld | เวลารวม แยกตามลำดับครั้ง | ทุกคน สำหรับทุกลำดับครั้ง | การนอนโรงพยาบาลแต่ละลำดับเป็นผลลัพธ์ของตัวเอง | ค่าคลาดเคลื่อนมาตรฐานแบบ robust |
| Shared frailty | เวลารวมหรือเวลาระหว่างครั้ง | เหมือน Andersen-Gill หรือ PWP | อัตราของผู้ป่วยที่มี frailty เท่ากัน | ตัวคูณสุ่มรายผู้ป่วย |
| Negative binomial | ไม่มี: นับจำนวนต่อผู้ป่วย | ไม่เกี่ยวข้อง | จำนวนการนอนโรงพยาบาลต่อเดือนของการติดตาม | ตัวคูณแบบแกมมารายผู้ป่วย |
ความเข้าใจผิดที่พบบ่อยและวิธีแก้
-
"Andersen-Gill ที่ใช้ robust standard error จัดการได้ทั้งความเกี่ยวพันกันและการเสียชีวิต"
การคลัสเตอร์ตามผู้ป่วยเปลี่ยนเพียงค่าคลาดเคลื่อนมาตรฐาน แถวสุดท้ายของผู้ป่วยที่เสียชีวิตยังจบด้วย event = 0 ซึ่งเป็นรหัสเดียวกับผู้ป่วยที่ถูกเซ็นเซอร์ขณะยังมีชีวิต
วิธีแก้: robust standard error ปรับความไม่แน่นอนสำหรับเหตุการณ์ซ้ำในผู้ป่วยคนเดียวกัน แต่ไม่เปลี่ยนสิ่งที่อัตราส่วนฮาซาร์ดประมาณ และยังปฏิบัติต่อการเสียชีวิตเสมือนการเซ็นเซอร์ธรรมดา ให้คลัสเตอร์ตามผู้ป่วยสำหรับการนอนโรงพยาบาลซ้ำ แล้วระบุว่าอัตราส่วนฮาซาร์ดอธิบายการนอนโรงพยาบาลในผู้ป่วยที่ยังมีชีวิต และรายงานการเสียชีวิตแยกตามกลุ่มไว้ข้างกัน
-
"robust standard error แก้แบบจำลองที่กำหนดผิดได้"
ในการทดลองจำลอง การคลัสเตอร์ตามผู้ป่วยทำให้ช่วงเชื่อมั่นของ Andersen-Gill กว้างขึ้น และอัตราส่วนฮาซาร์ดยังคงอยู่ที่ 0.73
วิธีแก้: robust standard error ช่วยแก้ค่าคลาดเคลื่อนมาตรฐานเมื่อข้อสมมติเรื่องความแปรปรวนผิด แต่ไม่ได้แก้แบบจำลองค่าเฉลี่ยที่ผิด และสัมประสิทธิ์ที่ลำเอียงก็ยังคงลำเอียงอยู่
-
"นับเฉพาะการนอนโรงพยาบาลครั้งแรกคือทางที่ระมัดระวังที่สุด"
ในที่นี้มันใช้การนอนโรงพยาบาล 683 จาก 1,313 ครั้ง และอัตราส่วนฮาซาร์ดของมันเลื่อนเข้าหา 1 เมื่อผู้ป่วยที่มีแนวโน้มนอนโรงพยาบาลมากที่สุดออกจากชุดเสี่ยง
วิธีแก้: คงการวิเคราะห์เหตุการณ์แรกไว้เมื่อคำถามคือการนอนโรงพยาบาลครั้งแรก และเพิ่มแบบจำลองเหตุการณ์ซ้ำพร้อมรายงานการเสียชีวิตไว้ข้างกัน เมื่อคำถามคือภาระของการนอนโรงพยาบาล
-
"อัตราส่วนฮาซาร์ดของ PWP คือการเปรียบเทียบแบบสุ่มในทุกลำดับครั้งที่นอนโรงพยาบาล"
ผู้ป่วยที่ไปถึงการนอนโรงพยาบาลครั้งหลังถูกคัดเลือกด้วยประวัติของตนเอง ภายในชั้นหลัง ๆ สองกลุ่มจึงไม่ใช่กลุ่มที่ถูกสุ่มอีกต่อไป
วิธีแก้: อ่านอัตราส่วนฮาซาร์ดของ PWP ว่าเป็นค่าที่มีเงื่อนไขตามจำนวนครั้งที่นอนโรงพยาบาลก่อนหน้า และรายงานจำนวนแถวและจำนวนการนอนโรงพยาบาลในแต่ละชั้น
-
"จำนวนการนอนโรงพยาบาลต่อผู้ป่วยที่ถูกสุ่มน้อยลง แสดงว่ายาป้องกันการนอนโรงพยาบาลได้"
ยาที่ทำให้อายุสั้นลงก็ทำให้เวลาที่ผู้ป่วยนอนโรงพยาบาลได้สั้นลงด้วย
วิธีแก้: รายงานการเสียชีวิตแยกตามกลุ่มไว้ข้างผลการนอนโรงพยาบาลทุกอย่าง รวมถึงฟังก์ชันความถี่เฉลี่ย เพราะมันนับการนอนโรงพยาบาลต่อผู้ป่วยที่ถูกสุ่ม และลดลงด้วยเมื่อผู้ป่วยเสียชีวิตเร็วขึ้น พิจารณาผลลัพธ์รวมที่มีการเสียชีวิตเป็นมุมมองเพิ่ม
สิ่งที่ควรทำในการวิเคราะห์ของคุณเอง
- เขียนปริมาณเป้าหมายของการประมาณ (estimand) ซึ่งคือปริมาณที่แน่ชัดซึ่งการวิเคราะห์ตั้งใจประมาณ ก่อนเลือกแบบจำลอง ได้แก่อัตราการนอนโรงพยาบาลในผู้ป่วยที่ยังมีชีวิต จำนวนการนอนโรงพยาบาลที่คาดไว้ต่อผู้ป่วย หรือผลลัพธ์รวมกับการเสียชีวิต
- สร้างแถว start-stop จากวันที่นอนโรงพยาบาล และตรวจผู้ป่วยบางคนด้วยมือเทียบกับบันทึกของเขา
- เมื่อผู้ป่วยหนึ่งคนมีเหตุการณ์มากกว่าหนึ่งครั้งใน Andersen-Gill, PWP หรือ Wei-Lin-Weissfeld ให้คลัสเตอร์ค่าคลาดเคลื่อนมาตรฐานตามผู้ป่วย ส่วนแบบจำลอง frailty จัดการความเกี่ยวพันกันผ่านพจน์สุ่มของมันแทน
- ถ้าลำดับของการนอนโรงพยาบาลสำคัญ ให้พิจารณากำหนด PWP และนาฬิกาของมันไว้ล่วงหน้า และรวมชั้นหลังที่มีข้อมูลน้อยเข้าด้วยกัน
- พิจารณาตัดสินใจล่วงหน้าว่าวันที่อยู่ในโรงพยาบาลนับเป็นเวลาที่เสี่ยงหรือไม่ เพราะผู้ป่วยในนอนโรงพยาบาลซ้ำไม่ได้
- รายงานการเสียชีวิตแยกตามกลุ่มไว้ข้างผลการนอนโรงพยาบาลทุกอย่าง
อภิธานศัพท์
- recurrent events (เหตุการณ์ซ้ำ)
- เหตุการณ์ เช่นการนอนโรงพยาบาล ที่เกิดได้มากกว่าหนึ่งครั้งในผู้ป่วยคนเดียวกัน
- counting process (กระบวนการนับ)
- มุมมองของการติดตามที่จำนวนเหตุการณ์สะสมของผู้ป่วยแต่ละคนเพิ่มขึ้นหนึ่งทุกครั้งที่เกิดเหตุการณ์
- start-stop layout (รูปแบบ start-stop)
- หนึ่งแถวต่อหนึ่งช่วงที่ยังเสี่ยงอยู่ พร้อมเวลาเริ่ม เวลาสิ้นสุด ตัวบ่งชี้เหตุการณ์ และลำดับครั้งของเหตุการณ์
- hazard ratio (อัตราส่วนฮาซาร์ด)
- อัตราส่วนของอัตราการเกิดเหตุการณ์ระหว่างสองกลุ่มในผู้ป่วยที่ยังเสี่ยงอยู่ ไม่ใช่อัตราส่วนของความเสี่ยง
- Andersen-Gill model (แบบจำลอง Andersen-Gill)
- แบบจำลอง Cox สำหรับเหตุการณ์ซ้ำบนเวลารวม ที่ใช้อัตราพื้นฐานเดียวกับเหตุการณ์ทุกครั้ง โดยปกติรายงานคู่กับค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ตามผู้ป่วย
- robust (sandwich) standard error (ค่าคลาดเคลื่อนมาตรฐานแบบแซนด์วิช)
- ค่าคลาดเคลื่อนมาตรฐานที่สร้างจากส่วนที่ผู้ป่วยแต่ละคนมีต่อค่าประมาณทั้งหมด ใช้ได้เมื่อเหตุการณ์ภายในผู้ป่วยคนเดียวกันสัมพันธ์กัน โดยแบบจำลองค่าเฉลี่ยต้องถูกต้อง
- Prentice-Williams-Peterson model (แบบจำลอง Prentice-Williams-Peterson)
- แบบจำลอง Cox สำหรับเหตุการณ์ซ้ำที่แบ่งชั้นตามลำดับครั้งของเหตุการณ์ ผู้ป่วยจึงเสี่ยงต่อเหตุการณ์ครั้งที่ k ได้ก็ต่อเมื่อผ่านครั้งที่ k - 1 แล้ว
- total time (เวลารวม)
- เวลาที่วัดจากการสุ่มสำหรับเหตุการณ์ทุกครั้ง
- gap time (เวลาระหว่างครั้ง)
- เวลาที่วัดจากเหตุการณ์ครั้งก่อน โดยตั้งนาฬิกากลับเป็น 0 หลังเหตุการณ์แต่ละครั้ง
- Wei-Lin-Weissfeld model (แบบจำลอง Wei-Lin-Weissfeld)
- แบบจำลองที่ปฏิบัติต่อเหตุการณ์แต่ละลำดับครั้งเป็นผลลัพธ์ของตัวเอง จับเวลานับจากการสุ่ม และเฉลี่ยข้ามผู้ป่วยแทนที่จะกำหนดเงื่อนไขตามประวัติของผู้ป่วย
- frailty (ตัวคูณสุ่มรายผู้ป่วย)
- ตัวคูณสุ่มระดับผู้ป่วยที่ปรับอัตราเหตุการณ์ทุกอัตราของผู้ป่วยคนนั้น แสดงแนวโน้มร่วมที่จะเกิดเหตุการณ์
- terminal event (เหตุการณ์ปลายทาง)
- เหตุการณ์ เช่นการเสียชีวิต ที่หลังจากนั้นไม่มีเหตุการณ์ซ้ำเกิดขึ้นได้อีก
- negative binomial regression (การถดถอยทวินามลบ)
- แบบจำลองการนับที่เพิ่มตัวคูณระดับผู้ป่วยให้ Poisson regression เพื่อรองรับการกระจายเกิน (overdispersion)
- mean frequency function (ฟังก์ชันความถี่เฉลี่ย)
- จำนวนเหตุการณ์ที่คาดไว้ต่อผู้ป่วยภายในแต่ละเวลา โดยผู้ป่วยที่เสียชีวิตไม่เพิ่มเหตุการณ์อีก
เอกสารอ้างอิง
- Andersen PK, Gill RD. Cox's regression model for counting processes: a large sample study. Ann Stat. 1982;10(4):1100-1120. doi:10.1214/aos/1176345976 https://doi.org/10.1214/aos/1176345976
- Lin DY, Wei LJ, Yang I, Ying Z. Semiparametric regression for the mean and rate functions of recurrent events. J R Stat Soc Series B Stat Methodol. 2000;62(4):711-730. doi:10.1111/1467-9868.00259 https://doi.org/10.1111/1467-9868.00259
- Prentice RL, Williams BJ, Peterson AV. On the regression analysis of multivariate failure time data. Biometrika. 1981;68(2):373-379. doi:10.1093/biomet/68.2.373 https://doi.org/10.1093/biomet/68.2.373
- Wei LJ, Lin DY, Weissfeld L. Regression analysis of multivariate incomplete failure time data by modeling marginal distributions. J Am Stat Assoc. 1989;84(408):1065-1073. doi:10.1080/01621459.1989.10478873 https://doi.org/10.1080/01621459.1989.10478873
- Ghosh D, Lin DY. Nonparametric analysis of recurrent events and death. Biometrics. 2000;56(2):554-562. doi:10.1111/j.0006-341X.2000.00554.x https://doi.org/10.1111/j.0006-341X.2000.00554.x
- Amorim LDAF, Cai J. Modelling recurrent events: a tutorial for analysis in epidemiology. Int J Epidemiol. 2015;44(1):324-333. doi:10.1093/ije/dyu222 https://doi.org/10.1093/ije/dyu222
- Rogers JK, Pocock SJ, McMurray JJV, Granger CB, Michelson EL, Ostergren J, et al. Analysing recurrent hospitalizations in heart failure: a review of statistical methodology, with application to CHARM-Preserved. Eur J Heart Fail. 2014;16(1):33-40. doi:10.1002/ejhf.29 https://doi.org/10.1002/ejhf.29
ประเด็นสำคัญ
- การวิเคราะห์เหตุการณ์แรกเก็บการนอนโรงพยาบาลหนึ่งครั้งต่อผู้ป่วยหนึ่งคน และไม่สนใจทุกครั้งหลังจากนั้น
- Andersen-Gill นับการนอนโรงพยาบาลทุกครั้งบนนาฬิกาเดียว และอัตราส่วนฮาซาร์ดของมันต้องใช้ค่าคลาดเคลื่อนมาตรฐานแบบคลัสเตอร์ตามผู้ป่วย
- Prentice-Williams-Peterson แบ่งชั้นตามลำดับครั้งที่นอนโรงพยาบาลบนเวลารวมหรือเวลาระหว่างครั้ง และอัตราส่วนฮาซาร์ดของมันมีเงื่อนไขตามประวัติการนอนโรงพยาบาล
- robust standard error เปลี่ยนความไม่แน่นอน ไม่เปลี่ยนค่าประมาณ และไม่ได้แก้วิธีจัดการการเสียชีวิต
- การเสียชีวิตยุติการนับ จึงควรรายงานการเสียชีวิตไว้ข้างการนอนโรงพยาบาล หรือรวมไว้ในผลลัพธ์
อ่านต่อในวิกิ: [[time-to-event-survival-analysis-th]]