Sto cercando il metodo di binning ottimale (discretizzazione) di una variabile continua rispetto a una determinata variabile binaria di risposta (target) e con il numero massimo di intervalli come parametro.
esempio: ho un insieme di osservazioni di persone con variabili "height" (numeral continue) e "has_back_pains" (binarie). Voglio discretizzare l'altezza in 3 intervalli (gruppi) al massimo con una diversa proporzione di persone con mal di schiena, in modo che l'algoritmo massimizzi la differenza tra i gruppi (con determinate restrizioni, ad esempio, che ogni intervallo abbia almeno x osservazioni).
La soluzione ovvia a questo problema sarebbe quella di utilizzare gli alberi delle decisioni (un semplice modello a una variabile), ma non riesco a trovare alcuna funzione in R che abbia "numero massimo di rami" come parametro - tutti dividono la variabile in 2 gropus (<= x e> x). Il minatore SAS ha un parametro "limite massimo" ma sto cercando una soluzione non commerciale.
alcune delle mie variabili hanno solo alcuni valori univoci (e potrebbero essere trattate come variabili discrete) ma voglio anche discretizzarle in un numero minore di intervalli.
La soluzione più vicina al mio problema è implementata nel pacchetto smbinning in R (che si basa sulla funzione ctree dal pacchetto party) ma presenta due svantaggi: è impossibile impostare il numero di intervalli (tuttavia, è possibile trovare un modo per cambiarlo il parametro p) e non funziona quando il vettore di dati ha meno di 10 valori univoci. Ad ogni modo, puoi vedere l'output di esempio qui (le colonne Cutpoint e Odds sono cruciali):
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
Oh, sono pienamente consapevole che il binning provoca la perdita di informazioni e che esistono metodi migliori, ma lo userò per la visualizzazione dei dati e tratterò queste variabili come un fattore.
SPSS Algorithms Optimal Binning
.