Diğer dağılımlar ve model seçimi

Python ile Survival Analysis

Shae Wang

Senior Data Scientist

Hangi model veriye en iyi uyar?

Aynı veriye farklı modellerle ait 4 sağkalım eğrisi

Python ile Survival Analysis

Parametrik modelleri seçmek

  • Parametrik olmayan modelleme (örn. Kaplan–Meier)
    • Dağılımdan bağımsız olduğu için veriyi doğru betimler
    • Düzgün/sürekli/türevlenebilir değildir
  • Parametrik modelleme (örn. Weibull)
    • Genelde daha fazla bilgi sağlar
    • Yanlış model seçilirse ciddi yanlı sonuçlar verir
Python ile Survival Analysis

Yaygın parametrik sağkalım modelleri

  • Weibull modeli
    from lifelines import WeibullFitter
    
  • Üstel (Exponential) model
    from lifelines import ExponentialFitter
    
  • Log-normal model
    from lifelines import LogNormalFitter
    
  • Log-lojistik model
    from lifelines import LogLogisticFitter
    
  • Gamma modeli
    from lifelines import GeneralizedGammaFitter
    
Python ile Survival Analysis

Akaike Bilgi Kriteri (AIC)

  • AIC: Belirli bir veri kümesi için tahmin hatasının ve istatistiksel modellerin göreli kalitesinin bir kestiricisidir.
  • Bir modelin kaybettiği göreli bilgi miktarını tahmin eder ve çok sayıda parametreyi cezalandırır.
    • Daha az bilgi kaybı, daha yüksek model kalitesi demektir.
    • Daha az parametre (daha az karmaşık) daha yüksek kalite demektir.
  • Aday modeller arasından, AIC değeri en düşük olan tercih edilir.
Python ile Survival Analysis

Model seçiminde AIC kullanımı

Adım 1) lifelines ile parametrik modelleri uydurun

Adım 2) Her modelin AIC_ özelliğini yazdırıp karşılaştırın

Adım 3) En düşük AIC değeri tercih edilir

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 ile Survival Analysis

find_best_parametric_model()

  • find_best_parametric_model(): parametrik modeller arasında AIC karşılaştırmasını otomatikleştiren yerleşik bir lifelines işlevi.
  • lifelines içindeki her parametrik modeli dolaşır.

Nasıl kullanılır?

  • T: süreler, E: sansür
    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 ile Survival Analysis

QQ grafiği

  • QQ grafiği: Nicelikleri karşılaştırarak iki olasılık dağılımını kıyaslar.
  • Dağılımlar benzerse noktal ar yaklaşık y = x doğrusu üzerinde olur.

qq grafiği örneği

Python ile Survival Analysis

Model seçiminde QQ grafikleri kullanımı

Adım 1) lifelines ile parametrik modelleri uydurun.

Adım 2) Her model için QQ grafiği çizin.

Adım 3) y = x çizgisine en yakın QQ grafiği tercih edilir.

from lifelines.plotting import qq_plot

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

Model seçiminde QQ grafikleri kullanımı

karşılaştırma için qq grafiği

Python ile Survival Analysis

Hadi pratik yapalım!

Python ile Survival Analysis

Preparing Video For Download...