Optimales Binning in Bezug auf eine bestimmte Antwortvariable

11

Ich suche nach einer optimalen Binning-Methode (Diskretisierung) einer kontinuierlichen Variablen in Bezug auf eine gegebene Antwort- (Ziel-) Binärvariable und mit einer maximalen Anzahl von Intervallen als Parameter.

Beispiel: Ich habe eine Reihe von Beobachtungen von Personen mit den Variablen "height" (fortlaufende Zahl) und "has_back_pains" (binär). Ich möchte die Höhe in höchstens 3 Intervalle (Gruppen) mit unterschiedlichem Anteil von Menschen mit Rückenschmerzen diskretisieren, damit der Algorithmus den Unterschied zwischen den Gruppen maximiert (mit gegebenen Einschränkungen, zum Beispiel, dass jedes Intervall mindestens x Beobachtungen hat).

Die offensichtliche Lösung für dieses Problem wäre die Verwendung von Entscheidungsbäumen (ein einfaches Ein-Variablen-Modell), aber ich kann in R keine Funktion finden, die "maximale Anzahl von Zweigen" als Parameter hätte - alle teilen die Variable in 2 Gropus (<= x und> x). SAS Miner hat einen "Maximum Branch" -Parameter, aber ich suche nach einer nicht kommerziellen Lösung.

Einige meiner Variablen haben nur wenige eindeutige Werte (und können als diskrete Variablen behandelt werden), aber ich möchte sie auch in eine kleinere Anzahl von Intervallen diskretisieren.

Die Lösung, die meinem Problem am nächsten kommt, ist im smbinning-Paket in R implementiert (das auf der ctree-Funktion des Party-Pakets basiert), hat jedoch zwei Nachteile: Es ist unmöglich, die Anzahl der Intervalle festzulegen (Sie können jedoch einen Weg finden, um dies zu ändern, indem Sie es ändern der p-Parameter) und es funktioniert nicht, wenn der Datenvektor weniger als 10 eindeutige Werte hat. Wie auch immer, Sie können die Beispielausgabe hier sehen (Cutpoint- und Odds-Spalten sind entscheidend):

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, ich bin mir völlig bewusst, dass das Binning zu Informationsverlust führt und dass es bessere Methoden gibt, aber ich werde es für die Datenvisualisierung verwenden und diese Variablen als Faktor behandeln.

Dominix
quelle
SPSS verfügt über den Befehl Optimal Binning. Google SPSS Algorithms Optimal Binning.
ttnphns
Haben Sie diesen Beitrag gesehen stackoverflow.com/questions/7018954/… Es erwähnt die Verwendung von Informationswerten, aber nicht klar, was es mit IV = 1 bedeutet, oder erklärt nicht, wie man das bekommt
Adam

Antworten:

6

Beim Lesen dieses Buches hier (Nagarajan, 2103 [1]) bin ich auf diese wertvollen Informationen gestoßen, die ich hier schamlos zitiere:

  • Vorkenntnisse zu den Daten nutzen. Die Grenzen der Intervalle werden für jede Variable so definiert, dass sie signifikant unterschiedlichen realen Szenarien entsprechen, wie z. B. der Konzentration eines bestimmten Schadstoffs (nicht vorhanden, gefährlich, tödlich) oder Altersklassen (Kind, Erwachsener, Ältere).

  • Verwenden Sie Heuristiken, bevor Sie die Struktur des Netzwerks lernen. Einige Beispiele sind: Sturges-, Freedman-Diaconis- oder Scott-Regeln (Venables und Ripley, 2002).

  • Auswahl der Anzahl der Intervalle und ihrer Grenzen, um Genauigkeit und Informationsverlust auszugleichen (Kohavi und Sahami, 1996), jeweils eine Variable nach der anderen und bevor die Netzwerkstruktur gelernt wurde. Ein ähnlicher Ansatz unter Berücksichtigung von Variablenpaaren wird in Hartemink (2001) vorgestellt.

  • Iteratives Lernen und Diskretisieren durchführen, bis keine Verbesserung mehr erzielt wird (Friedman und Goldszmidt, 1996).

Diese Strategien stellen unterschiedliche Kompromisse zwischen der Genauigkeit der diskreten Darstellung der Originaldaten und der Recheneffizienz der Transformation dar.

Diese Informationen werden bereitgestellt, falls Sie die gewünschte Binning-Methode begründen und nicht nur ein Paket direkt verwenden möchten.

[1]: Nagarajan R. (2013),
Bayesian Networks in R, mit Anwendungen in der Systembiologie
Springer

KarthikS
quelle
3

Versuchen Sie das Informationspaket für R. https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html

Das Informationspaket bietet Funktionen zur Berechnung von WoE und IV (Anzahl der Bins ist ein flexibler Parameter, Standard ist 10) und ist ein praktisches Instrument zur Datenexploration und folglich zum Binning. Die Ausgabe enthält jedoch keine Quoten. und es ist nicht möglich, Null als separaten Behälter anzugeben (für meine Aufgaben ist Null oft ein gültiger Behälter für sich); und es wäre schön, eine Ausgabe von einem Informationspaket zu erhalten, das dem von smbinning ähnelt. Abgesehen von den netten, aber immer noch nicht verfügbaren Funktionen des Informationspakets machten andere R-Pakete für WoE und IV (woe, klaR) keinen Eindruck von so nützlichen Instrumenten wie das Informationspaket, tatsächlich ich konnte sie nach 2-3 Versuchen nicht ausführen. Für die Aufgabe der Dskretisierung / Binning können Informations- und Smbinning-Pakete gut zusammenarbeiten.

Für das eigentliche Binning habe ich data.table anstelle der Funktion cut () verwendet. Siehe Link zu meinem Beitrag unten, er enthält generischen Code ganz unten in der ersten Frage: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- von einem anderen Datenrahmen

Ich hoffe es hilft.

Akonza
quelle
@kjetil, kjetil b halvorsen, du hast recht. Das Informationspaket bietet Funktionen zur Berechnung von WoE und IV (Anzahl der Bins ist ein flexibler Parameter, Standard ist 10) und ist ein praktisches Instrument zur Datenexploration und folglich zum Binning. Die Ausgabe enthält jedoch keine Quoten. Und es ist nicht möglich, Null als separaten Behälter anzugeben (für meine Aufgaben ist Null oft ein gültiger Behälter für sich). Andere R-Pakete für WoE und IV (woe, klaR) machten keinen Eindruck von so nützlichen Instrumenten wie das Informationspaket. So können Informations- und Smbinning-Paket als Kombination gut zusammenarbeiten.
Akonza