Memasang estimator Kaplan–Meier

Analisis Survival dengan Python

Shae Wang

Senior Data Scientist

Apa itu estimator Kaplan–Meier?

Statistik nonparametrik yang memperkirakan fungsi survival dari data waktu-ke-peristiwa.

  • Juga dikenal sebagai
    • product-limit estimator
    • estimator K–M
  • Nonparametrik: membangun kurva survival dari data terkumpul dan tidak mengasumsikan distribusi dasar
Analisis Survival dengan Python

Intuisi matematisnya

Definisi:

  • $t_i$: waktu durasi
  • $d_i$: jumlah peristiwa pada waktu $t_i$
  • $n_i$: jumlah individu yang diketahui bertahan hingga waktu $t_i$

 

Fungsi survival $S(t)$ diperkirakan dengan: $$S(t)=\prod_{i:t_i\leq t}\bigg(1-\frac{d_i}{n_i}\bigg)$$

Analisis Survival dengan Python

Mengapa disebut product-limit estimator?

Misal peristiwa terjadi pada 3 waktu: 1, 2, 3

Laju survival untuk $t=2$: $$S(t=2)=\bigg(1-\frac{d_1}{n_1}\bigg)*\bigg(1-\frac{d_2}{n_2}\bigg)$$

Laju survival untuk $t=3$: $$S(t=3)=S(t=2)*\bigg(1-\frac{d_3}{n_3}\bigg)$$

Laju survival pada waktu t sama dengan hasil kali peluang bertahan pada waktu t dan semua waktu sebelumnya.

Analisis Survival dengan Python

Asumsi yang perlu diingat

  • Peristiwa jelas: peristiwa yang diminati terjadi pada waktu yang tegas.
  • Probabilitas survival sebanding di semua subjek: tidak bergantung pada kapan mereka masuk studi.
  • Sensor non-informatif: observasi tersensor punya prospek survival yang sama dengan yang tetap diikuti.
Analisis Survival dengan Python

Estimator Kaplan–Meier dengan lifelines

from lifelines import KaplanMeierFitter

KaplanMeierFitter: kelas di pustaka lifelines

kmf = KaplanMeierFitter()
kmf.fit(durations, event_observed)
Analisis Survival dengan Python

Contoh masalah hipotek

Nama DataFrame: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
Analisis Survival dengan Python

Contoh masalah hipotek

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

Menggunakan estimator Kaplan–Meier

Berapa median lamanya hipotek masih berjalan?

print(mortgage_kmf.median_survival_time_)
4.0

Berapa probabilitas hipotek masih berjalan tiap tahun setelah dimulai?

print(mortgage_kmf.survival_function_)
          KM_estimate
timeline             
0.0          1.000000
1.0          0.983267
2.0          0.950933
3.0          0.892328
Analisis Survival dengan Python

Menggunakan estimator Kaplan–Meier

Berapa probabilitas hipotek belum lunas pada tahun ke-34 setelah dimulai?

mortgage_kmf.predict(34)
0.037998
Analisis Survival dengan Python

Keunggulan dan keterbatasan

Keunggulan
  • Interpretasi probabilitas survival yang intuitif.
  • Fleksibel untuk semua data waktu-ke-peristiwa.
  • Biasanya model pertama untuk dicoba pada data waktu-ke-peristiwa.
Keterbatasan
  • Kurva survival tidak mulus.
  • Jika ≥50% data tersensor, .median_survival_time_ tidak dapat dihitung.
  • Tidak efektif menganalisis efek kovariat pada fungsi survival.
Analisis Survival dengan Python

Ayo berlatih!

Analisis Survival dengan Python

Preparing Video For Download...