Ho usato la prcomp()
funzione per eseguire un PCA (analisi del componente principale) in R. Tuttavia, c'è un bug in quella funzione in modo che il na.action
parametro non funzioni. Ho chiesto aiuto su stackoverflow ; due utenti hanno offerto due modi diversi di trattare i NA
valori. Tuttavia, il problema con entrambe le soluzioni è che quando esiste un NA
valore, quella riga viene eliminata e non considerata nell'analisi PCA. Il mio set di dati reali è una matrice di 100 x 100 e non voglio perdere un'intera riga solo perché contiene un singolo NA
valore.
L'esempio seguente mostra che la prcomp()
funzione non restituisce alcun componente principale per la riga 5 poiché contiene un NA
valore.
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
Mi chiedevo se posso impostare i NA
valori su un valore numerico specifico quando center
e scale
sono impostati in TRUE
modo che la prcomp()
funzione funzioni e non rimuova le righe contenenti quelle NA
, ma non influenzi anche il risultato dell'analisi PCA.
Ho pensato di sostituire i NA
valori con il valore mediano attraverso una singola colonna o con un valore molto vicino a 0. Tuttavia, non sono sicuro di come ciò influenzi l'analisi PCA.
Qualcuno può pensare a un buon modo per risolvere quel problema?
NA
valori : qual è la causa della "mancanza"?