Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Problème d'ACM (R)
5 participants
Page 1 sur 1
Problème d'ACM (R)
Bonjour,
Actuellement en stage, je dois proposer différentes solutions pour identifier des clients afin de leur proposer une promotion adéquate. J'ai donc pensé faire une ACM, J'ai essayé d'utiliser le script que l'on utilise en cours avec le package ade4 mais j'obtiens le message d'erreur suivant :
Error in matrix(0, n, length(levels(cl))) : too many elements specified
Après quelques recherches il semblerait que c'est parce que j'ai un fichier trop volumineux, en effet j'ai 3 millions d'observations...
J'ai donc essayé de prendre une petite partie de mes données en faisant X=X[1:1000,]
J'obtiens désormais :
Error in dudi.acm(X) : One category with null weight
Je ne sais plus quoi essayer pour obtenir mon ACM, quelqu'un aurait une idée ?
Merci
PS : Si ça peut aider mes variables sont : Code postal, ville, produit, code produit, sous type de produit, code produit, article, code article.
Actuellement en stage, je dois proposer différentes solutions pour identifier des clients afin de leur proposer une promotion adéquate. J'ai donc pensé faire une ACM, J'ai essayé d'utiliser le script que l'on utilise en cours avec le package ade4 mais j'obtiens le message d'erreur suivant :
Error in matrix(0, n, length(levels(cl))) : too many elements specified
Après quelques recherches il semblerait que c'est parce que j'ai un fichier trop volumineux, en effet j'ai 3 millions d'observations...
J'ai donc essayé de prendre une petite partie de mes données en faisant X=X[1:1000,]
J'obtiens désormais :
Error in dudi.acm(X) : One category with null weight
Je ne sais plus quoi essayer pour obtenir mon ACM, quelqu'un aurait une idée ?
Merci
PS : Si ça peut aider mes variables sont : Code postal, ville, produit, code produit, sous type de produit, code produit, article, code article.
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Bonjour,
Tu peux essayer comme suit
- Code:
X <- droplevels(X[1:1000,])
HTH
nik
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Problème d'ACM (R)
Bonjour,
c'est génial, je n'ai plus de message d'erreurs, j'arrive à avoir mon tableau de contributions cependant ce n'est pas pour autant très clair... Mes COS2 pour mes axes varient entre soit 0 soit 1. Pensez vous que j'utilise trop de variables ? Devrais-je faire plusieurs ACM ? je suis un peu perdu
c'est génial, je n'ai plus de message d'erreurs, j'arrive à avoir mon tableau de contributions cependant ce n'est pas pour autant très clair... Mes COS2 pour mes axes varient entre soit 0 soit 1. Pensez vous que j'utilise trop de variables ? Devrais-je faire plusieurs ACM ? je suis un peu perdu
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Bonjour,
A quoi correspondent le "code produit" et le "produit" ?
Ce à quoi il faut faire attention dans les analyses multiples, ce sont les doublons de variables. Par exemple deux variables qui sont totalement dépendantes (Age et date de naissance / IMC et taille).
Avoir des variables en doublon va faire basculer l'interprétation de ton ACM et donner beaucoup de pois du côté des variables doublons.
A quoi correspondent le "code produit" et le "produit" ?
Ce à quoi il faut faire attention dans les analyses multiples, ce sont les doublons de variables. Par exemple deux variables qui sont totalement dépendantes (Age et date de naissance / IMC et taille).
Avoir des variables en doublon va faire basculer l'interprétation de ton ACM et donner beaucoup de pois du côté des variables doublons.
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Problème d'ACM (R)
Oui, en effet elles correspondent à la meme chose, je vais essayer en enlevant les doublons.
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Par contre, je ne sais pas choisir le nombre d'axes dont j'ai besoin, j'ai un graphique en forme de coude, j'ai appris en cours qu'il fallait choisir la valeur pour laquelle ça se "stabilise" cependant ça fait environ 30 axes, c'est beaucoup non ?
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Re-
Une règle possible est l'observation visuelle d'un "saut" (baisse significative entre 2 valeurs propres successives) dans l'histogramme des valeurs propres. On retient alors les axes jusqu'au saut.
Dans le cas où il y a absence de saut, c'est qu'il n'y a pas de structure forte dans les données. il est donc assez inutile d'aller interpréter l'analyse sur un plan factoriel plutôt qu'un autre.
Nik
Une règle possible est l'observation visuelle d'un "saut" (baisse significative entre 2 valeurs propres successives) dans l'histogramme des valeurs propres. On retient alors les axes jusqu'au saut.
Dans le cas où il y a absence de saut, c'est qu'il n'y a pas de structure forte dans les données. il est donc assez inutile d'aller interpréter l'analyse sur un plan factoriel plutôt qu'un autre.
Nik
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Problème d'ACM (R)
Ok, merci, par contre est ce normal que mon premier axe ne résume que 1% de mes données, dans les exercices que j'ai fait en cours, le premier axe résumait environ 50% des données, est ce du au fait qu'il y ai plus de données ou ai-je fais une erreur quelque part ?
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
C'est sûr que 1% c'est assez ridicule...Mais le pourcentage dépend aussi du nombre de variables explicatives et puis de la dispersion du nuage suivant les axes.
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Problème d'ACM (R)
J'ai pris 4 variables sur les 12 de base car certaines étaient égales (Produit et code produit), comment faire pour que mes axes résument mieux mes données ?
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Tu as combien de modalité par variable ?
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Problème d'ACM (R)
Le nombre de modalité doit être énorme voire infini pour expliquer 1% sur le premier axe.
Il y a des modalités piège à ne pas prendre, par exemple l'ID. Si chaque code est référencé par un code différent, alors ton ACM ne sortira rien. Il ne faut garder que les variables explicatives et interprétables.
Il y a des modalités piège à ne pas prendre, par exemple l'ID. Si chaque code est référencé par un code différent, alors ton ACM ne sortira rien. Il ne faut garder que les variables explicatives et interprétables.
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Problème d'ACM (R)
Voici mes modalités :
ya-t-il une façon de supprimer les lignes donc les modalités ne se répettent que quelques fois ?
- Code:
'data.frame': 3321582 obs. of 13 variables:
$ Code.client : Factor w/ 493472 levels "005D8F33497DBDED9E7244FCF4A481CB2149F3C12B259A5B",..: 1 1 1 1 2 2 2 2 2 2 ...
$ Date.naissance.client : Factor w/ 1152 levels "01/01/1515 00:00:00",..: 945 945 945 945 541 541 541 541 541 541 ...
$ Code.Postal.client : Factor w/ 2675 levels "01000","01090",..: 1662 1662 1662 1662 1704 1704 1704 1704 1704 1704 ...
$ Ville.client : Factor w/ 4619 levels ".","3","7 EME ARRONDISSEMENT",..: 1263 1263 1263 1263 616 616 616 616 616 616 ...
$ Produit : Factor w/ 152 levels "ABT SUBV LOIRE",..: 5 5 5 5 126 126 126 126 126 126 ...
$ Code.Produit : Factor w/ 152 levels "A1001","A1012",..: 5 5 5 5 1 1 1 1 1 1 ...
$ Sous.type.de.produit : Factor w/ 21 levels "Abt Age d'Or",..: 3 3 3 3 12 12 12 12 12 12 ...
$ Code.Sous.type.de.produit : Factor w/ 21 levels "AGOR","AOPA",..: 3 3 3 3 14 14 14 14 14 14 ...
$ Article : Factor w/ 2472 levels "ABT SUBV LOIRE",..: 117 110 112 113 333 334 335 336 337 380 ...
$ Code.Article : Factor w/ 2529 levels "A1001-2014/01",..: 92 93 91 90 8 4 12 2 1 5 ...
$ Date.début.validité.article: Factor w/ 68 levels "01/01/2014 00:00:00",..: 4 5 3 1 9 5 17 3 1 6 ...
$ Date.fin.validité.article : Factor w/ 76 levels "01/06/2014 00:00:00",..: 64 54 47 62 70 54 75 47 62 66 ...
ya-t-il une façon de supprimer les lignes donc les modalités ne se répettent que quelques fois ?
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
Ce ne sont pas les lignes uniques qu'il faut supprimer mais plutôt la variable.
"Code client" n'apporte aucune information à une analyse, c'est un ID, il n'y a pas de corrélation à faire à ce niveau là.
Concernant les autres variables, je trouve que tu as énormément de modalités.
Imagines que croises le code postal du client (2675 modalités) et le code article (2529 modalités), sur un graphique à deux dimensions, c'est compliqué de comprendre ce qu'il en retourne.
Fais attention, tu as des variables mal codées qui te rajoutent des modalités dans tes variables ("." dans la ville du client).
Personnellement je n'ai jamais utilisé autant de modalités pour une analyse multiple mais elle explique déjà pourquoi ton modèle n'explique qu'un pourcent.
Enlève déjà le code client de l'analyse et regarde ce que tu obtiens.
"Code client" n'apporte aucune information à une analyse, c'est un ID, il n'y a pas de corrélation à faire à ce niveau là.
Concernant les autres variables, je trouve que tu as énormément de modalités.
Imagines que croises le code postal du client (2675 modalités) et le code article (2529 modalités), sur un graphique à deux dimensions, c'est compliqué de comprendre ce qu'il en retourne.
Fais attention, tu as des variables mal codées qui te rajoutent des modalités dans tes variables ("." dans la ville du client).
Personnellement je n'ai jamais utilisé autant de modalités pour une analyse multiple mais elle explique déjà pourquoi ton modèle n'explique qu'un pourcent.
Enlève déjà le code client de l'analyse et regarde ce que tu obtiens.
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Problème d'ACM (R)
Oui, j'enlève toujours le code client quand je fais mes ACM, je viens de me concentrer sur 2 types de produit en ne gardant que les variables Code postal, Article et Date de naissance, j'ai séparer les code postaux en 3 catégories et je vais faire des classes d'ages, je vous tiens au courant.
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
ouch ! + de 500 000 variables...On comprends mieux tes résultats.
Je ne suis déjà pas sûr que l'ACM soit adaptée à la question. Pour le moment, tu fais une typologie des achats et tu tentes de voir quels sont les facteurs qui permettent de regrouper au mieux ces achats. Est-ce bien ça ce qu 'il te faut ? je n'en suis pas sûr...
Je ne suis déjà pas sûr que l'ACM soit adaptée à la question. Pour le moment, tu fais une typologie des achats et tu tentes de voir quels sont les facteurs qui permettent de regrouper au mieux ces achats. Est-ce bien ça ce qu 'il te faut ? je n'en suis pas sûr...
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: Problème d'ACM (R)
Bon, du coup je crois que j'ai quelque chose de correct
Qu'en pensez vous ?
Qu'en pensez vous ?
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Re: Problème d'ACM (R)
C'est beaucoup mieux mais les Axes sont quand même à 9% et 4%... Il faudrait voir les autres axes et voir surtout combien de pourcents ils expliquent et voir si tu trouves les mêmes résultats sur les autres axes.
zezima- Nombre de messages : 939
Date d'inscription : 26/02/2013
Re: Problème d'ACM (R)
Bonjour,
du fait du très grand nombre de variables en ACM de part la transformation de la variable en indicatrice certains auteurs pensent que le pourcentage d'inertie expliqué par les axes est sous-évalués. Des corrections ont été proposées pour remédier à ce problème. Par contre je ne remets pas la main dessus mais je suis sur qu'en cherchant un peu sur google on finit par retrouver des choses intéressantes.
droopy
du fait du très grand nombre de variables en ACM de part la transformation de la variable en indicatrice certains auteurs pensent que le pourcentage d'inertie expliqué par les axes est sous-évalués. Des corrections ont été proposées pour remédier à ce problème. Par contre je ne remets pas la main dessus mais je suis sur qu'en cherchant un peu sur google on finit par retrouver des choses intéressantes.
droopy
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Problème d'ACM (R)
Bonjour,
Je pense qu'avant de se lancer dans ce type d'analyse tu devrais te renseigner sur son but, et son utilisation...
Et évidemment faire un gros pré-traitement de tes données, qui est indispensable, notamment une analyse uni varié pour recoder tes variables et avoir quelque chose d'exploitable par la suite.
Je pense qu'avant de se lancer dans ce type d'analyse tu devrais te renseigner sur son but, et son utilisation...
Et évidemment faire un gros pré-traitement de tes données, qui est indispensable, notamment une analyse uni varié pour recoder tes variables et avoir quelque chose d'exploitable par la suite.
jeremyJ- Nombre de messages : 78
Date d'inscription : 09/09/2014
Re: Problème d'ACM (R)
Bonjour, j'ai pas mal bosser sur ma table depuis, j'ai recodé les variables pour avoir moins de possibilités et j'ai fusionné plusieurs tables pour avoir plus de variables. Je vous tiens au courant.
louisreglain- Nombre de messages : 10
Date d'inscription : 04/05/2015
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum