Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

Erreur AFC

4 participants

Aller en bas

Erreur AFC Empty Erreur AFC

Message par durdurdur Ven 12 Juil 2013 - 17:10

Bonjour,

Quelqu'un saurait me dire ce que veut dire ce message d'erreur, quand je fais lire mon script AFC ?

> z<-dudi.coa(df=matrice,scannf=F, nf=3)
Erreur dans matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, :
'data' doit être de type vecteur, il était 'NULL'

J'ai un tableau à deux entrées, une pour des types de milieux, l'autres pour des espèces d'araignées, avec présence/absence selon les milieux (1 ou 0).

Merci !

durdurdur

Nombre de messages : 3
Date d'inscription : 12/07/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par zezima Lun 15 Juil 2013 - 6:57

Bonjour, si tu veux faire des ACM (ou AFC, c'est la même chose sauf qu'il y a deux variables), je te conseille de regarder les tutoriels de ce programmeur :

https://www.youtube.com/watch?v=ny4IxoLgdeY&list=PLnZgp6epRBbQu2QtCyqYL80In1P-A_Iud

N'oublie pas que pour l'AFC et l'ACM, il faut privilégier le codage de te variables en (1, 2, 3, ...) plutôt qu'en (0, 1, 2, ...).

R a tendance à ne pas digérer les "0".
C'est peut-être de là que vient ton problème.
zezima
zezima

Nombre de messages : 939
Date d'inscription : 26/02/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par droopy Lun 15 Juil 2013 - 11:32

ce n'est pas un problème de 0 et il ne faut surtout pas recoder ta matrice de présence-absence si tu veux que ton AFC fonctionne !

Tout simplement est-ce que toutes tes colonnes sont en 0 et 1 ou est-ce que ta première colonne ne contient pas le nom ou le type des milieux ?

cdlt
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par zezima Lun 15 Juil 2013 - 11:34

Pourquoi ne faut-il surtout pas recoder les 0 et 1 en 1 et 2 ?
Qu'est-ce que ça engendre étant donné que c'est du factoriel ?
zezima
zezima

Nombre de messages : 939
Date d'inscription : 26/02/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par droopy Lun 15 Juil 2013 - 11:47

parce que l'AFC se fait sur un table de contingence et que tu calcules les fréquences relatives en ligne et en colonnes qui ne seront plus les memes, donc le tableau transformé ne sera pas le meme non plus donc les résultats ne seront pas les memes n'ont plus! Par contre pour une acm ça ne changera rien.

Pour s'en convaincre :
Code:
tab <- matrix(rbinom(100,1,0.5),20)
coa1 <- dudi.coa(tab, scannf=F)
coa2 <- dudi.coa(tab+1, scannf=F)
cor(coa1$li, coa2$li)
            Axis1      Axis2
Axis1 -0.09404225 -0.89476931
Axis2 -0.93857326  0.07121361

# acm
tab2 <- as.data.frame(tab)
tab3 <- tab2+1
for (i in 1:ncol(tab2)) {
tab2[,i] <- as.factor(tab2[,i])
tab3[,i] <- as.factor(tab3[,i])
}
cor(dudi.acm(tab2, scannf=F)$li, dudi.acm(tab3, scannf=F)$li)
            Axis1        Axis2
Axis1  1.00000e+00 -1.80602e-16
Axis2 -1.80602e-16  1.00000e+00
Autrement dit ce n'est pas la même chose ... Selon la méthode, il faut faire attention aux transformations préalables.
cdlt
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par Nik Lun 15 Juil 2013 - 11:49

Pourquoi ne faut-il surtout pas recoder les 0 et 1 en 1 et 2 ?
ça va complètement changer les fréquences marginales car R va comprendre les 1 et les 2 comme des fréquences absolues...donc complètement bouleverser l'AFC qui n'aura plus rien à voir avec le sens d'origine.

Comme le sous-entend Droopy, ici on a typiquement un pb de format des données dans le tableau. On peut suggérer à durdurdur de faire
Code:
str(sontableau)
Pour vérifier qu'il n'a bien que des vecteurs et pas un facteur qui se serait glissé dans les données ou autre chose.


Et, je ne sais pas où tu as vu que R "a du mal à digérer les 0". C'est inexact.

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par zezima Lun 15 Juil 2013 - 12:35

Oui vous avez raison, je vois où se trouve ma confusion.

J'ai pour habitude d'utiliser un tableau de base avec variables x individus et non des tableaux de contingence pour les analyses en correspondances.

"R a du mal à digérer les 0" : je parlais des ACM Smile
parfois tout bug à cause des 0 et il faut recoder un niveau au dessus.
zezima
zezima

Nombre de messages : 939
Date d'inscription : 26/02/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par Nik Lun 15 Juil 2013 - 13:03

Je vois pas trop à quoi tu fais référence. Tant que tes variables sont bien des facteurs alors cela ne pose aucun souci car tout est pris en charge lors du passage en codage disjonctif complet (indicatrices)

ex :
Code:
scatter(dudi.acm(data.frame(gl(5,20,labels=0:4),gl(10,10,labels=0:9),gl(4,25,labels=0:3)),scannf=F,nf=4))
j'obtiens bien un graphique avec des étiquettes comprenant des "0"

Si tu as des problèmes c'est généralement qu'une des variables n'est pas de classe "factor". Du coup, tu ne peux pas avoir un passage en indicatrice car tout simplement tu n'as pas d'attribut "levels".

Bon après je ne prétend pas connaitre tous les cas mais là c'est assez bizarre.

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par zezima Lun 15 Juil 2013 - 13:11

En faite, quand je parle de 0 et 1, je parle du codage des modalités de chaque variable.

Par exemple, j'utilise 0=non muté / 1=muté. J'ai donc mon tableau rempli :
var
id1 1
id2 0
id3 0
id4 1

et lorsque j'utilise le package factominer, je dois tout recoder un cran au dessus car les fonctions ne comprennent pas les 0.

var
id1 2
id2 1
id3 1
id4 2

res=FAMD(table,tab.comp=complete)

Moi personnellement je n'ai aucun soucis, je n'ai pas besoin d'aide à ce niveau là. C'est juste que je ne comprenais pas qu'il faille avoir des tableaux de contingence avec des fréquences des modalités.
zezima
zezima

Nombre de messages : 939
Date d'inscription : 26/02/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par Nik Lun 15 Juil 2013 - 13:16

et lorsque j'utilise le package factominer
ah mais c'est pour ça...il faut utiliser des vrais packages Razz
Je plaisante bien sûr, je voudrais pas froisser les gens de Rennes Wink

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par zezima Lun 15 Juil 2013 - 13:43

haha, en tout cas je te conseille très fortement ce package, j'ai utilisé ade4 et factominer et franchement y'a pas photo.

Beaucoup plus d'options sur factorminer, des interfaces spéciales pour la classification et bien plus encore !
zezima
zezima

Nombre de messages : 939
Date d'inscription : 26/02/2013

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par Nik Lun 15 Juil 2013 - 14:33

j'ai utilisé ade4 et factominer et franchement y'a pas photo.
Pas si sûr...
FactomineR a un aspect sympa et pratique notamment pour les aspects graphiques mais est finalement pauvre en terme d'analyse voire même très pauvre.
Donc pour le plus d'options, c'est très relatif. Tout ce qui est dispo sous factomineR peut être refait sous ade4, l'inverse n'est pas vrai sauf au prix d'un effort de programmation qui s'approche plus du développement d'un package que de la "simple" programmation.

Mais on s'égare, on s'égare...

Mais que font les modos !!! Cool 

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

Erreur AFC Empty Re: Erreur AFC

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum