Візуалізація та прогнозування з моделлю Вейбулла

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

Shae Wang

Senior Data Scientist

.plot()

Повертає графік коефіцієнтів та їхніх діапазонів за 95% довірчими інтервалами.

aft.plot()
plt.show()

Зразок графіка:

sample_covariate_plot

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

.plot_partial_effects_on_outcome()

Повертає графік, що порівнює базову криву виживання з результатом при зміні коваріат на різні значення.

aft.plot_partial_effects_on_outcome(covariates, values)
plt.show()

sample_partial_effects_plot

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

Як побудувати часткові ефекти?

.plot_partial_effects_on_outcome()

  • covariates (рядок або список): коваріата(и) з початкового набору даних, які слід варіювати.
  • values (1d або 2d ітерабельний об'єкт): значення, яких має набувати коваріата.

  • Базова крива виживання: прогнозована крива виживання за середніх значень у початковому наборі даних.

aft.plot_partial_effects_on_outcome(
  covariates='var', 
  values=[0, 3, 6, 9, 12, 15]
)
plt.show()

partial effects plot for weibull model

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

Як побудувати часткові ефекти?

  • Задати значення вручну:
    aft.plot_partial_effects_on_outcome(
      covariates='a', 
      values=[0, 3, 6]
    )
    
  • Використати функцію діапазону:
    aft.plot_partial_effects_on_outcome(
      covariates='a', 
      values=np.arange(10)
    )
    
  • Кілька коваріат:
    aft.plot_partial_effects_on_outcome(
      covariates=['a','b'], 
      values=[[1,2],[1,3],[2,3]]
    )
    
  • Користувацька формула:
    • Потрібні перетворення (взаємодії, one-hot кодування тощо) виконуються внутрішньо й автоматично.
Аналіз виживаності в Python

Іпотечний приклад

Приклад DataFrame: mortgage_df

id house principal interest property_tax credit score duration paid_off
1 1 1275 0.035 0.019 780 25 0
2 0 756 0.028 0.020 695 17 1
3 0 968 0.029 0.017 810 5 0
... ... ... ... ... ... ... ...
1000 1 1505 0.041 0.023 750 30 1
Аналіз виживаності в Python

Іпотечний приклад

aft.plot_partial_effects_on_outcome(
    covariates='credit score',
    values=np.arange(700, 860, 30)
)
plt.show()

partial effects plot for mortgage_df

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

Прогнозування функцій виживання

  • Криві виживання змінюються залежно від значень їхніх коваріат. prediction flowchart
Аналіз виживаності в Python

Прогнозування функцій виживання

Прогнозуйте функції виживання для індивідів за значеннями коваріат.

.predict_survival_function()

Аргументи:

  • X (масив np або DataFrame): коваріати. Якщо DataFrame, порядок стовпців довільний.

Прогнозуйте медіанні тривалості виживання для індивідів за значеннями коваріат.

.predict_median()

Аргументи:

  • df (масив np або DataFrame): коваріати. Якщо DataFrame, порядок стовпців довільний.
Аналіз виживаності в Python

Умова після поточної тривалості

Прогноз функції виживання або медіанної тривалості умовно після поточної тривалості.

  • .predict_survival_function(X, conditional_after)
  • .predict_median(df, conditional_after)

Приклад:

aft.predict_median(new_subject)
4.0
aft.predict_median(new_subject, conditional_after=[2])
2.0
Аналіз виживаності в Python

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

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

Preparing Video For Download...