2013-09-06 10 views
5

In che modo l'implementazione R degli alberi di regressione potenziata (pacchetto gbm) gestisce di default i valori mancanti delle variabili predittive? Sono imputati e se lo sono, in base a quale algoritmo?R: In che modo gli alberi di regressione potenziati si occupano dei dati mancanti?

Sfondo della mia domanda: ho fatto l'analisi quasi un anno fa e ho usato gli script forniti da Elith et al. 2008 (Una guida di lavoro agli alberi di regressione potenziati, Journal of Animal Ecology 77, 802-813) per invocare gbm. Ora mi sono reso conto che avevo delle NA per alcune delle variabili predittive e mi chiedo come hanno affrontato gli alberi di regressione potenziati. Sfogliando vari manuali e documenti ho trovato affermazioni come "alberi di regressione potenziati possono contenere valori mancanti" e simili, ma non sono riuscito a trovare una descrizione precisa di cosa sta facendo gbm con i valori mancanti. L'analisi stessa ha funzionato senza problemi, quindi gbm deve averli affrontati in un modo o nell'altro. Nel manuale gbm c'è anche un esempio in cui vengono deliberatamente introdotte le NA per dimostrare che gbm continua a funzionare senza problemi. Ora mi piacerebbe sapere cosa fa esattamente gbm con le NA (saltarle, imputarle, ...?).

+3

Questa domanda sembra essere fuori argomento, perché si tratta di implementazione di un algoritmo statistico. È forse più adatto per Cross Validated. –

+0

@ SimonO101: ho dubitato di quale sarebbe stato il forum giusto. Lo posterò su Crossvalidated. – user7417

+0

Mi piacerebbe lasciarlo un po '- il sito è gestito dalla comunità. Se il consenso è che questo è fuori tema allora la domanda si chiuderà e saprete chiederlo sul CV. Al momento, sono solo io che penso che sia più adatto al CV! –

risposta

3

La funzione gbm può essere utilizzata per l'imputazione as described in Jeffrey Wongs blog:. I valori mancanti ottengono divisioni surrogate e l'utente può quindi ottenere previsioni per iems con set predittori incompleti.

Ha sviluppato un pacchetto basato su questo approccio. Il repo GitHub ha questo nell'intestazione di uno dei file per 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. 

per trovare questo ho semplicemente digitato questo in una ricerca su Google: Come affronta GBM con valori mancanti. È stato il secondo successo per me.

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

+0

Sembra la funzione 'gbmImpute' nel pacchetto' imputation', non il pacchetto 'gbm' come richiesto ... – Spacedman

+0

Il codice aggiunto che utilizza gbm nel blog di Wong risponde alla domanda. Ho trovato un'altra SO Q & A di inizio anno, ma non pensavo che nessuna delle risposte spiegasse il processo di imputazione come ha fatto Wong. –

+1

Jeff Wong's è un grande pezzo di codice e la nota di intestazione risponde alla domanda dell'OP ad alto livello. A quanto ho capito, l'OP sta chiedendo come i valori mancanti siano trattati dall'algoritmo di incremento gradiente implementato nel pacchetto gbm. La risposta breve è che sono gestiti esplicitamente come un tipo di divisione insieme alle divisioni sinistra e destra e viene applicato un metodo di suddivisione surrogata (cfr. Documentazione sui pacchetti ada e rpart). –