Tengo un conjunto de datos muy grande y falta un 5% de valores al azar. Estas variables están correlacionadas entre sí. El siguiente ejemplo de conjunto de datos de R es sólo un ejemplo de juguete con datos correlacionados ficticios.
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 una (mejor) forma de imputar los valores perdidos en esta situación? ¿Es útil el algoritmo Random Forest? Cualquier solución que funcione en R sería muy apreciada.
Editado:
(1) Los valores perdidos se distribuyen aleatoriamente entre las variables y las muestras. número de variables es muy grande (aquí en el ejemplo - 10000), mientras que el número de muestras es pequeño, aquí en el ejemplo ficticio anterior es de unos 200. Por lo tanto, cuando observamos una muestra de todas las variables (10000), hay muchas posibilidades de que falte algún valor en alguna variable, debido al gran número de variables. Por lo tanto, la eliminación de la muestra no es una opción.
(2) La variable puede ser tratada como cuantitativa o cualitativa (binaria) en el proceso de imputación. Lo único que se juzga es lo bien que podemos predecirla (precisión). Así, predicciones como 0,98 en lugar de 1 podrían ser aceptables en lugar de 0 frente a 1 o -1 frente a 1. Puede que tenga que hacer un compromiso entre el tiempo de cálculo y la precisión.
(3) El problema que tengo es pensar en cómo el sobreajuste puede afectar a los resultados ya que el número de variables es grande comparado con el número de muestras.
(4) Como la cantidad total de valores perdidos es de aproximadamente el 5% y es aleatoria (no se concentra en ninguna variable o muestra, ya que se tomó la precaución de eliminar las variables o muestras que tienen valores perdidos muy altos)
(5) Hacer que los datos estén completos para el análisis es el primer objetivo y la precisión es secundaria. Así que no es demasiado sensible a la precisión.