Я пытаюсь использовать пакет Python Lifelines для калибровки и использовать модель пропорциональной опасности Кокса.
Итак, итоговый результат:
coef exp(coef) se(coef) z p lower 0.95 upper 0.95
PD -1.1446 0.3183 0.0814 -14.0563 0.0000 -1.3042 -0.9850 ***
oil -0.1275 0.8803 0.0016 -79.2128 0.0000 -0.1306 -0.1243 ***
curr -0.1353 0.8735 0.0020 -67.3416 0.0000 -0.1392 -0.1313 ***
matur -0.0002 0.9998 0.0000 -13.6039 0.0000 -0.0002 -0.0002 ***
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Concordance = 0.602
Затем мне нужно рассчитать частичную опасность, например, используя первую строку моей вкладки данных о выживании, которая:
PD oil curr Durat binar matur
0 0.135760 62.799048 59.004243 1.446575 0 179
должно быть так:
PD = 0.13576
oil = 62.799048
curr = 59.004243
matur = 179
np.exp(-1.1446*PD - 0.1275*oil - 0.1353*curr -0.0002*matur)
и равно 9,387106981409155e-08, так что это очень маленькая цифра и приводит к вероятности выживания, равной 1,0 для всех t. Но когда я получил метод cph.predict_partial_hazard (cox_surv), он дал мне что-то вроде 0,32, и это правильная цифра, я думаю. Например, у нас есть базовый SP = 0,7 и (0,7 ^ 0,32) для частичной опасности, мы получим что-то вроде 0,892136633056215, это нормально. В чем ошибка? Как правильно рассчитать частичную опасность? Большое спасибо!