Bonjour,
j'ai un fichier contenat plusieurs données quantitatives( voir pj)
mon but est de réussire à faire une classification dessus.
voici le code que j'ai réussi à faire:
Code :
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| /* importation du fichier*/
proc import datafile="C:\Users\MOI\Desktop\eval_sas.xls"
out=eval_jeune REPLACE
DMBS= EXCEL2000;
mixed = YES;
getnames =YES;
run;
/* on fait une ACP*/
/* on mets les données des circo et des variables dans deux tables diffréntes*/
proc princomp DATA=eval_jeune out=circo outstat=var;
var var1--var64;
run;
proc gplot DATA=circo;
plot prin1*prin2/ href=0 vref=0;
run;
/* la CHA est rélisée sur les coordonnées des circo sur les plans factoriels retenus,
les données nécesaires sont donc les projections des circo sur les axes séléctionnés dans l'ACP*/
/* je pense garder 5 axes*/
DATA donnesCHA;
SET circo;
keep id prin1-prin4;
run;
/* on fait la CHA avec la méthode WARD, c'est elle qui réduit au mieux le biaias des valuers de circo abbérantes*/
proc cluster DATA=donnescha method=ward outtree=arbre;
id id;
var prin1-prin4;
run;
/* pour choisir les classes*/
proc sort DATA=arbre;
BY _ncl_;
run;
DATA graph;
SET arbre;
IF(_psf_=. AND _pst2_=.) then DELETE;
run;
goptions reset=ALL;
symbol1 i=JOIN v=none c=red;
symbol2 i=JOIN v=none c=blue;
legend1 value=(tick1 'pseudo F' tick2 'pseudo t2');
proc gplot DATA=graph;
plot(_psf_ _pst2_)*_ncl_/ legend=legend1 overlay;
WHERE 1<_ncl_<16;
run;
quit;
/* on construit le dendogramme*/
proc tree DATA=arbre out=sortie nclusters=4;
id id;
run;
proc print DATA= sortie;
run;
proc sort DATA=sortie;
BY cluster;
run;
proc print DATA=sortie;
var id;
BY cluster;
run;
proc sort DATA=sortie;
BY id;
run;
/*proc sort data= var;
by id;
run;*/
proc sort DATA=circo;
BY id;
run;
DATA ensemble;
merge circo sortie ;
BY id;
keep id prin1-prin4 cluster;
run;
DATA annograph;
SET ensemble;
x=prin1;
y=prin2;
xsys='2';
ysys='2';
text=id;
SELECT(cluster);
when (1) color='red';
when(2) color='blue';
when(3) color='green';
when(4) color='black';
otherwise;
end;
run;
goptions reset=ALL;
symbol v=none i=none;
proc gplot DATA=annograph;
plot y*x / annotate=annograph vref=0 href=0;
plot prin2*prin1 / href=0 vref=0;
run;
quit; |
mes questions:
1) est ce que j'ai ien procéder? j'ai choisi le bon nombre de classes??
2) comment faire pour expliquer mes classes: les vraibles qui les constituent? le pourcentage dessus??...... pour pouvoir qulifier cette classe suivant les varibales qui la constituent
3) comment faire pour afficher mes classes et les varibles sur l même graphe??
Merci beaucoup pour vos réponses