Variable supplémentaire qualitative AFC FactoMineR

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

Jan Perret
Messages : 7
Enregistré le : 18 Jan 2017, 17:19

Variable supplémentaire qualitative AFC FactoMineR

Messagepar Jan Perret » 14 Mar 2017, 18:46

Bonjour à tous,

Je rencontre un problème avec la fonction CA du package FactoMineR. J'ai fait une AFC sur un tableau de contingence qui résume le nombre de captures par espèce à deux sites au cours de sessions de capture réalisées en parallèle. J'ai donc fait un tableau avec en ligne mes sessions par site (session 1 site 1, session 2 site A, ... Session 1 site B session 2 site B, ... etc), et en colonne les espèces. Mon but est de voir si les sessions par site se regroupent plutôt selon le site (plus grande importance de l'hétérogénéité spatiale sur la composition de la communauté) ou selon la date (plus grande importance de la période de l'année sur la composition de la communauté).

J'observe sur le graphique d'AFP un regroupement des sessions-site principalement selon le site (sessions au site A regroupées d'un côté et sessions au site B de l'autre). J'aimerai mieux illustrer cela en ajoutant une variable supplémentaire qualitative via l'argument quali.sup, afin de pouvoir faire figurer "Site A" au barycentre des sessions-site réalisées au site A, et "Site B" au barycentre des sessions réalisées au site B. Pour cela j'ai ajouté une colonne "Site" à mon tableau de départ avec les valeurs "Site A" ou "Site B" pour chaque ligne. Cependant cet ajout a fait passer toutes mes colonnes en type "character", et je n'arrive pas à refaire passer les autres colonnes au format de départ (integer), et je ne peux plus faire d'AFC sur le tableau car il ne reconnais pas les variables de type character... Quelqu'un saurait-il comment faire passer les autres colonnes en integer? Ou une autre manière d'ajouter une variable illustrative qualitative pour rendre plus visible le regroupement de selon le site?

Merci d'avance,

Jan

Aurore Laurent
Messages : 8
Enregistré le : 15 Mar 2017, 09:15

Re: Variable supplémentaire qualitative AFC FactoMineR

Messagepar Aurore Laurent » 15 Mar 2017, 13:10

Pour passer une variable caractère en variable numérique vous pouvez faire la manipulation suivante :

data$nomvariable<-as.numeric(as.character(data$nomvariable))

Je vous avoue ne pas comprendre pourquoi cela s'est produit.... Bon courage

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Variable supplémentaire qualitative AFC FactoMineR

Messagepar Pierre-Yves Berrard » 15 Mar 2017, 13:26

Jan Perret a écrit :Pour cela j'ai ajouté une colonne "Site" à mon tableau de départ avec les valeurs "Site A" ou "Site B" pour chaque ligne. Cependant cet ajout a fait passer toutes mes colonnes en type "character"

C'est assez curieux. Quelles instructions avez-vous utilisé pour obtenir ce résultat ?
PY

Jan Perret
Messages : 7
Enregistré le : 18 Jan 2017, 17:19

Re: Variable supplémentaire qualitative AFC FactoMineR

Messagepar Jan Perret » 15 Mar 2017, 15:08

Merci beaucoup de vos réponses !

Voici le code qui m'a amené à cette situation :

Code : Tout sélectionner

tab_ac_comp_lieux<-read.csv2("C:/...", row.names = 1)

lieu <- c(rep("Site A", 7), rep("Site B", 7))

tab_ac_comp_lieux <- rbind(tab_ac_comp_lieux, lieu)
rownames(tab_ac_comp_lieux)[43] <- "lieu"
tab_ac_comp_lieux_inv <- t(tab_ac_comp_lieux)
tab_ac_comp_lieux_inv <- as.data.frame(tab_ac_comp_lieux_inv) # car l'objet créé à la ligne ci-dessus est de classe "matrix"



Aurore, j'ai essayé la commande que vous me suggérez, mais R indique ça :

Code : Tout sélectionner

> tab_ac_comp_lieux_inv$lieu <- as.numeric(as.character(tab_ac_comp_lieux_inv$lieu))
Warning message:
NAs introduced by coercion


Et de fait toutes les valeurs de ma colonne sont devenus des NA. Mais peut-être ai-je mal compris quelque chose? Mon tableau "tab_ac_comp_lieux_inv" est un data frame.

Je pense que la solution ne doit pas être très complexe, je dois manquer quelque chose au niveau des types d'objets ou de variable, mais je n'arrive pas à trouver. Et pourquoi dés que j'ajoute la ligne lieu (dans le script ci-dessus, mais si je l'ajoute lorsque le tableau est inversé cela donne le même résultat), toutes mes variables passent en type "chr"?
Je ne sais pas si ça aide de préciser ça, mais mes données sont des comptages, donc uniquement des entiers positifs ou nuls, et quelques espèces n'ont été vues qu'à très peu d'occasions, donc cela donne une ligne avec uniquement des 0 et des 1.

Merci d'avance pour vos réponses,
Jan

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Variable supplémentaire qualitative AFC FactoMineR

Messagepar Pierre-Yves Berrard » 15 Mar 2017, 16:11

L'explication :

  • t() renvoie une matrice ;
  • les données dans une matrice sont de type homogène ;
  • pour rendre la matrice homogène, les chiffres sont convertis en caractère (le type le plus flexible).

Pourquoi pas simplement ?

Code : Tout sélectionner

tab_ac_comp_lieux <- read.csv2("C:/...", row.names = 1)
tab_ac_comp_lieux$lieu <- c(rep("Site A", 7), rep("Site B", 7))
PY

Jan Perret
Messages : 7
Enregistré le : 18 Jan 2017, 17:19

Re: Variable supplémentaire qualitative AFC FactoMineR

Messagepar Jan Perret » 15 Mar 2017, 18:21

Et bien oui tout simplement. J'ai ré-enregistré mon dataframe de départ en l'inversant, puis l'ai ré-importé dans R et j'ai ajouté la colonne "lieu" comme vous me l'avez suggéré. Ça marche maintenant sans problème.

Merci beaucoup Pierre-Yves pour la solution et l'explication !


Retourner vers « Questions en cours »

Qui est en ligne

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