ทำไมต้องใช้การวิเคราะห์การอยู่รอด?

Survival Analysis ด้วย Python

Shae Wang

Senior Data Scientist

ตัวอย่างอายุการใช้งานเฉลี่ยของแบตเตอรี่

ชื่อ DataFrame: battery_df

Battery ID Duration Dead Brand Truck
1 2.5 yrs No Brand A Long
2 6 yrs Yes Brand B Short
3 5 yrs No Brand B Long
... ... ... ... ...
1000 4.5 yrs Yes Brand A Short

อายุการใช้งานเฉลี่ยของแบตเตอรี่คือเท่าไร?

np.average(battery_df["Duration"])
Survival Analysis ด้วย Python

ตัวอย่างอายุการใช้งานเฉลี่ยของแบตเตอรี่

การ์ตูนแสดง censorship ของอายุแบตเตอรี่

Survival Analysis ด้วย Python

Censorship ในอายุการใช้งานแบตเตอรี่

การ์ตูนแสดง censorship ของอายุแบตเตอรี่

  • $T_{duration} \neq T_{lifetime}$ สำหรับแบตเตอรี่ที่ยังไม่หมดอายุ
  • แบตเตอรี่หมายเลข 1, 3, 4 และแบตเตอรี่อื่น ๆ ที่ยังไม่พบความล้มเหลว ถูกนำมาคำนวณอย่างไม่เหมาะสมในการหาค่าเฉลี่ย
Survival Analysis ด้วย Python

ปัญหา censorship

เมื่อทราบเวลาการอยู่รอดเพียงบางส่วน

Censorship เกิดขึ้นได้อย่างไร?

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

ประเภทของ censorship

การ์ตูนแสดงประเภทของ censorship

  • ไม่ถูก censored: เหตุการณ์เกิดขึ้นแล้วและทราบระยะเวลาการอยู่รอด
  • Right-censored: ระยะเวลาการอยู่รอดมากกว่าระยะเวลาที่สังเกต
  • Left-censored: ระยะเวลาการอยู่รอดน้อยกว่าระยะเวลาที่สังเกต
  • Interval-censored: ระยะเวลาการอยู่รอดอยู่ในช่วงหนึ่งแต่ไม่ทราบค่าที่แน่ชัด
Survival Analysis ด้วย Python

ทำไม censorship จึงเป็นปัญหา?

สถิติเชิงรวม

  • เป็นรูปแบบหนึ่งของข้อมูลที่ขาดหายไป
  • ทำให้สถิติเกิดความเอนเอียง เช่น np.average(), max(), min()

การถดถอย

  • การถดถอยเชิงเส้นลดผลรวมของกำลังสองของค่าความคลาดเคลื่อน
  • สำหรับข้อมูลที่ถูก censored จะไม่ทราบค่าความคลาดเคลื่อน
Survival Analysis ด้วย Python

ฟังก์ชันการอยู่รอด

  • ไม่ทำการประมาณค่าข้อมูลที่ถูก censored
  • จำลองความน่าจะเป็นที่ระยะเวลาการอยู่รอดจะมากกว่าค่าที่กำหนด

  $$S(t)=Pr(T>t)$$

Survival Analysis ด้วย Python

การวิเคราะห์การอยู่รอดเทียบกับ censorship

การ์ตูนแสดงข้อมูลที่ไม่ถูก censored

การ์ตูนแสดงข้อมูลที่ถูก censored

Survival Analysis ด้วย Python

การตรวจสอบข้อมูลเพื่อหา censorship

จะระบุได้อย่างไรว่าข้อมูลจุดใดถูก censored?

ขั้นตอนที่ 1) ตรวจสอบคอลัมน์ censorship (มักถูกประมวลผลล่วงหน้าแล้ว)

ข้อมูลถูก censored มากเกินไปหรือไม่?

ขั้นตอนที่ 2) ตรวจสอบสัดส่วนของข้อมูลที่ถูก censored (ค่าอ้างอิงทั่วไปคือ 50%)

Censorship เป็นแบบ non-informative และสุ่มหรือไม่?

ขั้นตอนที่ 3) ตรวจสอบสาเหตุของ censorship เพื่อให้แน่ใจว่าการถูก censored ของข้อมูลไม่ส่งผลต่อการอยู่รอด

Survival Analysis ด้วย Python

มาฝึกกันเถอะ!

Survival Analysis ด้วย Python

Preparing Video For Download...