Визуализация и прогнозирование с помощью модели Вейбулла

Анализ выживаемости в 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 (одномерный или двумерный итерируемый объект): значения, которые принимает ковариата.

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

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]]
    )
    
  • Пользовательская формула:
    • Необходимые преобразования (взаимодействия, унитарное кодирование и др.) выполняются внутренне и автоматически.
Анализ выживаемости в 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...