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