Ho un set di dati molto grande e mancano circa il 5% di valori casuali. Queste variabili sono correlate tra loro. Il seguente set di dati R è solo un esempio di giocattolo con dati correlati fittizi.
set.seed(123)
# matrix of X variable
xmat <- matrix(sample(-1:1, 2000000, replace = TRUE), ncol = 10000)
colnames(xmat) <- paste ("M", 1:10000, sep ="")
rownames(xmat) <- paste("sample", 1:200, sep = "")
#M variables are correlated
N <- 2000000*0.05 # 5% random missing values
inds <- round ( runif(N, 1, length(xmat)) )
xmat[inds] <- NA
> xmat[1:10,1:10]
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10
sample1 -1 -1 1 NA 0 -1 1 -1 0 -1
sample2 1 1 -1 1 0 0 1 -1 -1 1
sample3 0 0 1 -1 -1 -1 0 -1 -1 -1
sample4 1 0 0 -1 -1 1 1 0 1 1
sample5 NA 0 0 -1 -1 1 0 NA 1 NA
sample6 -1 1 0 1 1 0 1 1 -1 -1
sample7 NA 0 1 -1 0 1 -1 0 1 NA
sample8 1 -1 -1 1 0 -1 -1 1 -1 0
sample9 0 -1 0 -1 1 -1 1 NA 0 1
sample10 0 -1 1 0 1 0 0 1 NA 0
Esiste un modo (migliore) per imputare i valori mancanti in questa situazione? L'algoritmo Random Forest è utile? Qualsiasi soluzione di lavoro in R sarebbe molto apprezzata.
modifiche:
(1) I valori mancanti sono distribuiti casualmente tra le variabili e i campioni. Il numero di variabili è molto grande (qui nell'esempio - 10000), mentre il numero di campioni è piccolo qui nell'esempio fittizio sopra è di circa 200. Quindi quando osserviamo qualsiasi campione su tutte le variabili (10000), ci sono alte probabilità che manchi un valore in alcune variabili, a causa dell'elevato numero di variabili. Quindi solo eliminare l'esempio non è un'opzione.
(2) La variabile può essere trattata sia come quantitativa che qualitativa (binaria) nel processo di imputazione. L'unico giudizio è quanto bene possiamo prevederlo (accuratezza). Quindi previsioni come 0,98 invece di 1 potrebbero essere accettabili piuttosto che 0 contro 1 o -1 contro 1. Potrei aver bisogno di un compromesso tra tempo di calcolo e precisione.
(3) Il problema che sto pensando è che il sovradimensionamento può influire sui risultati poiché il numero di variabili è elevato rispetto al numero di campioni.
(4) Poiché la quantità totale di valori mancanti è di circa il 5% ed è casuale (non concentrata in nessuna variabile o campione come precauzione è stata presa per rimuovere le variabili o i campioni che hanno valori mancanti molto alti)
(5) Rendere i dati completi per l'analisi è il primo obiettivo e l'accuratezza è secondaria. Quindi non troppo sensibile alla precisione.