अन्य डिस्ट्रीब्यूशन और मॉडल चयन

Python में Survival Analysis

Shae Wang

Senior Data Scientist

कौन सा मॉडल डेटा पर सबसे अच्छा फिट होता है?

एक ही डेटा पर 4 सर्वाइवल कर्व, अलग-अलग मॉडलों से

Python में Survival Analysis

पैरामीट्रिक मॉडल कैसे चुनें

  • नॉन-पैरामीट्रिक मॉडलिंग (जैसे Kaplan-Meier मॉडल)
    • डिस्ट्रीब्यूशन-फ्री होने से डेटा का सही वर्णन करती है
    • स्मूथ/कॉन्टिन्यूस/डिफरेंशिएबल नहीं होती
  • पैरामीट्रिक मॉडलिंग (जैसे Weibull मॉडल)
    • पैरामीट्रिक स्टैटिस्टिक्स आमतौर पर अधिक जानकारी देती हैं
    • गलत मॉडल चुनने पर निष्कर्ष काफी बायस्ड हो सकते हैं
Python में Survival Analysis

प्रचलित पैरामीट्रिक सर्वाइवल मॉडल

  • Weibull मॉडल
    from lifelines import WeibullFitter
    
  • Exponential मॉडल
    from lifelines import ExponentialFitter
    
  • Log Normal मॉडल
    from lifelines import LogNormalFitter
    
  • Log Logistic मॉडल
    from lifelines import LogLogisticFitter
    
  • Gamma मॉडल
    from lifelines import GeneralizedGammaFitter
    
Python में Survival Analysis

Akaike Information Criterion (AIC)

  • AIC: prediction error और statistical models की relative quality का एक आकलनक, दिए गए डेटा सेट पर.
  • किसी मॉडल से खोई सूचना का सापेक्ष मान आँकता है और बहुत अधिक पैरामीटर होने पर पेनल्टी लगाता है.
    • जितनी कम सूचना खोए, मॉडल उतनी बेहतर क्वालिटी का.
    • जितने कम पैरामीटर (कम जटिल), मॉडल उतनी बेहतर क्वालिटी का.
  • कैंडिडेट मॉडलों में से न्यूनतम AIC वाला मॉडल प्राथमिक है.
Python में Survival Analysis

मॉडल चयन के लिए AIC का उपयोग

चरण 1) lifelines में पैरामीट्रिक मॉडल फिट करें

चरण 2) हर मॉडल की AIC_ प्रॉपर्टी प्रिंट कर तुलना करें

चरण 3) सबसे कम AIC को प्राथमिकता दें

from lifelines import WeibullFitter, 
                      ExponentialFitter, 
                      LogNormalFitter
wb = WeibullFitter().fit(D, E)
exp = ExponentialFitter().fit(D, E)
log = LogNormalFitter().fit(D, E)
print(wb.AIC_, exp.AIC_, log.AIC_)
215.9091   216.1183   202.3498
Python में Survival Analysis

find_best_parametric_model()

  • find_best_parametric_model(): पैरामीट्रिक मॉडलों के बीच AIC तुलना ऑटोमेट करने के लिए lifelines का बिल्ट-इन फंक्शन.
  • lifelines में उपलब्ध हर पैरामीट्रिक मॉडल पर इटरेट करता है.

इसे कैसे उपयोग करें?

  • T: durations, E: censorship
    best_model, best_aic_ = find_best_parametric_model(event_times=T,
                                                       event_observed=E,
                                                       scoring_method="AIC")
    print(best_model)
    
<lifelines.WeibullFitter:"Weibull_estimate", 
fitted with 686 total observations, 387 right-censored observations>
Python में Survival Analysis

QQ प्लॉट

  • QQ प्लॉट: दो probability distributions की तुलना, उनके quantiles को एक-दूसरे के विरुद्ध प्लॉट करके.
  • यदि दोनों distributions मिलते-जुलते हों, तो QQ प्लॉट के पॉइंट्स लगभग रेखा y = x पर होंगे.

QQ प्लॉट उदाहरण

Python में Survival Analysis

मॉडल चयन के लिए QQ प्लॉट का उपयोग

चरण 1) lifelines में पैरामीट्रिक मॉडल फिट करें.

चरण 2) हर मॉडल का QQ प्लॉट बनाएं.

चरण 3) जो QQ प्लॉट y = x के सबसे करीब हो, उसे प्राथमिकता दें.

from lifelines.plotting import qq_plot

for model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)
plt.show()
Python में Survival Analysis

मॉडल चयन के लिए QQ प्लॉट का उपयोग

तुलना के लिए QQ प्लॉट

Python में Survival Analysis

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

Python में Survival Analysis

Preparing Video For Download...