2013-09-06 3 views
5

Wie behandelt die R-Implementierung von Boosted Regression Trees (Paket gbm) standardmäßig fehlende Werte der Prädiktorvariablen? Sind sie unterstellt und wenn ja, nach welchem ​​Algorithmus?R: Wie gehen verstärkte Regressionsbäume mit fehlenden Daten um?

Hintergrund meiner Frage: Ich habe die Analyse vor fast einem Jahr gemacht und ich habe die Skripte von Elith et al. 2008 (Ein Arbeitsleitfaden zu verstärkten Regressionsbäumen, Journal of Animal Ecology 77, 802-813), um gbm aufzurufen. Ich wurde mir nun bewusst, dass ich für einige der prädiktiven Variablen NAs hatte, und ich frage mich, wie die verstärkten Regressionsbäume mit ihnen umgegangen sind. Beim Durchstöbern verschiedener Handbücher und Papiere fand ich Aussagen wie "verstärkte Regressionsbäume können fehlende Werte aufnehmen" und ähnliches, aber ich konnte keine genaue Beschreibung dessen finden, was gbm mit fehlenden Werten macht. Die Analyse selbst lief ohne Probleme, also muss gbm sie auf die eine oder andere Art behandelt haben. Im Handbuch von gbm gibt es sogar ein Beispiel, in dem absichtlich NAs eingeführt werden, um zu demonstrieren, dass gbm ohne Probleme funktioniert. Nun würde ich gerne wissen, was gbm genau mit NAs macht (überspringe sie, unterstelle sie, ...?).

+3

Diese Frage erscheint Wegthema zu sein, weil es über die Umsetzung eines statistischen Algorithmus ist. Es ist vielleicht besser für Cross Validated geeignet. –

+0

@ SimonO101: Ich bezweifelte, welches das richtige Forum wäre. Ich werde es bei Crossvalidated posten. – user7417

+0

Ich würde es eine Weile lassen - die Website ist Community-Run. Wenn der Konsens besteht, dass dies nicht der Fall ist, wird die Frage geschlossen und Sie wissen um Lebenslauf. Im Moment ist es nur ich, der denkt, dass es besser für CV geeignet ist! –

Antwort

3

Die gbm-Funktion kann für die Imputation as described in Jeffrey Wongs blog: verwendet werden. Fehlende Werte erhalten Ersatzsplits und der Benutzer kann dann Vorhersagen für iems mit unvollständigen Prädiktorsätzen erhalten.

Er hat ein Paket basierend auf diesem Ansatz entwickelt. Die GitHub Repo hat dies im Header auf eine der Dateien für GBM:

#' GBM Imputation 
#' 
#' Imputation using Boosted Trees 
#' Fill each column by treating it as a regression problem. For each 
#' column i, use boosted regression trees to predict i using all other 
#' columns except i. If the predictor variables also contain missing data, 
#' the gbm function will itself use surrogate variables as substitutes for the predictors. 
#' This imputation function can handle both categorical and numeric data. 

Um dies finde ich nur diese in einer Google-Suche eingegeben haben: wie funktioniert GBM Deal mit fehlenden Werten. Es war der 2. Hit für mich.

https://github.com/jeffwong/imputation/blob/master/R/gbmImpute.R

+0

Das sieht aus wie die 'gbmImpute'-Funktion im' imputation'-Paket, nicht das 'gbm'-Paket, wie gefragt ... – Spacedman

+0

Ergibt der hinzugefügte Code mit gbm in Wongs Blog die Antwort. Ich habe ein anderes SO Q & A von Anfang dieses Jahres gefunden, aber ich glaube nicht, dass eine der Antworten den Imputationsprozess so gut erklärt wie Wong. –

+1

Jeff Wong's ist ein großartiges Stück Code und die Kopfnote beantwortet die Frage des OP auf hohem Niveau. Wie ich es verstehe, fragt das OP nach, wie fehlende Werte durch den Gradientenverstärkungsalgorithmus behandelt werden, wie er in Paket gbm implementiert ist. Die kurze Antwort ist, dass sie explizit als eine Art von Split zusammen mit linken und rechten Splits behandelt werden, und eine Surrogat-Split-Methode angewendet wird (vgl. Dokumentation zu Ada und Rpart-Paketen). –

Verwandte Themen