Я ищу оптимальный метод биннинга (дискретизации) непрерывной переменной по отношению к заданной ответной (целевой) двоичной переменной и с максимальным количеством интервалов в качестве параметра.
пример: у меня есть набор наблюдений за людьми с переменными "высота" (цифра непрерывная) и "has_back_pains" (бинарная). Я хочу разделить высоту на 3 интервала (группы) не более, с разной долей людей с болями в спине, чтобы алгоритм максимизировал разницу между группами (например, с учетом таких ограничений, что каждый интервал имеет как минимум x наблюдений).
Очевидным решением этой проблемы было бы использование деревьев решений (простая модель с одной переменной), но я не могу найти ни одной функции в R, которая имела бы «максимальное количество ветвей» в качестве параметра - все они делят переменную в 2 группы (<= х и> х). SAS майнер имеет параметр "максимальная ветвь", но я ищу некоммерческое решение.
некоторые из моих переменных имеют только несколько уникальных значений (и могут рассматриваться как дискретные переменные), но я хочу также разделить их на меньшее количество интервалов.
Наиболее близкое решение моей проблемы реализовано в пакете smbinning в R (который опирается на функцию ctree из пакета party), но у него есть два недостатка: невозможно установить количество интервалов (однако вы можете найти способ обойти его, изменив параметр p), и он не работает, когда вектор данных имеет менее 10 уникальных значений. В любом случае, вы можете увидеть пример выходных данных здесь (столбцы Cutpoint и Odds имеют решающее значение):
Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate Odds LnOdds WoE IV
1 <= 272 9081 169 8912 9081 169 8912 0.1874 0.9814 0.0190 -3.9653 -0.6527 0.0596
2 <= 311 8541 246 8295 17622 415 17207 0.1762 0.9712 0.0297 -3.5181 -0.2055 0.0068
3 <= 335 2986 163 2823 20608 578 20030 0.0616 0.9454 0.0577 -2.8518 0.4608 0.0163
4 Missing 27852 1125 26727 48460 1703 46757 0.5747 0.9596 0.0421 -3.1679 0.1447 0.0129
5 Total 48460 1703 46757 NA NA NA 1.0000 0.9649 0.0364 -3.3126 0.0000 0.0956
О, я полностью осознаю, что биннинг приводит к потере информации и что существуют лучшие методы, но я собираюсь использовать его для визуализации данных и рассматривать эти переменные как фактор.
SPSS Algorithms Optimal Binning
.