Ich habe zwei Fragen zur Verwendung einer zufälligen Gesamtstruktur (insbesondere randomForest in R) für die Imputation fehlender Werte (im Prädiktorraum).
1) Wie funktioniert der Imputationsalgorithmus - insbesondere wie und warum wird die Klassenbezeichnung für die Imputation benötigt? Ist die Näherungsmatrix, die dazu dient, den Durchschnittswert zu gewichten, um einen fehlenden Wert zu unterstellen, der separat nach Klassen definiert ist?
2) Wenn die Klassenbezeichnung benötigt wird, um fehlende Werte zu unterstellen - wie kann dies verwendet werden, um fehlende Werte für neue Daten zu unterstellen, die Sie vorhersagen möchten?
Die Grundidee besteht darin, fehlende Daten schnell zu ersetzen und dann die fehlende Imputation mithilfe der Nähe iterativ zu verbessern. Um mit unbeschrifteten Daten zu arbeiten, replizieren Sie die Daten einfach mit allen Beschriftungen und behandeln Sie sie dann als beschriftete Daten.
Der Anteil der Bäume, für den sich ein Beobachtungspaar einen Endknoten teilt, ergibt die Näherungsmatrix und verwendet daher explizit die Klassenbezeichnung.
Trainingsset:
Ersetzen Sie fehlende Werte durch den Durchschnittswert.
Wiederholen, bis zufrieden:
ein. Trainieren Sie mit den bisher berechneten unterstellten Werten einen zufälligen Wald.
b. Berechnen Sie die Näherungsmatrix.
c. Verwenden Sie die Nähe als Gewicht, um fehlende Werte als gewichteten Durchschnitt der nicht fehlenden Werte zu unterstellen.
Testset:
Wenn Beschriftungen vorhanden sind, verwenden Sie die aus den Testdaten abgeleitete Imputation.
Wenn die Daten nicht beschriftet sind, replizieren Sie den Testsatz mit einer Kopie für jedes Klassenetikett und verfahren Sie wie bei den beschrifteten Daten.
Hier bezieht sich der (gewichtete) Durchschnitt auf den (gewichteten) Median für numerische Variablen und den (gewichteten) Modus für kategoriale Variablen. In den Referenzen werden 4-6 Iterationen empfohlen.
Mich würde interessieren, ob dieser Algorithmus für die Mehrfachimputation angepasst werden kann und ob er die richtige Variabilität aufweist und die Unsicherheit des Imputationsmodells berücksichtigt.
Frank Harrell
1
Frank, nach der Beschreibung bezweifle ich, dass es genug Variabilität haben würde. Das Zeichnen eines heißen Decks aus einer Terminalklasse kann den Trick tun. Wenn der Baumwachstumsalgorithmus dazu neigt, sich anzupassen, wird die Variabilität immer noch unterdrückt, jedoch nicht so stark wie bei Verwendung eines bedingten Mittelwerts oder eines bedingten Quantils. Auch das ist mein Bauchgefühl in Bezug auf die Funktionsweise von Imputationsmethoden im Allgemeinen.
StasK
1
Cohoz, danke, das bestätigt, was ich seitdem gelernt habe. Das Problem ist die zufällige Gesamtstruktur, die mithilfe der Zielvariablen erstellt wird. Es gibt ein missForest-Paket in R mit Papier, das für unbeaufsichtigte Imputation verwendet werden kann: ncbi.nlm.nih.gov/pubmed/22039212
B_Miner
Wenn ich fragen würde, wird sklearn.ensemble.RandomForestClassifierdieser Prozess auf Trainingsdaten angewendet oder wird er einfach ignoriert und ich muss es selbst tun?
Abhishta Gatya
3
Ich habe versucht, Random Forest für die multiple Imputation in MICE zu verwenden, um fehlende Daten in der Überlebensanalyse zu verarbeiten. Ich habe Bootstrapping verwendet, um die Stichprobenvariabilität in den Imputationsmodellen zu berücksichtigen. Ich fand heraus, dass Random Forest MICE eine bessere Leistung als parametrische MICE erbrachte, wenn Wechselwirkungen zwischen Prädiktorvariablen auftraten, die nicht im Imputationsmodell enthalten waren.
Dies ist ein Artikel, der Tests der Methode an simulierten Daten und einem realen epidemiologischen Datensatz beschreibt: http://dx.doi.org/10.1093/aje/kwt312
Willkommen auf der Website @ user37364. Danke für diese Links. Würde es Ihnen etwas ausmachen, sie im Falle von Linkrot ein wenig zu erläutern, damit zukünftige Leser vor dem Klicken beurteilen können, ob sie sie verfolgen möchten?
Gung - Reinstate Monica
Hallo @ user37364! Ich habe das von Ihnen vorgestellte Papier gesehen, kann jedoch keinen zufälligen Wald mit Mäusen in meinem Datensatz anwenden. Ich habe hier eine Frage gestellt: stackoverflow.com/questions/24239595/… . Wenn Sie Erfahrung mit MICE haben, haben Sie eine Idee, wie Sie diese Fehler beheben können? Danke
psoares
Hallo, ich bin gerade auf dein Papier gestoßen und dann auf diesen Thread. Wie hat sich die Methode in den letzten anderthalb Jahren behauptet? Falten entdeckt?
sklearn.ensemble.RandomForestClassifier
dieser Prozess auf Trainingsdaten angewendet oder wird er einfach ignoriert und ich muss es selbst tun?Ich habe versucht, Random Forest für die multiple Imputation in MICE zu verwenden, um fehlende Daten in der Überlebensanalyse zu verarbeiten. Ich habe Bootstrapping verwendet, um die Stichprobenvariabilität in den Imputationsmodellen zu berücksichtigen. Ich fand heraus, dass Random Forest MICE eine bessere Leistung als parametrische MICE erbrachte, wenn Wechselwirkungen zwischen Prädiktorvariablen auftraten, die nicht im Imputationsmodell enthalten waren.
Das CALIBERrfimpute-Paket bietet eine Funktion für die Random Forest-Imputation in MICE:
http://cran.r-project.org/web/packages/CALIBERrfimpute/index.html
Dies ist ein Artikel, der Tests der Methode an simulierten Daten und einem realen epidemiologischen Datensatz beschreibt:
http://dx.doi.org/10.1093/aje/kwt312
quelle