Survival curve แรกของคุณ!

Survival Analysis ด้วย Python

Shae Wang

Senior Data Scientist

ฟังก์ชันการรอดชีพ

  • $T$: เวลาที่เหตุการณ์ที่สนใจเกิดขึ้น
  • $t$: จุดใดก็ได้ในช่วงเวลาที่สังเกต

$$\Large{S(t) = Pr(T>t)}$$

  • $S(t)$: แบบจำลองความน่าจะเป็นที่เหตุการณ์จะเกิดขึ้นหลัง $t$
  • $Pr(T>t)$: ความน่าจะเป็นในการรอดชีพ
Survival Analysis ด้วย Python

Survival curve

$$\Large{S(t) = Pr(T>t)}$$

ตัวอย่าง survival curve

Survival Analysis ด้วย Python

Survival curve

$$\Large{S(t) = Pr(T>t)}$$

ตัวอย่าง survival curve

Survival Analysis ด้วย Python

Survival curve

$$\Large{S(t) = Pr(T>t)}$$

ตัวอย่าง survival curve

คำอธิบายสัญลักษณ์ survival curve

Survival Analysis ด้วย Python

การตีความ survival curve

  • จุด$(a,b)$: ความน่าจะเป็นที่บุคคลหนึ่งจะรอดชีพนานกว่า $a$ คือ $b$

ตัวอย่าง survival curve

Survival Analysis ด้วย Python

การตีความ survival curve

  • จุด$(a,b)$: ความน่าจะเป็นที่บุคคลหนึ่งจะรอดชีพนานกว่า $a$ คือ $b$
  • เส้นโค้งราบกว่า: อัตราการเกิดเหตุการณ์ต่ำกว่า
  • เส้นโค้งชันกว่า: อัตราการเกิดเหตุการณ์สูงกว่า

ตัวอย่าง survival curve พร้อมจุดที่ระบุ

Survival Analysis ด้วย Python

แบบจำลอง Non-parametric และ Parametric

การสร้างแบบจำลองแบบ Non-parametric
  • ไม่ตั้งสมมติฐานใดๆ เกี่ยวกับรูปร่างของข้อมูล
การสร้างแบบจำลองแบบ Parametric
  • ตั้งสมมติฐานบางอย่างเกี่ยวกับรูปร่างของข้อมูล
  • อธิบายได้ด้วยพารามิเตอร์จำนวนจำกัด
    • เช่น อาจสมมติว่า survival curve เป็นไปตามการแจกแจงแบบเอกซ์โพเนนเชียล
Survival Analysis ด้วย Python

แบบจำลอง Non-parametric และ Parametric

การสร้างแบบจำลองแบบ Non-parametric
  • Survival curve มักไม่ราบเรียบ

ตัวอย่าง survival curve แบบ non-parametric

การสร้างแบบจำลองแบบ Parametric
  • Survival curve มักราบเรียบ

ตัวอย่าง survival curve แบบ parametric

  • ต้องอาศัยการที่แบบจำลอง parametric อธิบายข้อมูลได้ดีจริง
Survival Analysis ด้วย Python

การวาด survival curve

แพ็กเกจ lifelines เป็นไลบรารีสำหรับการวิเคราะห์การรอดชีพแบบครบวงจร

  • ฟิตฟังก์ชันการรอดชีพกับข้อมูล
  • พล็อต survival curve จากฟังก์ชันที่ฟิตแล้ว
import lifelines
import matplotlib.pyplot as plt

.fit(durations, event_observed)

.plot_survival_function()

Survival Analysis ด้วย Python

ตัวอย่าง survival curve

ชื่อ DataFrame: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
  • id: รหัสของสินเชื่อที่อยู่อาศัย
  • duration: จำนวนปีที่ยังชำระสินเชื่อไม่หมด
  • paid_off: 1 หากชำระสินเชื่อครบแล้ว, 0 หากยังชำระไม่ครบ
Survival Analysis ด้วย Python

ตัวอย่าง survival curve

import lifelines
from matplotlib import pyplot as plt
kmf = lifelines.KaplanMeierFitter()
kmf.fit(duration=mortgage_df["duration"], 
        event_observed=mortgage_df["paid_off"])
kmf.plot_survival_function()
plt.show()

ตัวอย่าง Kaplan-Meier survival curve

Survival Analysis ด้วย Python

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

Survival Analysis ด้วย Python

Preparing Video For Download...