Прогнозирование с помощью модели Кокса

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

Shae Wang

Senior Data Scientist

Прогноз медианного времени выживания

После вызова .fit() для обучения модели:

  • .predict_median(): прогнозирует медианное время жизни субъектов
    • Если кривая выживаемости не пересекает 0,5, медианное время выживания равно $\inf$.
  • Параметры:
    • X: DataFrame для прогнозирования.
    • conditional_after: массив или список значений, указывающих, сколько времени субъекты уже прожили.
Анализ выживаемости в Python

Прогноз медианного времени выживания

model.predict_median(X, conditional_after)
0       inf
1      44.0
2      46.0
3       inf
4      48.0
       ... 
500     inf
Анализ выживаемости в Python

Прогноз функции выживаемости

  • .predict_survival_function(): прогнозирует функцию выживаемости для субъектов с учётом их ковариат.
  • Параметры:
    • X: DataFrame для прогнозирования.
    • conditional_after: массив или список значений, указывающих, сколько времени субъекты уже прожили.
Анализ выживаемости в Python

Прогноз функции выживаемости

model.predict_survival_function(X, conditional_after)
              0           1           2           3           4         ...         500
1.0    0.997616    0.993695    0.994083    0.999045    0.997626         ...    0.998865    0.997827    0.995453    0.997462    ...    0.997826    0.996005    0.996031    0.997774    0.998892    0.999184    0.997033    0.998866    0.998170    0.998610
2.0    0.995230    0.987411    0.988183    0.998089    0.995250         ...    0.997728    0.995653    0.990914    0.994922    ...    0.995649    0.992014    0.992067    0.995547    0.997782    0.998366    0.994065    0.997730    0.996337    0.997217
3.0    0.992848    0.981162    0.982314    0.997133    0.992878         ...    0.996592    0.993482    0.986392    0.992388    ...    0.993476    0.988037    0.988115    0.993324    0.996673    0.997548    0.991105    0.996595    0.994507    0.995826
4.0    0.990468    0.974941    0.976468    0.996176    0.990507         ...    0.995455    0.991311    0.981882    0.989855    ...    0.991304    0.984067    0.984171    0.991100    0.995563    0.996729    0.988147    0.995458    0.992676    0.994433
5.0    0.988085    0.968739    0.970639    0.995216    0.986392         ...    0.993476

Зачем нужны прогнозы выживаемости?

  • Превентивное предотвращение отказов, прогнозирующие модели и др.
Анализ выживаемости в Python

Основные шаги

  1. Выполните предобработку данных и закодируйте категориальные переменные методом one-hot.
  2. Разделите данные на обучающую и тестовую выборки (стандартное соотношение: 80% и 20%).
    • Доля цензурированных данных должна быть примерно одинаковой в обеих выборках.
  3. Обучите модель Кокса на обучающей выборке.
Анализ выживаемости в Python

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

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

Preparing Video For Download...