remplacement des NA par la moyenne de la ligne.

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

antoine rivierre
Messages : 5
Enregistré le : 12 Juin 2009, 20:35

remplacement des NA par la moyenne de la ligne.

Messagepar antoine rivierre » 29 Juin 2009, 18:49

Bonjour.
Afin d'effectuer une ACP avec une matrice remplie de trous je cherche à remplacer les NA par la valeur moyenne de la ligne.
Comme les données sont centrées et réduites avant l'analyse j'imagine que ceci ne doit pas influencer le résultat de l'ACP??
J'en profite donc également pour vous demander si mathématiquement et statistiquement parlant ceci se justifie. Dans le cas contraire que me conseillez vous??

Merci pour votre aide.
Antoine Rivierre

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 29 Juin 2009, 19:40

Code : Tout sélectionner

> m <- matrix(rnorm(12), ncol = 3)
> m[c(1, 6, 11)] <- NA
> m
           [,1]       [,2]       [,3]
[1,]         NA  0.3547303  0.5882354
[2,]  0.3930100         NA  0.6428642
[3,]  0.7740637 -0.2386702         NA
[4,] -0.8935756  0.7266868 -0.1749101
>
> fn <- function(x){
+           m. <- mean(x, na.rm = TRUE)
+           x[is.na(x)] <- m.
+           x
+           }
>
> t(apply(m, 1, fn))
           [,1]       [,2]       [,3]
[1,]  0.4714829  0.3547303  0.5882354
[2,]  0.3930100  0.5179371  0.6428642
[3,]  0.7740637 -0.2386702  0.2676967
[4,] -0.8935756  0.7266868 -0.1749101


Cette procédure n'est pas idéale. Elle ne biaise pas la moyenne, mais elle biaise la variance (en la réduisant). Il est préférable d'utiliser des procédures d'imputations multiples. Il y a des packages R pour ça, mais je ne les ai pas utilisés.
Renaud

antoine rivierre
Messages : 5
Enregistré le : 12 Juin 2009, 20:35

Messagepar antoine rivierre » 03 Juil 2009, 18:21

merci beaucoup pour la fonction. Avez vous une idée du nom des packages??

merci Antoine
Antoine Rivierre

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 04 Juil 2009, 08:34

Code : Tout sélectionner

RSiteSearch("imputation")
Renaud


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron