Интерпретация модели Кокса с пропорциональными рисками

Анализ выживаемости в Python

Shae Wang

Senior Data Scientist

Базовые риски

  • Отношение рисков: насколько риск увеличивается или уменьшается относительно базовых рисков.
  • Базовые риски: риск для индивидов при базовых значениях ковариат.
    • Базовый $\neq$ установка ковариат в 0
    • Базовый означает установку ковариат в их средние значения (медиана для lifelines)
Анализ выживаемости в Python

Базовые функции

Базовая функция риска
model.baseline_hazard_.plot()
plt.show()

baseline_hazard

Базовая функция выживаемости
model.baseline_survival_.plot()
plt.show()

baseline_survival

Анализ выживаемости в Python

Интерпретация отношения рисков

  • Отношение рисков: $e^{coef}$, насколько изменяется риск относительно среднего индивида при изменении ковариат.
Вычисление Пример
Коэффициент $x$ $0.405$
Отношение рисков $e^x$ $e^{0.405}=1.5$
Интерпретация рисков $e^x-1$ $1.5-1 = 0.5$ -> рост риска на 50%
Интерпретация времени выживаемости $\frac{1}{e^x}-1$ $\frac{1}{1.5}-1 = 0.67-1 = -0.23$ -> снижение времени выживаемости на 23%
Анализ выживаемости в Python

Визуализация отношения рисков

.plot_partial_effects_on_outcome()

  • covariates (строка или список): имя(имена) ковариаты(ковариат) из исходного набора данных, которые мы хотим варьировать.
    • При нескольких ковариатах передайте их списком.
  • values (одномерный или двумерный итерируемый объект): значения, которые должна принимать ковариата.
    • При нескольких ковариатах передайте значения парами/кортежами.
Анализ выживаемости в Python

Визуализация отношения рисков

Модель содержит ковариаты A, B, C; мы хотим варьировать

  • A по значениям 1, 2
  • B по значениям 3, 4
    model.plot_partial_effects_on_outcome(
        covariates=["A","B"],
        values=[[1,2],
                [3,4]]
    )
    plt.show()
    

wrong_plot_partial_effects_on_outcome

Неверно...

Анализ выживаемости в Python

Визуализация отношения рисков

Модель содержит ковариаты A, B, C; мы хотим варьировать

  • A по значениям 1, 2
  • B по значениям 3, 4
    model.plot_partial_effects_on_outcome(
        covariates=["A","B"],
        values=[[1,3],
                [1,4],
                [2,3],
                [2,4]]
    )
    plt.show()
    

correct_plot_partial_effects_on_outcome

Верно!

Анализ выживаемости в Python

Давайте потренируемся!

Анализ выживаемости в Python

Preparing Video For Download...