#python #survival-analysis #cox-regression #convergence #lifelines
#python #анализ выживания #cox-регрессия #конвергенция #линии жизни
Вопрос:
Я использую модель Cox PH, используя lifelines
package на Python.
Мне кажется странным, что если я запускаю модель для всех данных, проблем с ее запуском нет, однако, когда я выполняю перекрестную проверку (используя собственную функцию проверки пакета), появляется ошибка сходимости.
Есть идеи, как я могу это решить? В документации предлагается использовать средство наказания, но я не нашел значения, которое позволило бы мне запустить эту штуку.
Вот мой код, если вам интересно:
# Gone right
cph = CoxPHFitter()
cph.fit(daten, "length_of_arrears2", event_col='cured2')
# Gone wrong
cph = CoxPHFitter(penalizer=10)
scores = k_fold_cross_validation(cph, daten, 'length_of_arrears2', event_col='cured2', k=5)
Это ошибка, которую он выдает:
ConvergenceError: Convergence halted due to matrix inversion problems. Suspicion is high collinearity. Please see the following tips in the lifelines documentation: https://lifelines.readthedocs.io/en/latest/Examples.html#problems-with-convergence-in-the-cox-proportional-hazard-modelMatrix is singular.
Я проверил таблицу корреляции, и некоторые переменные довольно коррелированы, но мне все еще немного странно, что это работает на полной вещи, но не на перекрестном значении.
Есть ли хороший способ избавиться от высокой корреляции без полного удаления переменной?
Редактировать:
Я провел еще несколько тестов. Сначала я удалил все переменные с корреляцией более 0,74, которые не работали при подходе KFold.
Затем я вручную разделил данные на 90/10, это сработало, поэтому я продолжал пытаться до 70/30, потому что 60/40 уже не работали. Есть идеи?
Комментарии:
1. Вероятно, у вас предельный размер выборки, и процесс подмножества выделяет категориальную переменную таким образом, что некоторая их комбинация коллинеарна в многомерном смысле.
2. Я так и думал, однако у меня всего 14000 наблюдений.. Я бы не стал считать это маргинальным, верно?
3. Я думал, что разделение 90: 10, выполненное десять раз, было типичным режимом CV? Лучшим подходом к проверке может быть оценка начальной загрузки, по крайней мере, если я правильно читаю классический текст RMS Харрела.