与えられた応答(ターゲット)バイナリ変数に関して、パラメーターとして間隔の最大数を持つ連続変数の最適なビニング方法(離散化)を探しています。
例:「height」(数値連続)および「has_back_pains」(バイナリ)変数を持つ人々の一連の観察結果があります。高さを最大3つの間隔(グループ)に離散化して、背中の痛みを持つ人々の比率を変えて、アルゴリズムがグループ間の差を最大化するようにします(たとえば、各間隔には少なくともx個の観測値があるという制限があります)。
この問題の明らかな解決策は、決定木(単純な1変数モデル)を使用することですが、Rで「最大分岐数」をパラメーターとして持つ関数を見つけることができません。それらすべてが変数を分割します。 2 gropus(<= x and> x)に。SASマイナーには「最大ブランチ」パラメーターがありますが、私は非商用ソリューションを探しています。
一部の変数には一意の値がわずかしかありません(離散変数として扱うこともできます)が、それらを同様に少数の間隔に離散化したいと考えています。
私の問題に最も近い解決策は、Rのsmbinningパッケージ(パーティパッケージのctree関数に依存)に実装されていますが、2つの欠点があります。間隔の数を設定することはできません(ただし、変更することで回避策を見つけることができます) pパラメータ)。データベクトルの一意の値が10未満の場合は機能しません。とにかく、ここで出力例を見ることができます(カットポイントとオッズ列は重要です):
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
。