Прогнозування за моделлю Кокса PH

Аналіз виживаності в 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. Розбийте дані на train і test (типово 80% train і 20% test).
    • Частка цензурованих спостережень має бути подібною в обох наборах.
  3. Навчіть модель Кокса PH на train.
Аналіз виживаності в Python

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

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

Preparing Video For Download...