При обработке статистики сердечно-сосудистых нарушений требуется спрогнозировать исход болезни по данным диагностики пациентов. Новая задача заключается в том, чтобы объяснить, как могут повлиять сочетания отдельных факторов (которые сами по себе не так важны) на смертность. Предлагается модель многофакторной логистической регрессии со скачком весовых коэффициентов, входящих в модель.
Предметная область описана в статье.
Идея обработки датасета состоит в следующем. Нужно выделить области признакового пространства, в которых отношение числа умерших к числу выживших резко увеличивается. Модель логистической регрессии позволяет оценить, как зависит логарифм этого отношения (логит) от признаков, и скорость роста логита с ростом коэффициента и есть весовой коэффициент при данном признаке.
Допустим, что, начиная с некоторого порога, эта скорость резко возрастет. Тогда весовой коэффициент после достижения порога примет другое значение. В контексте медицинских данных это связано с превышением нормы, выше которой влияние данного фактора на исход болезни усиливается.
Таким образом, математическая модель для предсказания вероятности смертности для наблюдения выглядит так:
Здесь - пороги,
- веса модели,
- свободный член,
.
Указанные параметры являются неизвестными и подлежат определению из критерия минимальности целевой функции
Здесь -
-е наблюдение,
- класс
-го наблюдения (0 или 1).
Для этой задачи готового решения нет, поэтому пишем свой оптимизатор на основе примера.
Определим целевую функцию, которая будет зависеть только от и
и которая равна значению
при наилучшем выборе
. Однако если выбирать
с помощью того же критерия оптимальности
, то придем к труднорешаемой задаче: все переменные
участвуют в функции
одновременно. Чтобы разделить их, введем другой, вспомогательный критерий для нахождения порогов. Применим метод наименьших квадратов для штрафной функции
Найдем минимум функции , решив уравнение
.
Итак, проделав эту процедуру для ряда значений каждого признака, находим пороги . Далее вычисление оптимальных коэффициентов
сводится к вызову стандартного оптимизатора (Нелдера-Мида или BFGS) для полученной целевой функции.
Реализация доступна здесь.