Tengo un conjunto de datos muy grande y faltan alrededor del 5% de valores aleatorios. Estas variables están correlacionadas entre sí. El siguiente conjunto de datos R de ejemplo es solo 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
¿Hay una (mejor) forma de imputar valores perdidos en esta situación? ¿Es útil el algoritmo Random Forest? Cualquier solución de trabajo en R sería muy apreciada.
Ediciones:
(1) Los valores faltantes se distribuyen aleatoriamente entre las variables y las muestras. Como el 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 aproximadamente 200. Entonces, cuando Si observamos cualquier muestra sobre todas las variables (10000), hay muchas posibilidades de que falte un valor en alguna variable, debido a la gran cantidad de variables. Entonces, simplemente eliminar la muestra no es una opción.
(2) La variable puede tratarse como cuantitativa o cualitativa (binaria) en el proceso de imputación. El único juicio es qué tan bien podemos predecirlo (precisión). Por lo tanto, las predicciones como 0,98 en lugar de 1 podrían ser aceptables en lugar de 0 frente a 1 o -1 frente a 1. Es posible que deba compensar el tiempo de cálculo y la precisión.
(3) El problema que tengo pensando es cómo el sobreajuste puede afectar los resultados ya que el número de variables es grande en comparación con el número de muestras.
(4) Como la cantidad total de valores faltantes es aproximadamente del 5% y es aleatoria (no se concentra en ninguna variable o muestra, ya que se tomó precaución para eliminar las variables o muestras que tienen valores faltantes muy altos)
(5) Completar los datos para el análisis es el primer objetivo y la precisión es secundaria. Por lo tanto, no es demasiado sensible a la precisión.