การพยากรณ์ด้วยโมเดล Cox PH

Survival Analysis ด้วย Python

Shae Wang

Senior Data Scientist

พยากรณ์เวลา survival มัธยฐาน

หลังจากเรียก .fit() เพื่อ fit โมเดลกับข้อมูลแล้ว:

  • .predict_median(): พยากรณ์ค่ามัธยฐานอายุขัยของแต่ละ subject
    • หาก survival curve ไม่ตัดค่า 0.5 เวลา survival มัธยฐานจะเป็น $\inf$
  • พารามิเตอร์:
    • X: DataFrame ที่ใช้พยากรณ์
    • conditional_after: array หรือ list ของค่าที่แสดงว่าแต่ละ subject มีชีวิตอยู่มาแล้วนานเท่าใด
Survival Analysis ด้วย Python

พยากรณ์เวลา survival มัธยฐาน

model.predict_median(X, conditional_after)
0       inf
1      44.0
2      46.0
3       inf
4      48.0
       ... 
500     inf
Survival Analysis ด้วย Python

พยากรณ์ survival function

  • .predict_survival_function(): พยากรณ์ survival function ของแต่ละ subject จาก covariate ของพวกเขา
  • พารามิเตอร์:
    • X: DataFrame ที่ใช้พยากรณ์
    • conditional_after: array หรือ list ของค่าที่แสดงว่าแต่ละ subject มีชีวิตอยู่มาแล้วนานเท่าใด
Survival Analysis ด้วย Python

พยากรณ์ survival function

model.predict_survival_function(X, conditional_after)
              0           1           2           3           4         ...         500
1.0    0.997616    0.993695    0.994083    0.999045    0.997626         ...    0.998865    0.997827    0.995453    0.997462    ...    0.997826    0.996005    0.996031    0.997774    0.998892    0.999184    0.997033    0.998866    0.998170    0.998610
2.0    0.995230    0.987411    0.988183    0.998089    0.995250         ...    0.997728    0.995653    0.990914    0.994922    ...    0.995649    0.992014    0.992067    0.995547    0.997782    0.998366    0.994065    0.997730    0.996337    0.997217
3.0    0.992848    0.981162    0.982314    0.997133    0.992878         ...    0.996592    0.993482    0.986392    0.992388    ...    0.993476    0.988037    0.988115    0.993324    0.996673    0.997548    0.991105    0.996595    0.994507    0.995826
4.0    0.990468    0.974941    0.976468    0.996176    0.990507         ...    0.995455    0.991311    0.981882    0.989855    ...    0.991304    0.984067    0.984171    0.991100    0.995563    0.996729    0.988147    0.995458    0.992676    0.994433
5.0    0.988085    0.968739    0.970639    0.995216    0.986392         ...    0.993476

ทำไมการพยากรณ์ survival จึงมีประโยชน์?

  • ช่วยป้องกันความล้มเหลวเชิงรุก สร้างโมเดลพยากรณ์ ฯลฯ
Survival Analysis ด้วย Python

ขั้นตอนสำคัญ

  1. ประมวลผลข้อมูลและ one-hot encode ตัวแปรเชิงกลุ่มที่มีอยู่
  2. แบ่งข้อมูลเป็น train และ test (อัตราส่วนที่นิยมคือ 80% train และ 20% test)
    • สัดส่วนของข้อมูล censored ควรใกล้เคียงกันทั้งสองชุด
  3. Fit โมเดล Cox PH กับชุด train
Survival Analysis ด้วย Python

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

Survival Analysis ด้วย Python

Preparing Video For Download...