Les posteurs les plus actifs de la semaine
joyeux_lapin13
 
Pchalix
 
victornitho
 
c@ssoulet
 
zezima
 
Eric Wajnberg
 
schlebe
 


Prétraitement CAH --> ACP sur beaucoup de variables

Voir le sujet précédent Voir le sujet suivant Aller en bas

Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Mer 18 Mai 2016 - 7:08

Bonjour à tous,

Je suis chargé de réaliser une typologie (avec le logiciel R) à partir d'une base de données recensant 405 individus et près de 150 variables (la grande majorité sont de nature quantitative).

J'ai pour optique d'isoler les variables quantitatives et ainsi réaliser une ACP avec en variables supplémentaires les quelques variables quali intéressantes.

En premier lieu je me pose cette question :

- Est-il préférable de sélectionner les indicateurs pertinents avant de réaliser l'ACP ou au contraire il vaut mieux lancer l'ACP sur toutes les variables quanti (110 variables) ?

Pour l'instant j'ai opté pour la deuxième solution à savoir faire tourner l'ACP sur toute la base et retenir les k composantes principales (où la valeur propre est > 1 ce qui correspond à 29 CP : 75% inertie). Je retire les dernières composantes correspondant au "bruit statistique". Effectivement, j'ai appris qu'il était dans notre intérêt de garder un maximum de variables pour perdre le moins d'information possible...

Mais dans ce cas, j'ai des doutes sur l'interprétation de cette ACP ... ne perd t-elle pas du sens ?
Comment l'interpréter ? Caractériser uniquement le premier plan factoriel (celui-ci représente que 21% de l'inertie) ? De plus avec autant de variables certaines sorties deviennent illisibles (notamment le cercle des corrélations).
(Au vu de la matrice des corrélations, mes variables présentent quelques corrélations entre elles)

Je comptais par la suite lancé ma CAH sur les 29 composantes principales retenus précédemment.

Si quelqu'un peut éclairer ma lanterne je suis tout ouïe ! Laughing

Cordialement

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Mer 18 Mai 2016 - 10:38

Bien que très utilisé dans la littérature, le critère de Kaiser (conserver les dimensions associées à une valeur propre supérieure à 1) n'est pas un bon critère de choix quand le rapport entre le nombre de d'individus et de variables oscille autour de l'unité (ici, de l'ordre de 4). Pour s'en convaincre :
Code:

require( MASS)
donnees <- mvnorm( 405, mu=rep( 0, 110), Sigma=diag( 110)
eigen( cor( donnees))$values

# Analyse parallèle de Horn
library( paran)
paran( donnees, graph=TRUE)

# Critere de Karlis-Saporta-Spinaki
1 + 2 * sqrt( (Nb.variables - 1) / (Nb.lignes - 1))

Il y a environ 50 valeurs propres supérieures à 1 tandis que l'analyse parallèle de Horn conduit à n'en retenir qu'une et le critère de Karlis/Saporta/Spinaki deux à trois.

Donc, soit je commencerais par une sélection de variable soit j'utiliserai une ACP robuste.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Mer 18 Mai 2016 - 13:36

Hey ! Merci pour cette réponse.

Je vais donc effectuer de la sélection d'indicateurs avant d'effectuer mon ACP. Je comparerai dans un second temps les résultats avec l'ACP robuste si le temps me le permet.

L'ACP robuste permet de ne pas donner un poids élevé aux outliers c'est bien cela ? La méthode ne m'est pas familière ! L'interprétation reste la même que pour une ACP normale ?

Cordialement

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Mer 18 Mai 2016 - 14:09

L'ACP robuste va permettre de traiter le problème d'indétermination des composantes, c'est-à-dire que grossièrement elle ne prendra en compte que les variables qui sont assez corrélées entre elles alors que le fait que le rapport entre nombre d'individus et de variables est faible crée des corrélations parasites. C'est un peu comme si elle ne prenait en compte que les corrélations significatives mais le faire directement, c'est-à-dire mettre à zéro les corrélations non significatives, peut conduire à une matrice qui n'est plus une matrice définie positive, ce qui entrainera des valeurs propres négatives.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Lun 23 Mai 2016 - 13:40

Bonjour,

Je reviens à la charge ! Alors j'ai effectué ma sélection d'indicateurs et je suis passé de 150 variables à 50 variables.

Cependant les résultats fournis en particulier le cercle des corrélations est difficilement interprétable même en raccourcissant le libellé des variables .. (je travaille avec FactomineR).

Je voulais savoir si il y avait un moyen pour que l'on puisse bien associer chaque flèche au libellé de la variable. Dans mon cas, il est difficile de savoir quelle flèche appartient à quel libellé.

Sinon pour réduire davantage le nombre de variables, est-ce que se baser sur la matrice des corrélations et retirer les variables corrélées aux autres est une bonne méthode. En procédant de cette manière, le pourcentage d'inertie sur les premiers axes factoriels sera encore plus faible qu'il ne l'est à présent ? (je précise que j'ai seulement 33% d'inertie sur le premier plan factoriel)

Si quelqu'un à une idée je suis preneur !

Cdlt

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Lun 23 Mai 2016 - 15:03

l'argument lim.cos2 de la fonction plot permet de limiter le nombre de variables représentées. Il y a aussi l'argument select.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Mer 25 Mai 2016 - 7:32

Impec Merci ! j'ai trouvé mon bonheur en attribuant une couleur à chaque flèche et en utilisant lim.cos2 :

Code:
plot.PCA(res.pca, axes=c(1, 2), choix="var", col.var=1:52, col.quanti.sup="blue", label=c("var", "quanti.sup"), new.plot=FALSE, title="Cercle des corrélations",lim.cos2.var=0.2)

Une autre question par rapport à la CAH : j'utilise la fonction HCPC ci -dessous
Code:
res.hcpc <- HCPC(res.pca,graph=T)
mais j'ai une erreur que je n'avais pas auparavant .. :
Code:
Error in lm.wfit(x, y, w, offset = offset, singular.ok = singular.ok,  :
  NA/NaN/Inf dans 'y'

Si quelqu'un connait l'origine de cette erreur ? Elle s'affiche une fois que je coupe le dendrogramme.

Cdlt,

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Mer 25 Mai 2016 - 10:16

Personnellement, je n'ai aucune idée sur l'origine de l'erreur. Pose la question directement à François Husson qui maintient le package et qui est la référence donnée pour cette fonction.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Jeu 26 Mai 2016 - 7:32

Ok merci j'ai posé la question. Je vous tiens au courant mais je crois que ça vient du fait que j'ai attribué un identifiant de ligne.

Petite autre question sinon : comme je vous l'ai précisé, je compte effectué une CAH sur composantes principales. Dans mon cas, avec 50 variables je me demandais combien d'axes retenir dans l'ACP pour lancer ma CAH dessus (argument ncp)? Afin d'éliminer le "bruit statistique". Voici l'inertie pour chaque axe :

Code:
res.pca <- PCA(test,quali.sup = c(1,27,28,51:52),ncp=13)

        eigenvalue percentage of variance cumulative percentage of variance
comp 1        9.00                  19.15                             19.15
comp 2        7.21                  15.33                             34.49
comp 3        2.46                   5.23                             39.71
comp 4        2.25                   4.79                             44.51
comp 5        2.06                   4.38                             48.89
comp 6        1.88                   4.00                             52.89
comp 7        1.60                   3.39                             56.29
comp 8        1.50                   3.18                             59.47
comp 9        1.37                   2.91                             62.38
comp 10       1.30                   2.77                             65.15
comp 11       1.26                   2.68                             67.84
comp 12       1.12                   2.38                             70.22
comp 13       1.03                   2.20                             72.41
comp 14       0.94                   1.99                             74.40
comp 15       0.93                   1.97                             76.38
comp 16       0.87                   1.86                             78.23
comp 17       0.84                   1.79                             80.02
comp 18       0.78                   1.65                             81.67
comp 19       0.76                   1.62                             83.29
comp 20       0.71                   1.50                             84.79
comp 21       0.68                   1.44                             86.24
comp 22       0.67                   1.43                             87.66
comp 23       0.65                   1.38                             89.05
comp 24       0.59                   1.25                             90.30
comp 25       0.56                   1.19                             91.49
comp 26       0.54                   1.15                             92.64
comp 27       0.51                   1.08                             93.72
comp 28       0.46                   0.98                             94.70
comp 29       0.45                   0.95                             95.65
comp 30       0.35                   0.75                             96.40
comp 31       0.34                   0.72                             97.12
comp 32       0.28                   0.60                             97.72
comp 33       0.21                   0.45                             98.17
comp 34       0.20                   0.42                             98.59
comp 35       0.16                   0.34                             98.93
comp 36       0.13                   0.27                             99.20
comp 37       0.08                   0.16                             99.36
comp 38       0.08                   0.16                             99.52
comp 39       0.06                   0.13                             99.65
comp 40       0.06                   0.12                             99.77
comp 41       0.04                   0.09                             99.86
comp 42       0.03                   0.06                             99.91
comp 43       0.02                   0.04                             99.95
comp 44       0.01                   0.03                             99.98
comp 45       0.01                   0.01                             99.99
comp 46       0.00                   0.01                            100.00
comp 47       0.00                   0.00                            100.00

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Jeu 26 Mai 2016 - 9:37

Le choix du nombre de dimension à retenir dépend du rapport entre le nombre de sujets (nombre de lignes) et le nombre de variables beaucoup plus que de la valeur des valeurs propres ou le pourcentage d'inertie représenté par les dimensions retenues.

Je dirais que par expérience, empiriquement et visuellement, le critère de Cattell, connu aussi sous le nom de screeplot, éboulis ou coude est un bon critère. Il m'arrive aussi d'utiliser paran et souvent je prends une dimension de plus que ce que me donne paran. Depuis quelques temps, FactoMineR propose aussi une fonction qui permet d'estimer le nombre de composantes à conserver, estim_ncp, mais je ne l'ai jamais testé.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Jeu 26 Mai 2016 - 12:28

Super ! Merci pour ces réponses ! cependant j'ai quelque difficulté pour l'interprétation du graph de l'analyse de Horn. J'obtiens ce graph.



Je pense que celle-ci suggère donc de garder seulement le premier axe. Cela signifie que lorsque je vais effectuer ma CAH je vais préciser ncp=2 de cette manière ? (si on prend un axe de plus) :

Code:
res.pca <- PCA(res.impute$completeObs,ncp=1)
res.hcpc <- HCPC(res.pca,graph=T)

J'établis ma CAH à partir du premier plan factoriel (34.5% d'inertie) ?! Cela représente une grande perte d'infos !

Cdlt

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Jeu 26 Mai 2016 - 14:10

Je pense que celle-ci suggère donc de garder seulement le premier axe. a écrit:
Non. Si le critère du coude donne entre 3 et 4 axes, l'analyse de Horn suggère de conserver 11 axes, ceux étiquetés "Adjuster Ev (retained)".

En fait, il semble à regarder le graphe qu'il y a trois patterns, l'un décrit majoritairement par les 3 / 4 premiers axes, un second décrit par les quatre axes suivants et un dernier assez proche du bruit décrit par les axes suivants.

Cela représente une grande perte d'infos ! a écrit:
Il ne faut pas confondre variance d'une donnée (dispersion des valeurs) et information. La dispersion des valeurs est due au fait que la valeur théorique peut avoir une certaine dispersion dans la population et que la mesure de cette valeur est bruitée. Si le bruit est important par rapport à la dispersion naturelle, alors le rapport entre dispersion naturelle et dispersion de la mesure est faible et pourtant filtrer les données pour s'affranchir du bruit ne peut pas être considéré comme une perte d'information. Au contraire ! L'un des rôles de l'ACP est aussi de réaliser un filtrage.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Ven 27 Mai 2016 - 12:14

Merci bcp pour ces précisions ! Clair et concis! Que demander de plus !

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Ven 27 Mai 2016 - 13:27

Petite dernière question Laughing

Convient-il de retirer de l'étude les variables trop corrélées entre elles ? Par exemple sur mon cercle des corrélation j'ai des variables qui se superposent quasiment. Dois-je garder celle qui contribue le plus à la formation des axes pour éviter la redondance ? (Voir même retirer les variables ayant un faible cos² sur les premiers axes)

Je ne pense pas car c'est justement le but de l'ACP de résumer le maximum d'info sur les premier axes. Mais je préfère avoir un avis sur la question !

Cdlt

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Coxtox le Jeu 2 Juin 2016 - 7:28

Un avis ? Shocked

Coxtox

Nombre de messages : 18
Date d'inscription : 17/05/2016

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Florent Aubry le Lun 6 Juin 2016 - 10:10

Si les variables sont très corrélées entre elles, cela signifie qu'elles portent la même information en termes de modèle linéaire. Ces colinéarités peuvent poser de gros problème dans certaines analyses, notamment toutes celles basées sur les modèles linéaires (Anova, régression...).

Tu peux négliger toutes les variables dont la somme des cos^2 sur tous les axes que tu conserves est faible car tu peux les considérer comme très bruitées. A toi de déterminer ton seuil.

La notion de superposition est vague. En effet suppose que tu conserves trois axes. La variable V1 a des coordonnées (0.65, 0.65) dans les plans 1 et 2 tandis que V2 a des coordonnes (0.4, 0.4), ces deux variables se 'superposent' dans la plan 1x2. Mais supposons que V1 ait une coordonnée de 0.1 sur l'axe 3 tandis que la coordonnée de V2 sur cet axe est 0.8. Alors ces deux variables ne sont pas redondantes tandis que si la coordonnée de V2 sur l'axe 3 était du même ordre de grandeur que celle de V1, tu pourrais sans doute les considérer comme redondante. Donc dans le premier cas, tu conserve tes deux variables pour des analyses ultérieurs, dans le second cas, tu en élimines une, plutôt celle de somme des cos^2 le plus faible si les analyses ultérieures sont linéaires.

In fine, l'ACP donne des indications. A toi de les interpréter et d'en tirer les bonnes conclusions. Mais si tu as vraiment beaucoup de variables, tu as peut être intérêt à utiliser des méthodes robustes pour les analyses ultérieures.

Florent Aubry

Nombre de messages : 121
Date d'inscription : 02/11/2015

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Prétraitement CAH --> ACP sur beaucoup de variables

Message par Contenu sponsorisé Aujourd'hui à 21:46


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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