Kaplan-Meier kestiricisini uydurma

Python ile Survival Analysis

Shae Wang

Senior Data Scientist

Kaplan-Meier kestiricisi nedir?

Zamana-bağlı olay verilerinin sağkalım fonksiyonunu tahmin eden parametrik olmayan bir istatistik.

  • Şu adlarla da bilinir:
    • çarpım-sınır kestiricisi
    • K-M kestiricisi
  • Parametrik olmayan: veriden sağkalım eğrisi kurar; altta yatan dağılım varsaymaz
Python ile Survival Analysis

Matematiksel sezgi

Tanımlar:

  • $t_i$: bir süre
  • $d_i$: $t_i$ anında gerçekleşen olay sayısı
  • $n_i$: $t_i$ anına kadar yaşadığı bilinen birey sayısı

 

Sağkalım fonksiyonu $S(t)$ şu şekilde kestirilir: $$S(t)=\prod_{i:t_i\leq t}\bigg(1-\frac{d_i}{n_i}\bigg)$$

Python ile Survival Analysis

Neden çarpım-sınır kestiricisi denir?

3 zamanda olaylar olsun: 1, 2, 3

$t=2$ için sağkalım oranı: $$S(t=2)=\bigg(1-\frac{d_1}{n_1}\bigg)*\bigg(1-\frac{d_2}{n_2}\bigg)$$

$t=3$ için sağkalım oranı: $$S(t=3)=S(t=2)*\bigg(1-\frac{d_3}{n_3}\bigg)$$

Zamandaki sağkalım oranı, o andaki ve önceki her andaki hayatta kalma yüzdelerinin çarpımına eşittir.

Python ile Survival Analysis

Aklınızda tutmanız gereken varsayımlar

  • Açık olaylar: ilgi olayı belirli bir anda gerçekleşir.
  • Tüm deneklerde karşılaştırılabilir sağkalım: bireylerin sağkalımı çalışmaya giriş zamanına bağlı değildir.
  • Sansür yansızdır: sansürlü gözlemler izlenenlerle aynı sağkalım beklentisine sahiptir.
Python ile Survival Analysis

lifelines ile Kaplan-Meier kestiricisi

from lifelines import KaplanMeierFitter

KaplanMeierFitter: lifelines kütüphanesinin bir sınıfı

kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
Python ile Survival Analysis

Konut kredisi örneği

Veri Çerçevesi adı: mortgage_df

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

Konut kredisi örneği

Veri Çerçevesi adı: 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 ile Survival Analysis

Kaplan-Meier kestiricisini kullanma

Bekleyen bir konut kredisinin medyan süresi nedir?

print(mortgage_kmf.median_survival_time_)
4.0

Başlangıçtan sonra her yıl kredinin hâlâ ödenmemiş olma olasılığı nedir?

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

Kaplan-Meier kestiricisini kullanma

Başlangıçtan 34. yılda kredinin hâlâ ödenmemiş olma olasılığı nedir?

mortgage_kmf.predict(34)
0.037998
Python ile Survival Analysis

Yararlar ve sınırlamalar

Yararları
  • Sağkalım olasılıklarının sezgisel yorumu.
  • Her tür zamana-bağlı olay verisine esnektir.
  • Genelde bu verilerde ilk denenen modeldir.
Sınırlamaları
  • Sağkalım eğrisi pürüzsüz değildir.
  • Verinin %50’si veya fazlası sansürlü ise .median_survival_time_ hesaplanamaz.
  • Eş değişkenlerin sağkalım üzerindeki etkisini incelemede etkili değildir.
Python ile Survival Analysis

Hadi pratik yapalım!

Python ile Survival Analysis

Preparing Video For Download...