Survival Analysis ด้วย Python
Shae Wang
Senior Data Scientist
ชื่อ DataFrame: mortgage_df
| id | property type | duration | paid_off |
|---|---|---|---|
| 1 | house | 25 | 0 |
| 2 | apartment | 17 | 1 |
| 3 | apartment | 5 | 0 |
| ... | ... | ... | ... |
| 100 | house | 30 | 1 |
ประเภทอสังหาริมทรัพย์: ประเภทของบ้านที่ได้รับการจำนอง (house หรือ apartment)
บ่อยครั้งที่เราต้องการประเมินว่ามีความแตกต่างในการรอดชีพ (หรือความน่าจะเป็นของเหตุการณ์/การรอดชีพ) ระหว่างกลุ่มต่าง ๆ หรือไม่
ฟิตฟังก์ชันการรอดชีพ Kaplan-Meier ให้กับแต่ละกลุ่ม แล้วแสดงเส้นโค้งการรอดชีพแบบเคียงกัน
ข้อดี:
ชื่อ DataFrame: mortgage_df
| id | property type | duration | paid_off |
|---|---|---|---|
| 1 | house | 25 | 0 |
| 2 | apartment | 17 | 1 |
| 3 | apartment | 5 | 0 |
| ... | ... | ... | ... |
| 100 | house | 30 | 1 |
สร้าง Boolean mask สำหรับแต่ละกลุ่ม
house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")
หากมีเพียง 2 กลุ่ม ใช้แค่ 1 mask ก็เพียงพอ อีกกลุ่มสามารถอ้างอิงได้โดยใช้การนิเสธ
สร้าง figure และสร้างอินสแตนซ์ของคลาส KaplanMeierFitter
ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()
ฟิต mortgage_kmf กับกลุ่ม house แล้วพล็อตบน figure ax
mortgage_kmf.fit(duration=mortgage_df[house]["duration"],
event_observed=mortgage_df[house]["paid_off"],
label="Houses")
mortgage_kmf.plot_survival_function(ax=ax)
ฟิต mortgage_kmf กับกลุ่ม apartment แล้วพล็อตบน figure ax
mortgage_kmf.fit(duration=mortgage_df[apt]["duration"],
event_observed=mortgage_df[apt]["paid_off"],
label="Apartments")
mortgage_kmf.plot_survival_function(ax=ax)
plt.show()


หมายเหตุ: หากช่วงความเชื่อมั่นทับซ้อนกันบางจุด โอกาสที่เส้นโค้งทั้งสองจะแตกต่างกันจริงก็จะน้อยลง
Survival Analysis ด้วย Python