Kaplan-Meier modelinizi görselleştirme

Python ile Survival Analysis

Shae Wang

Senior Data Scientist

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Oyuncak veri, $n=5$:

süre gözlenen
2 1
5 0
3 1
5 1
2 0

Adım 1: Verileri artan sırada düzenleyin. Eşitlik varsa, sansürlü veriler sansürsüzlerden sonra gelir.

Adım 2: Her $t_i$ için $d_i$, $n_i$ ve $\big(1-\frac{d_i}{n_i}\big)$ hesaplayın

Adım 3: Her $t_i$ için $\big(1-\frac{d_i}{n_i}\big)$ değerini $\big(1-\frac{d_{i-1}}{n_{i-1}}\big)$, $\big(1-\frac{d_{i-2}}{n_{i-2}}\big)$, ... , $\big(1-\frac{d_0}{n_0}\big)$ ile çarpın

Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 1: Süreleri artan sıraya dizin. Eşitlikte, sansürlü veri sansürsüzden sonra gelir.

süre
2
5+
3
5
2+

Sansürlü veriyi belirtmek için "+" kullanın: 2, 5+, 3, 5, 2+

Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 1: Süreleri artan sıraya dizin. Eşitlikte, sansürlü veri sansürsüzden sonra gelir.

$t_i$
2, 2+
3
5, 5+
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 2: Her $t_i$ için $d_i$, $n_i$ ve $\big(1-\frac{d_i}{n_i}\big)$ hesaplayın

$t_i$
2, 2+
3
5, 5+
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 2: Her $t_i$ için $d_i$, $n_i$ ve $\big(1-\frac{d_i}{n_i}\big)$ hesaplayın

$t_i$ $d_i$
2, 2+ 1
3 1
5, 5+ 1
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 2: Her $t_i$ için $d_i$, $n_i$ ve $\big(1-\frac{d_i}{n_i}\big)$ hesaplayın

$t_i$ $d_i$ $n_i$
2, 2+ 1 5
3 1 3
5, 5+ 1 2
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 2: Her $t_i$ için $d_i$, $n_i$ ve $\big(1-\frac{d_i}{n_i}\big)$ hesaplayın

$t_i$ $d_i$ $n_i$ $\big(1-\frac{d_i}{n_i}\big)$
2, 2+ 1 5 $4/5$
3 1 3 $2/3$
5, 5+ 1 2 $1/2$
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

Adım 3: Her $t_i$ için $\big(1-\frac{d_i}{n_i}\big)$ değerini $\big(1-\frac{d_{i-1}}{n_{i-1}}\big)$, $\big(1-\frac{d_{i-2}}{n_{i-2}}\big)$, ... , $\big(1-\frac{d_0}{n_0}\big)$ ile çarpın

$t_i$ $d_i$ $n_i$ $\big(1-\frac{d_i}{n_i}\big)$ $S(t_i)$
2, 2+ 1 5 4/5 4/5 = 0.8
3 1 3 2/3 4/5 $\cdot$ 2/3 = 0.53
5, 5+ 1 2 1/2 4/5 $\cdot$ 2/3 $\cdot$ 1/2 = 0.27
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisi nasıl oluşturulur?

$t_i$ $d_i$ $n_i$ $\big(1-\frac{d_i}{n_i}\big)$ $S(t_i)$
2, 2+ 1 5 $4/5$ 0.8
3 1 3 $2/3$ 0.53
5, 5+ 1 2 $1/2$ 0.27

Tablodan Kaplan-Meier eğrisi.

Python ile Survival Analysis

Sağkalım eğrisini yorumlama

Tablodan Kaplan-Meier eğrisi.

  • 0 ile 5 arasındaki her zamanda sağkalım olasılıkları.

  • Yaygın yanlış anlama: Eğri 0’a inerse, hiç denek hayatta kalmadı.

  • Son gözlem sansürsüzse (gerçek olay süresi biliniyorsa) eğri sıfıra düşer.
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisini çizme

from lifelines import KaplanMeierFitter
import matplotlib.pyplot as plt

kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
kmf.survival_function_.plot()
plt.show()
Python ile Survival Analysis

Konut kredisi örneği

DataFrame adı: mortgage_df

id süre ödendi
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
from lifelines import KaplanMeierFitter
from matplotlib import pyplot as plt
mortgage_kmf = KaplanMeierFitter()
mortgage_kmf.fit(duration=mortgage_df["duration"], 
        event_observed=mortgage_df["paid_off"])
mortgage_kmf.survival_function_.plot()
Python ile Survival Analysis

Konut kredisi örneği

plt.show()

Konut kredisi sağkalım eğrisi görselleştirmesi.

Python ile Survival Analysis

Sağkalım eğrisi güven aralığı

mortgage_kmf.plot_survival_function()
plt.show()

Güven aralıklı konut kredisi sağkalım eğrisi görselleştirmesi.

Python ile Survival Analysis

Güven aralığı neden yararlı?

  • Sağkalım olasılıklarının her nokta tahminindeki belirsizliği ölçmenin bir yolu
  • Geniş güven aralığı = daha az kesinlik, genellikle küçük örneklem nedeniyle
  • Dar güven aralığı = daha çok kesinlik, genellikle büyük örneklem nedeniyle
Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisini çizmenin yolları

Sağkalım fonksiyonu nokta tahminlerini sürekli çizgi olarak çizin.

kmf.survival_function_.plot()
plt.show()

Sürekli çizgi olarak sağkalım fonksiyonu grafiği.

Güven aralığı olmadan kademeli çizgi olarak çizin.

kmf.plot(ci_show=False)
plt.show()

Kademeli çizgi olarak sağkalım fonksiyonu grafiği.

Python ile Survival Analysis

Kaplan-Meier sağkalım eğrisini çizmenin yolları

Güven aralığı ile kademeli çizgi olarak çizin.

kmf.plot()
plt.show()

Güven aralığıyla kademeli çizgi olarak sağkalım fonksiyonu.

Başka bir yol...

kmf.plot_survival_function()
plt.show()
Python ile Survival Analysis

Haydi pratik yapalım!

Python ile Survival Analysis

Preparing Video For Download...