Kaplan-Meier एस्टीमेटर फिट करना

Python में Survival Analysis

Shae Wang

Senior Data Scientist

Kaplan-Meier एस्टीमेटर क्या है?

एक non-parametric सांख्यिकीय तरीका जो time-to-event डेटा का survival function अनुमानित करता है.

  • इसे {{1}} यह भी कहते हैं
    • product-limit estimator
    • K-M estimator
  • Non-parametric: एकत्रित डेटा से survival curve बनाता है और किसी underlying distribution को मानकर नहीं चलता
Python में Survival Analysis

गणितीय सहज-बोध

परिभाषाएँ:

  • $t_i$: एक duration समय
  • $d_i$: समय $t_i$ पर हुए events की संख्या
  • $n_i$: समय $t_i$ तक जीवित माने गए individuals की संख्या

 

Survival function $S(t)$ का अनुमान: $$S(t)=\prod_{i:t_i\leq t}\bigg(1-\frac{d_i}{n_i}\bigg)$$

Python में Survival Analysis

इसे product-limit estimator क्यों कहते हैं?

मान लीजिए events 3 समयों पर हैं: 1, 2, 3

$t=2$ के लिए survival rate: $$S(t=2)=\bigg(1-\frac{d_1}{n_1}\bigg)*\bigg(1-\frac{d_2}{n_2}\bigg)$$

$t=3$ के लिए survival rate: $$S(t=3)=S(t=2)*\bigg(1-\frac{d_3}{n_3}\bigg)$$

समय t पर survival rate, t और उससे पहले हर समय पर बचने की प्रतिशत संभावना के गुणनफल के बराबर होता है.

Python में Survival Analysis

ध्यान रखने योग्य धारणाएँ

  • स्पष्ट events: इच्छित event एक स्पष्ट समय पर होता है.
  • सभी subjects में survival संभावनाएँ तुलनीय: व्यक्तियों की survival संभावनाएँ उनके अध्ययन में शामिल होने के समय पर निर्भर नहीं करतीं.
  • Censorship non-informative है: censored observations की survival संभावनाएँ, आगे follow की गई observations जैसी ही मानी जाती हैं.
Python में Survival Analysis

lifelines के साथ Kaplan-Meier एस्टीमेटर

from lifelines import KaplanMeierFitter

KaplanMeierFitter: lifelines लाइब्रेरी की एक class

kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
Python में Survival Analysis

Mortgage समस्या उदाहरण

DataFrame नाम: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
Python में Survival Analysis

Mortgage समस्या उदाहरण

DataFrame नाम: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
from lifelines import KaplanMeierFitter
mortgage_kmf = KaplanMeierFitter()
mortgage_kmf.fit(duration=mortgage_df["duration"], 
        event_observed=mortgage_df["paid_off"])
<lifelines.KaplanMeierFitter:"KM_estimate", 
fitted with 100 total observations, 
18 right-censored observations>
Python में Survival Analysis

Kaplan-Meier एस्टीमेटर का उपयोग

बकाया mortgage की median अवधि क्या है?

print(mortgage_kmf.median_survival_time_)
4.0

आरंभ के बाद हर साल mortgage के बकाया रहने की संभावना क्या है?

print(mortgage_kmf.survival_function_)
          KM_estimate
timeline             
0.0          1.000000
1.0          0.983267
2.0          0.950933
3.0          0.892328
Python में Survival Analysis

Kaplan-Meier एस्टीमेटर का उपयोग

आरंभ के 34वें साल तक mortgage के न चुकने की संभावना क्या है?

mortgage_kmf.predict(34)
0.037998
Python में Survival Analysis

लाभ और सीमाएँ

लाभ
  • survival संभावनाओं की सहज व्याख्या.
  • किसी भी time-to-event डेटा पर लचीला उपयोग.
  • time-to-event डेटा पर आमतौर पर आज़माया जाने वाला पहला मॉडल.
सीमाएँ
  • Survival curve स्मूद नहीं होती.
  • अगर 50% या अधिक डेटा censored है, तो .median_survival_time_ नहीं निकाला जा सकता.
  • Covariates के प्रभाव का survival function पर आकलन करने में प्रभावी नहीं.
Python में Survival Analysis

अभ्यास करते हैं!

Python में Survival Analysis

Preparing Video For Download...