J'ai utilisé la prcomp()
fonction pour effectuer une PCA (analyse des composants principaux) dans R. Cependant, il y a un bogue dans cette fonction, de sorte que le na.action
paramètre ne fonctionne pas. J'ai demandé de l'aide sur stackoverflow ; deux utilisateurs y ont proposé deux manières différentes de gérer les NA
valeurs. Cependant, le problème avec les deux solutions est que lorsqu'il existe une NA
valeur, cette ligne est supprimée et n'est pas prise en compte dans l'analyse PCA. Mon véritable ensemble de données est une matrice de 100 x 100 et je ne veux pas perdre une ligne entière simplement parce qu'elle contient une seule NA
valeur.
L'exemple suivant montre que la prcomp()
fonction ne renvoie aucun composant principal pour la ligne 5 car elle contient une NA
valeur.
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
Je me demandais si je pouvais définir les NA
valeurs à une valeur numérique spécifique quand center
et si elles scale
sont définies pour TRUE
que la prcomp()
fonction fonctionne et ne supprime pas les lignes contenant NA
des, mais n'influence pas non plus le résultat de l'analyse PCA.
J'ai pensé à remplacer les NA
valeurs par la valeur médiane sur une seule colonne, ou par une valeur très proche de 0. Cependant, je ne sais pas comment cela influence l'analyse PCA.
Quelqu'un peut-il penser à une bonne façon de résoudre ce problème?
NA
valeurs : quelle est la cause du "manque"?