Ваша перша крива виживання!

Аналіз виживаності в Python

Shae Wang

Senior Data Scientist

Функція виживання

  • $T$: коли відбувається цікавий нам випадок
  • $t$: будь-який момент часу під час спостереження

$$\Large{S(t) = Pr(T>t)}$$

  • $S(t)$: ймовірність, що подія станеться після $t$
  • $Pr(T>t)$: імовірність виживання
Аналіз виживаності в Python

Крива виживання

$$\Large{S(t) = Pr(T>t)}$$

Приклад кривої виживання.

Аналіз виживаності в Python

Крива виживання

$$\Large{S(t) = Pr(T>t)}$$

Приклад кривої виживання.

Аналіз виживаності в Python

Крива виживання

$$\Large{S(t) = Pr(T>t)}$$

Приклад кривої виживання.

Умовні позначення для кривої виживання.

Аналіз виживаності в Python

Як тлумачити криву виживання

  • Точка $(a,b)$: імовірність, що індивід проживе довше за $a$, дорівнює $b$

Приклад кривої виживання.

Аналіз виживаності в Python

Як тлумачити криву виживання

  • Точка $(a,b)$: імовірність, що індивід проживе довше за $a$, дорівнює $b$
  • Пласка крива: нижча швидкість настання події
  • Крута крива: вища швидкість настання події

Приклад кривої виживання з позначеною точкою.

Аналіз виживаності в Python

Непараметричні проти параметричних моделей

Непараметричне моделювання
  • Не робить припущень щодо форми даних
Параметричне моделювання
  • Робить певні припущення щодо форми даних
  • Описується обмеженим набором параметрів
    • напр., крива виживання може вважатися експоненційним розподілом
Аналіз виживаності в Python

Непараметричні проти параметричних моделей

Непараметричне моделювання
  • Крива виживання зазвичай НЕ гладка

Непараметрична крива виживання: приклад.

Параметричне моделювання
  • Крива виживання зазвичай гладка

Параметрична крива виживання: приклад.

  • Залежить від того, наскільки модель добре описує дані
Аналіз виживаності в Python

Побудова кривої виживання

Пакет lifelines — це повна бібліотека для аналізу виживання.

  • Підганяє функції виживання до даних
  • Будує криві виживання на основі підганятих функцій
import lifelines
import matplotlib.pyplot as plt

.fit(durations, event_observed)

.plot_survival_function()

Аналіз виживаності в Python

Приклад кривої виживання

Назва DataFrame: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
100 30 1
  • id: ідентифікатор іпотечного кредиту
  • duration: кількість років, протягом яких іпотека не погашена
  • paid_off: 1, якщо іпотеку повністю погашено; 0, якщо не повністю
Аналіз виживаності в Python

Приклад кривої виживання

import lifelines
from matplotlib import pyplot as plt
kmf = lifelines.KaplanMeierFitter()
kmf.fit(duration=mortgage_df["duration"], 
        event_observed=mortgage_df["paid_off"])
kmf.plot_survival_function()
plt.show()

приклад кривої виживання Каплана — Меєра

Аналіз виживаності в Python

Давайте потренуємось!

Аналіз виживаності в Python

Preparing Video For Download...