При обработке статистики сердечно-сосудистых нарушений требуется спрогнозировать исход болезни по данным диагностики пациентов. Новая задача заключается в том, чтобы объяснить, как могут повлиять сочетания отдельных факторов (которые сами по себе не так важны) на смертность. Предлагается модель многофакторной логистической регрессии со скачком весовых коэффициентов, входящих в модель.


Предметная область описана в статье.

Идея обработки датасета состоит в следующем. Нужно выделить области признакового пространства, в которых отношение числа умерших к числу выживших резко увеличивается. Модель логистической регрессии позволяет оценить, как зависит логарифм этого отношения (логит) от признаков, и скорость роста логита с ростом коэффициента и есть весовой коэффициент при данном признаке.

Допустим, что, начиная с некоторого порога, эта скорость резко возрастет. Тогда весовой коэффициент после достижения порога примет другое значение. В контексте медицинских данных это связано с превышением нормы, выше которой влияние данного фактора на исход болезни усиливается.

Таким образом, математическая модель для предсказания вероятности смертности для наблюдения \mathbf x выглядит так:

p(\mathbf x)=\sigma\left(w_0+\sum_k\left[ w_k^+\max\{x_k-a_k,0\}+w_k^-\min\{x_k-a_k,0\} \right]\right).

Здесь a_k - пороги, w_k^+,w_k^- - веса модели, w_0 - свободный член, \sigma(z)=\frac{1}{1+e^{-z}}.

Указанные параметры являются неизвестными и подлежат определению из критерия минимальности целевой функции

J=-\frac{1}{n}\sum_i\left[ y^{(i)}\ln p(\mathbf x^{(i)}) + (1-y^{(i)})\ln (1 - p(\mathbf x^{(i)})) \right].

Здесь \mathbf x^{(i)} - i-е наблюдение, y^{(i)} - класс i-го наблюдения (0 или 1).

Для этой задачи готового решения нет, поэтому пишем свой оптимизатор на основе примера.

Определим целевую функцию, которая будет зависеть только от w_k^+,w_k^- и w_0 и которая равна значению J при наилучшем выборе a_k. Однако если выбирать a_k с помощью того же критерия оптимальности J, то придем к труднорешаемой задаче: все переменные a_k участвуют в функции J одновременно. Чтобы разделить их, введем другой, вспомогательный критерий для нахождения порогов. Применим метод наименьших квадратов для штрафной функции

f(a)=w_+^2\sum_{x_i>a}(x_i-a)^2(1-y_i) + w_-^2 \sum_{x_i < a} (x_i - a)^2 y_i.

Найдем минимум функции f, решив уравнение f'(a)=0.

Итак, проделав эту процедуру для ряда значений каждого признака, находим пороги a_k. Далее вычисление оптимальных коэффициентов w_k^+,w_k^-,w_0 сводится к вызову стандартного оптимизатора (Нелдера-Мида или BFGS) для полученной целевой функции.

Реализация доступна здесь.

Комментарии (0)