Utilicé la prcomp()función para realizar un PCA (análisis de componentes principales) en R. Sin embargo, hay un error en esa función de modo que el na.actionparámetro no funciona. Pedí ayuda sobre stackoverflow ; dos usuarios ofrecieron dos formas diferentes de tratar con los NAvalores. Sin embargo, el problema con ambas soluciones es que cuando hay un NAvalor, esa fila se descarta y no se considera en el análisis de PCA. Mi conjunto de datos real es una matriz de 100 x 100 y no quiero perder una fila completa solo porque contiene un solo NAvalor.
El siguiente ejemplo muestra que la prcomp()función no devuelve ningún componente principal para la fila 5 ya que contiene un NAvalor.
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10),
V3 = sample(1:100, 10))
result <- prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x # $
d$V1[5] <- NA # $
result <- prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
Me preguntaba si puedo establecer los NAvalores en un valor numérico específico cuando centery scalese configuran para TRUEque la prcomp()función funcione y no elimine las filas que contienen NA's', pero tampoco influye en el resultado del análisis de PCA.
Pensé en reemplazar los NAvalores con el valor medio en una sola columna, o con un valor muy cercano a 0. Sin embargo, no estoy seguro de cómo eso influye en el análisis de PCA.
¿Alguien puede pensar en una buena manera de resolver ese problema?
NAvalores : ¿cuál es la causa de la "falta"?