IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS STAT Discussion :

Proc CORRESP : Valeurs propres


Sujet :

SAS STAT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut Proc CORRESP : Valeurs propres
    Bonjour,

    Je dois effectuer une ACM puis CAH sur des variables qualitatives (19 variables, 59 modalités). J'ai effectué les traitements de classes, V de Cramer.
    Après avoir utilisé la proc Transreg pour obtenir un tableau disjonctif complet, j'ai utilisé la proc corresp pour effectuer mon ACM.
    Afin de pouvoir continuer mon étude (proc fastclus, proc cluster, proc tree), j'aimerai déterminer le nombre d'axe à choisir.
    Tout d'abord comment détermine t-on le choix de la dimension de la proc Corresp (option dimens=k).

    Ensuite, je veux récupérer les valeurs propres afin d'en tracer un éboulis des valeurs propres. Comment peut-on récupérer les valeurs propres avec la proc Corresp ?
    En utilisant l'option "outc", j'ai une ligne de _Type_ "Inertia" dans ma table "results" avec les variables Contrib1--Contrib5 mais je ne sais pas ce que cela représente.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    proc corresp data=table_dj dimens=5 outc=results noprint;
    var &_trgind;
    id ID;
    run;
    Si une âme charitable pouvait m'aider.

    Merci

    Dacodac

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Par défaut
    Bonjour,
    Pour récupérer les valeurs propres avec la proc Corresp, j’a enlever l’option dimens=5 afin de garder les 19 contributions relatives aux axes factoriels. Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    proc corresp data=table_dj outc=results noprint;
    var &_trgind ;
    id ID;
    run;
     
    data inertie (keep=contr1-contr19) ;
    set results ;
    if _type_='INERTIA' then output ;
    run ;	
     
    proc transpose data=inertie out=inertie_col ;
    var _all_ ;
    run ;
    Généralement, les axes factoriels qui sont à conserver, pour la classification, sont ceux qui engendrent un sous-espace dans le quel le nuage des individus à classer est stable. En pratique on garde un peu plus de la moitié, même une chute d’inertie constatée au bout de quelques axes à l’examen de l’histogramme des valeurs propres associées à ces axes.

    Ward

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    Bonjour,

    Merci de votre réponse.

    Par défaut si l'on précise par l'option dimens= de la proc CORRESP, il prend 2 axes factoriels, j'ai donc mis "dimens=19" pour faire comme vous avez dis. J'ai donc bien récupéré les contributions sur les 19 axes factoriels. Le soucis est que lorsque j'additionne toutes ces contributions je dépasse 1. Il me semblait que la somme des valeurs propres était égale à 1. Les contributions sont ils vraiment les valeurs propres ?

    J'ai lu sur l'aide de la proc CORRESP que l'option "outstat=" permettait de récupérer dans un table les valeurs propres, or je n'arrive pas à faire fonctionner cette option. Quelqu'un connait-il cette option là ?

    Ensuite concernant la corrélation de mes variables qualitatives, j'ai donc utilisé le V de Cramer. Le problème c'est que j'ai énormément de combinaisons entre mes variables, donc j'ai fait une macro pour sortir tout les résultats : cela me sort donc beaucoup de proc FREQ à la suite. Quelqu'un sait-il s'il y a un moyen de sortir un tableau Var*Var avec les V de Cramer à l'intérieur. Et enfin, à partir de quel seuil considère-t-on que deux variables sont trop corrélés et qu'il faut donc en éliminer une (à partir d'un V de Cramer à 0,7 ? 0,8 ?)

    Merci d'avance.

    Dacodac

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Par défaut
    Bonjour,
    - Dans ton cas, c’est normal que l’inertie totale dépasse le 1. Elle est à peu près égale à: 2.105263158 ??
    - Concernant le problème de ta macro tu peux la poster et peut être on peut t’aider.
    - Rappel : option outstat= n’est pas une option propre à proc corresp me semble-t-il ?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    En effet je me suis trompé, il n'y a pas de "outstat=". Mon inertie est de 1,53 en cumulant les 19 axes. Je ne comprend pas la différence entre inertie et valeurs propres.
    Comment puis-je sortir les valeurs propres de mon ACM pour pouvoir choisir le nombre d'axe (en y appliquant la règle du coude) ? Faut-il absolument choisir un nombre d'axes pour effectuer la suite (proc cluster, proc tree)

    Concernant le V de Cramer, voici la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    *On récupère les variables qualitatives;
    PROC CONTENTS DATA = TABLE OUT = toto (WHERE=(TYPE = 2) KEEP = NAME TYPE);RUN;
     
    *On crée les macrovariables : var1 var2...;
    DATA toto;
    SET toto END = FIN;
    CALL SYMPUT(COMPRESS("var"||_N_),NAME);
    IF fin THEN CALL SYMPUT("nb_var",_N_);
    RUN;
     
    *Proc Freq pour sortir le V de Cramer;
    %macro cramer;
       %do i=1 %to &nb_var.;
    		   %do j=1 %to &nb_var.;
    		   proc freq data=TABLE;
    		   tables &&var&i.. * &&var&j.. / chisq;
    		   run;
    		   %end;
    	%end;
    %mend;
    %cramer;
    Quelqu'un sait-il s'il y a un moyen de sortir un tableau Var*Var avec les V de Cramer à l'intérieur. Car avec cette macro là, j'obtiens X proc freq à la suite et je dois récupérer la valeur du V de Cramer "à la main" pour pouvoir interpréter ces corrélations.
    Et enfin, à partir de quel seuil considère-t-on que deux variables sont trop corrélés et qu'il faut donc en éliminer une (à partir d'un V de Cramer à 0,7 ? 0,8 ?)

    Merci d'avance

    Dacodac

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    Bonjour,

    pour info, en haut de la page 2 du lien ci-dessuson précise que l'option "OUTSTAT=" existe. Or je n'arrive pas à la faire fonctionner.

    https://ufr-segmi.u-paris10.fr/servl...=1348818740627

Discussions similaires

  1. Valeurs propres proc corresp
    Par polpo56 dans le forum SAS STAT
    Réponses: 3
    Dernier message: 21/01/2013, 18h37
  2. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 23h20
  3. [Debutant]calcul de valeurs propres, givens-householder
    Par malbarre dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 18/08/2005, 16h40
  4. valeurs propres
    Par libititi dans le forum Mathématiques
    Réponses: 2
    Dernier message: 01/06/2005, 11h31
  5. valeurs propres d'une matrice et vecteurs propres
    Par la_fantomas dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 01/05/2005, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo