ACP: fonction "Principal"

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

Geoffrey Gimonneau
Messages : 23
Enregistré le : 04 Aoû 2011, 19:46

ACP: fonction "Principal"

Messagepar Geoffrey Gimonneau » 26 Sep 2011, 15:04

Bonjour à tous,

je souhaite utiliser la fonction "Principal" du package psych afin de réaliser une ACP et d'obtenir une rotation varimax de mes loadings. Ce qui m'étonne dans cette fonction contrairement à "Princomp" c'est qu'il faut spécifier le nombre d'axe que l'on veut extraire alors que l'on ne sait pas encore si l'on va garder les 2 premiers axes ou les 4 premiers... (en fonction des eigenvalues)??
Du coup, j'aurai voulu quelques conseils pour bien utiliser cette fonction. Faut'il dans un premier temps l'utiliser avec le nombre maximal de composant à extraire (= nombre de facteurs) puis, en fonction du nombre choisi relancer la fonction?

Merci par avance pour votre aide

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 27 Sep 2011, 08:23

Bonjour,

Je n'utilise pas ce package mais si tu n'as pas d'impératif absolu à l'utiliser, alors l'association des fonctions dudi.pca{ade4} et varimax({stats} marche très bien.
Ceci étant dit un grand maitre de l'analyse multivarié m'a dit et répété que la rotation varimax n'est pas euclidienne, donc c'est pas bien :)...mais à toi de voir ce que tu souhaites faire.

Nicolas

Geoffrey Gimonneau
Messages : 23
Enregistré le : 04 Aoû 2011, 19:46

Messagepar Geoffrey Gimonneau » 27 Sep 2011, 12:35

Merci pour ta réponse. Avant d'utiliser "Principal", j'utilisais "princomp" et "varimax" mais la sortie est vraiment bizzare avec des valeurs de "1" pour certains loadings et aucune valeur pour les autres... alors qu'avec "Principal", j'obtiens quelque chose de propre.
Je viens de tester dudi.pca mais le soucis et le meme que pour princomp. lorsque je cherche à obtenir une rotation varimax de mes loadings ca se complique. Dans ce cas propre, je récupère la matrice avec le code $c1 mais une fois balancé dans varimax, j'ai de nombreux "blanc" qui apparaisent dans la matrice de résultats et comme je dois les utiliser dans un tableau, ca ne le fais pas trop.
L'idéale serait de continuer avec la fonction principal, reste a savoir si je dois relancer la fonction en spécifiant le nombre d'axe choisi initialement. Ou alors de savoir ce que signifie les "Blanc" de la sortie de Varimax. S'agit'il de valeur nul (0)??Ex: pour la variable "bottom" ci dessous il n'y a qu'une seule valeur, celle de CS1, rien pour CS2 et 3.
> varimax(mat,F)
$loadings

Loadings:
CS1 CS2 CS3
Bottom 0.525
Browsing 0.556
Filtering -0.161 -0.676
Middle 0.464
Resting -0.135 0.735
Surface -0.109 0.696
Trashing 0.371 0.200
Wall -0.673

CS1 CS2 CS3
SS loadings 1.000 1.000 1.000
Proportion Var 0.125 0.125 0.125
Cumulative Var 0.125 0.250 0.375

$rotmat
[,1] [,2] [,3]
[1,] 0.91985481 0.2098485 0.3314072
[2,] -0.06217305 0.9121860 -0.4050323
[3,] -0.38730045 0.3519664 0.8521256

Geoffrey Gimonneau
Messages : 23
Enregistré le : 04 Aoû 2011, 19:46

Messagepar Geoffrey Gimonneau » 27 Sep 2011, 18:34

Après moulte recherche, ma meilleur solution pour expliquer les "blancs" obtenues dans la matrice en sortie de varimax serait qu'il s'agit de valeur inférieur à 0.1.

Par ailleurs, j'ai décidé d'utiliser la fonction dudi.pca qui me semble relativement approprié pour mon analyse. Par contre il y a un output de base que je ne trouve pas, il s'agit du pourcentage de variance expliqué par chaque axe. quelqu'un aurait il une idée pour les obtenir.
Merci

denis laloe
Messages : 119
Enregistré le : 28 Déc 2006, 13:05

Messagepar denis laloe » 27 Sep 2011, 19:07

Bonjour,
les inerties de chaque axe est dans dudi$eig

pour avoir les pourcentages, 100*dudi$eig/sum(dudi$eig)

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 27 Sep 2011, 21:22

Pour tout ce qui est inertie, contribution aux axes etc...voir l'aide de la fonction inertia.dudi() qui permet d'obtenir toutes ces infos en une seule ligne de commande.

Nicolas

PS : j'ai rarement utilisé la rotation varimax mais je ne vois pas ce que tu appelles des "blancs"

Geoffrey Gimonneau
Messages : 23
Enregistré le : 04 Aoû 2011, 19:46

Messagepar Geoffrey Gimonneau » 28 Sep 2011, 07:40

ce que j'appelle blanc se sont ces valeurs manquantes dans la matrice de sortie. On ne le voit pas bien dans mon tableau du à la mise en forme mais pour la derniere colonne je n'ai que 2 valeur sur 8...


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité