Utilicé el prcomp()
para realizar un PCA (análisis de componentes principales) en R. Sin embargo, hay un error en esa función tal que el na.action
no funciona. He pedido ayuda en stackoverflow dos usuarios ofrecieron dos formas diferentes de tratar con NA
valores. Sin embargo, el problema de ambas soluciones es que cuando hay un NA
esa fila se elimina y no se tiene en cuenta en el análisis PCA. Mi conjunto de datos reales es una matriz de 100 x 100 y no quiero perder una fila entera sólo porque contiene un único NA
valor.
El siguiente ejemplo muestra que el prcomp()
no devuelve ningún componente principal para la fila 5, ya que contiene un NA
valor.
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 se puede establecer el NA
a un valor numérico específico cuando center
y scale
se establecen en TRUE
para que el prcomp()
funciona y no elimina las filas que contienen NA
pero tampoco influye en el resultado del análisis PCA.
Pensé en reemplazar NA
con el valor de la mediana en una sola columna, o con un valor muy cercano a 0. Sin embargo, no estoy seguro de cómo influye esto en el análisis PCA.
¿A alguien se le ocurre una buena manera de resolver este problema?