Eu tenho um conjunto de dados muito grande e faltam cerca de 5% de valores aleatórios. Essas variáveis estão correlacionadas entre si. O exemplo a seguir do conjunto de dados R é apenas um exemplo de brinquedo com dados correlatos simulados.
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
Existe uma (melhor) maneira de imputar valores ausentes nesta situação? O algoritmo Random Forest é útil? Qualquer solução de trabalho em R seria muito apreciada.
Editar% s:
(1) Os valores ausentes são distribuídos aleatoriamente entre as variáveis e as amostras. Como número de variáveis é muito grande (aqui no exemplo - 10000), enquanto o número de amostras é pequeno aqui no exemplo fictício acima, é cerca de 200. Então, quando Quando analisamos qualquer amostra de todas as variáveis (10000), há grandes chances de que haja valor ausente em alguma variável - devido ao grande número de variáveis. Portanto, apenas excluir a amostra não é uma opção.
(2) A variável pode ser tratada como quantitativa ou qualitativa (binária) no processo de imputação. O único julgamento é o quão bem podemos prever (precisão). Portanto, previsões como 0,98 em vez de 1 podem ser aceitáveis, em vez de 0 vs 1 ou -1 vs 1. Talvez eu precise trocar entre tempo e precisão de computação.
(3) A questão que estou pensando em como a adaptação excessiva pode afetar os resultados, pois o número de variáveis é grande em comparação ao número de amostras.
(4) Como a quantidade total de valores ausentes é de cerca de 5% e é aleatória (não concentrada em nenhuma variável ou amostra, foi tomado cuidado para remover as variáveis ou amostras que possuem valores ausentes muito altos)
(5) Tornar os dados completos para análise é o primeiro objetivo e a precisão, secundária. Portanto, não muito sensível à precisão.