Distribusi lain dan pemilihan model

Analisis Survival dengan Python

Shae Wang

Senior Data Scientist

Model mana yang paling cocok?

4 kurva survival untuk data yang sama dengan model berbeda

Analisis Survival dengan Python

Memilih model parametrik

  • Pemodelan nonparametrik (mis. Kaplan–Meier)
    • Akurat menggambarkan data karena bebas distribusi
    • Tidak halus/kontinu/didiferensiasikan
  • Pemodelan parametrik (mis. Weibull)
    • Statistik parametrik biasanya memberi lebih banyak informasi
    • Jika model keliru, kesimpulan jadi sangat bias
Analisis Survival dengan Python

Model survival parametrik umum

  • Model Weibull
    from lifelines import WeibullFitter
    
  • Model Eksponensial
    from lifelines import ExponentialFitter
    
  • Model Log-Normal
    from lifelines import LogNormalFitter
    
  • Model Log-Logistik
    from lifelines import LogLogisticFitter
    
  • Model Gamma
    from lifelines import GeneralizedGammaFitter
    
Analisis Survival dengan Python

Akaike Information Criterion (AIC)

  • AIC: Estimator untuk kesalahan prediksi dan kualitas relatif model statistik untuk suatu data.
  • Mengukur jumlah informasi yang hilang oleh model dan memberi penalti pada banyaknya parameter.
    • Semakin sedikit informasi hilang, semakin baik kualitas model.
    • Semakin sedikit parameter (kurang kompleks), semakin baik kualitas model.
  • Dari sekumpulan kandidat, model dengan nilai AIC minimum adalah yang dipilih.
Analisis Survival dengan Python

Menggunakan AIC untuk pemilihan model

Langkah 1) Fit model parametrik di lifelines

Langkah 2) Cetak dan bandingkan properti AIC_ tiap model

Langkah 3) Nilai AIC terendah lebih disukai

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
Analisis Survival dengan Python

find_best_parametric_model()

  • find_best_parametric_model(): fungsi built-in lifelines untuk otomatis membandingkan AIC antar model parametrik.
  • Melakukan iterasi pada setiap model parametrik di lifelines.

Cara pakainya

  • T: durasi, E: sensor
    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>
Analisis Survival dengan Python

QQ plot

  • QQ plot: membandingkan dua distribusi probabilitas dengan memplot kuantilnya satu sama lain.
  • Jika dua distribusi serupa, titik pada QQ plot kira-kira berada pada garis y = x.

contoh QQ plot

Analisis Survival dengan Python

Gunakan QQ plot untuk pemilihan model

Langkah 1) Fit model parametrik di lifelines.

Langkah 2) Plot QQ plot tiap model.

Langkah 3) QQ plot yang paling dekat ke y = x lebih disukai.

from lifelines.plotting import qq_plot

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

Gunakan QQ plot untuk pemilihan model

qq plot untuk membandingkan

Analisis Survival dengan Python

Ayo berlatih!

Analisis Survival dengan Python

Preparing Video For Download...