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 :

acm sur sas et calcul de la distance de malahanobis


Sujet :

SAS STAT

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 4
    Points
    4
    Par défaut acm sur sas et calcul de la distance de malahanobis
    Bonjour ,
    je suis en stage de fin de master 1 dans une Enterprise .
    j'ai un problème sur mon ACM
    je n'ai aucun message d'erreur lorsque j’exécute le code suivant " "
    je n'ai aucune sortie . svp aidez moi , par la suite , je dois extraire les composante principale de mon ACM , ce qui me permettre de calculer la distante de Malahanobis pour détecter les individus exceptionnels .


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    data exemple ;
    input ident $ csp $ sport $  situation$;
    cards ;
    quatre csp3 S  oui
    un csp1 R oui 
    deux csp2 R non
    trois csp2 S non 
    cinq csp3 T oui
    six csp4 T non 
    ;
    run;
     
    /* ACM*/
     proc transreg data=exemple design noprint ; 
     model class(csp situation sport / zero=none);
     output out= ok;
    id ident ;
     run;
    %macro PLOTCOR(DATA= ,ID= ,AXEH= ,AXEV= ,COND= )/ DES="Réprésentation des individus et variable en AFC ou en ACM"; 
    DATA _Graph_; 
    set &DATA; 
    %if %length(&COND)^=0 %then %do; 
    &COND; 
    %end; 
    run;
    data CORANNOT; 
    length color $10.; 
    length text $10.; 
    length function $10.; 
    set _Graph_; 
    function="Label"; 
    position="1"; 
    when="B"; 
    x=Dim&AXEH; 
    y=Dim&AXEV; 
    xsys='2'; 
    ysys='2'; 
    text=&ID; 
    if _TYPE_="OBS" then color="blue"; 
    else if _TYPE_="VAR" then color="red"; 
    else if _TYPE_="VARSUP" then color="green"; 
    size=0.8; 
    Output; 
    function="Symbol"; 
    position="5"; 
    when="B"; 
    x=Dim&AXEH; 
    y=Dim&AXEV; 
    xsys='2'; 
    ysys='2'; 
    text="triangle"; 
    size=3*(SqCos&AXEH+SqCos&AXEV); 
    if _TYPE_="OBS" then color="blue"; 
    else if _TYPE_="VAR" then color="red"; 
    else if _TYPE_="SUPVAR" then color="green"; 
    output; 
    run; 
    goptions reset=all gunit=pct hsize=7 vsize= 7; 
    axis1 minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEH"); 
    axis2  minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEV"); 
    symbol v=none; 
    proc gplot data=CORANNOT; 
    plot y*x=1/frame cframe=white href=0 vref=0 overlay annotate=CORANNOT grid haxis=axis1 vaxis=axis2; 
    run; 
    quit; 
    proc datasets lib=work memtype=DATA  nolist; 
    delete _Graph_ CORANNOT; 
    run;  
    %mend Plotcor;
     
    %plotcor(Data=ok,id=ident , axeh=1 , axev= 2 , cond=if_typ_in("OBS" "SUPOBS");

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Il manque juste... de faire l'ACM avec la proc CORRESP !
    Bon courage.
    Olivier

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 4
    Points
    4
    Par défaut merci olivier pour ta réponse, mais je n'ai toujours aucun resultats.
    Citation Envoyé par fabiola1820 Voir le message
    Bonjour ,
    je suis en stage de fin de master 1 dans une Enterprise .
    j'ai un problème sur mon ACM
    je n'ai aucun message d'erreur lorsque j’exécute le code suivant " "
    je n'ai aucune sortie . svp aidez moi , par la suite , je dois extraire les composante principale de mon ACM , ce qui me permettre de calculer la distante de Malahanobis pour détecter les individus exceptionnels .


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    data exemple ;
    input ident $ csp $ sport $  situation$;
    cards ;
    quatre csp3 S  oui
    un csp1 R oui 
    deux csp2 R non
    trois csp2 S non 
    cinq csp3 T oui
    six csp4 T non 
    ;
    run;
     
    /* ACM*/
     proc transreg data=exemple design noprint ; 
     model class(csp situation sport / zero=none);
     output out= ok;
    id ident ;
     run;
    %macro PLOTCOR(DATA= ,ID= ,AXEH= ,AXEV= ,COND= )/ DES="Réprésentation des individus et variable en AFC ou en ACM"; 
    DATA _Graph_; 
    set &DATA; 
    %if %length(&COND)^=0 %then %do; 
    &COND; 
    %end; 
    run;
    data CORANNOT; 
    length color $10.; 
    length text $10.; 
    length function $10.; 
    set _Graph_; 
    function="Label"; 
    position="1"; 
    when="B"; 
    x=Dim&AXEH; 
    y=Dim&AXEV; 
    xsys='2'; 
    ysys='2'; 
    text=&ID; 
    if _TYPE_="OBS" then color="blue"; 
    else if _TYPE_="VAR" then color="red"; 
    else if _TYPE_="VARSUP" then color="green"; 
    size=0.8; 
    Output; 
    function="Symbol"; 
    position="5"; 
    when="B"; 
    x=Dim&AXEH; 
    y=Dim&AXEV; 
    xsys='2'; 
    ysys='2'; 
    text="triangle"; 
    size=3*(SqCos&AXEH+SqCos&AXEV); 
    if _TYPE_="OBS" then color="blue"; 
    else if _TYPE_="VAR" then color="red"; 
    else if _TYPE_="SUPVAR" then color="green"; 
    output; 
    run; 
    goptions reset=all gunit=pct hsize=7 vsize= 7; 
    axis1 minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEH"); 
    axis2  minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEV"); 
    symbol v=none; 
    proc gplot data=CORANNOT; 
    plot y*x=1/frame cframe=white href=0 vref=0 overlay annotate=CORANNOT grid haxis=axis1 vaxis=axis2; 
    run; 
    quit; 
    proc datasets lib=work memtype=DATA  nolist; 
    delete _Graph_ CORANNOT; 
    run;  
    %mend Plotcor;
     
    %plotcor(Data=ok,id=ident , axeh=1 , axev= 2 , cond=if_typ_in("OBS" "SUPOBS");

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 4
    Points
    4
    Par défaut acm
    je n'ai aucune sortie



    data exemple2 ;
    input ident $ csp $ sport $ situation $;
    datalines ;
    quatre csp3 S oui
    un csp1 R oui
    deux csp2 R non
    trois csp2 S non
    cinq csp3 T oui
    six csp4 T non
    ;
    run;
    proc transreg data=exemple2 design noprint;
    model class(csp situation sport/zero=none);
    output out=ok125;
    id ident;
    run;
    Proc corresp data=ok125 dimens=5 out=sortie12 all ;
    VAR &_trgind;
    id ident;
    run;

    %macro PLOTCOR(DATA= ,ID= ,AXEH= ,AXEV= ,COND= )/ DES="Réprésentation des individus et variable en AFC ou en ACM";
    DATA _Graph_;
    set &DATA;
    %if %length(&COND)^=0 %then %do;
    &COND;
    %end;
    run;
    data CORANNOT;
    length color $10.;
    length text $10.;
    length function $10.;
    set _Graph_;
    function="Label";
    position="1";
    when="B";
    x=Dim&AXEH;
    y=Dim&AXEV;
    xsys='2';
    ysys='2';
    text=&ID;
    if _TYPE_="OBS" then color="blue";
    else if _TYPE_="VAR" then color="red";
    else if _TYPE_="VARSUP" then color="green";
    size=0.8;
    Output;
    function="Symbol";
    position="5";
    when="B";
    x=Dim&AXEH;
    y=Dim&AXEV;
    xsys='2';
    ysys='2';
    text="triangle";
    size=3*(SqCos&AXEH+SqCos&AXEV);
    if _TYPE_="OBS" then color="blue";
    else if _TYPE_="VAR" then color="red";
    else if _TYPE_="SUPVAR" then color="green";
    output;
    run;
    goptions reset=all gunit=pct hsize=7 vsize= 7;
    axis1 minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEH");
    axis2 minor=none offset=(4,4) major=(h=0.1 w=1) label=("Axe&AXEV");
    symbol v=none;
    proc gplot data=CORANNOT;
    plot y*x=1/frame cframe=white href=0 vref=0 overlay annotate=CORANNOT grid haxis=axis1 vaxis=axis2;
    run;
    quit;
    proc datasets lib=work memtype=DATA nolist;
    delete _Graph_ CORANNOT;
    run;
    %mend Plotcor;

    %plotcor(Data=ok125,id=ident , axeh=1 , axev= 2 , cond=if_typ_in("OBS" "SUPOBS") out =ghsf;

  5. #5
    Membre expérimenté
    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
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    l'ACM avec la proc CORRESP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Proc corresp data=exemple2 MCA outc=out_exemple2 dimens=5 ;
    Tables csp sport ....... situation ;
    quit ;
    Cdt Ward

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul du fisher empirique sur SAS
    Par Imfafa dans le forum SAS STAT
    Réponses: 4
    Dernier message: 29/03/2015, 08h31
  2. ACM sur Sas Entreprise Guide
    Par cococmoi dans le forum SAS STAT
    Réponses: 3
    Dernier message: 15/05/2012, 17h00
  3. ACM : programmer sur SAS
    Par cococmoi dans le forum SAS STAT
    Réponses: 5
    Dernier message: 09/05/2012, 17h29
  4. Calcul d'un compteur sur SAS
    Par Fan_SAS dans le forum SAS Base
    Réponses: 1
    Dernier message: 18/11/2011, 08h15
  5. tri sur des champs calculés
    Par Thib dans le forum Bases de données
    Réponses: 10
    Dernier message: 18/10/2005, 17h24

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