logo

Analyse de données : Classification de variables

J’ai une base de données avec beaucoup d’individus et 4 variables ( 46 modalités). les variables sont sous la forme d’un tableau disjonctif complet. Je veux effectuer une classification sur les variables. Ici, je ne m’interesse qu’aux variables et non aux individus. Je veux savoir quelles modalités peuvent être regroupées. Comment faire une classification? Il existe peut-être une autre méthode que les classifications ?

 

Bonjour.
Pour trouver des similitudes entre modalités de variables, la technique usuelle est de faire une ACM avec une proc CORRESP, et de regarder l’espace des variables pour y repérer des proximités.
Cependant, on peut effectivement imaginer « automatiser » cette recherche avec une classification hiérarchique ; pour les variables quantitatives, SAS propose d’ailleurs la proc VARCLUS qui fait ce genre d’agrégations. Pour réussir quelque chose de semblable sur des données quali, il faut enchaîner une proc CORRESP (pour obtenir les coordonnées factorielles des modalités), une proc CLUSTER (pour la CAH) et une proc TREE (pour afficher l’arbre d’agrégation).
D’un point de vue code, ça ressemblerait à :

/* création du tableau disjonctif complet */
 PROC TRANSREG DATA=scoring.assur DESIGN NOPRINT ;
 MODEL CLASS(marque prof c_permis zontarif / ZERO=NONE) ;
 OUTPUT OUT=work.tdc ;
 RUN ;
 /* recuperation des coordonnées factorielles */
 ODS OUTPUT colCoors = work.variables ;
 PROC CORRESP DATA=work.tdc NOROW DIMENS=%EVAL(&_trgindn-4) ;
 VAR &_trgind ;
 RUN ;
 /* CAH */
 PROC CLUSTER DATA=work.variables OUTTREE = work.dendo METHOD=WARD ;
 VAR dim: ;
 ID label ;
 RUN ;
 /* affichage du dendogramme */
 PROC TREE DATA=work.dendo HORIZONTAL ;
 ID label ;
 RUN ;