logo

Analyse de données : Tableau Disjonctif Complet et BDD volumineuse

Bonjour, Voilà mon souci : je voudrais faire une Classification sur une énorme base (env 2 millions de lignes). Ce sont des données qualitatives, alors je dois passer par une ACM, donc construire un Tableau Disjonctif Complet (en tout j’ai 3 variables et 11*97*18 modalités). Seulement SAS bloque un peu beaucoup (il a mouliné toute la nuit et n’a pas avancé…)! La proc transreg que vous proposez dans cette FAQ n’est-elle pas appropriée ici? Ma base est-elle trop volumineuse pour un tel traitement? Si oui, comment faire ma classification? Merci beaucoup pour votre éclairage!

 

Deux pistes à explorer pour que votre traitement puisse se faire dans un temps acceptable (et, vu vos volumes, se faire tout court !).

1) travailler uniquement sur un échantillon : au lieu des 2 millions de lignes, vous pourriez construire une typologie sur seulement 10% d’entre eux, et ensuite chercher les règles de construction des classes (par un modèle statistique, ou plus simplement par une caractérisation univariée) pour dispatcher l’ensemble de vos lignes dans les différentes classes.
2) réduire le nombre de modalités d’une de vos valeurs : 97 valeurs me paraît un nombre un peu excessif. D’autant que cela risque de déséquilibrer fortement l’ACM (les premiers axes se concentreront sur l’information contenue dans cette variable et pas dans les 2 autres)
Vous pourriez faire un recodage pour vous ramener à une vingtaine de valeurs ; non seulement ça équilibre l’ACM, mais en plus la taille des fichiers à traiter (tableau disjonctif complet en entrée de la procédure Corresp, et le tableau de Burt qu’elle construit en interne) sera plus raisonnable. Comment faire votre recodage ? Déjà sur des critères métier, je pense. Et également en faisant une ACM sur cette variable uniquement, dans l’espace des variables seulement, de préférence sur un échantillon aléatoire de vos deux millions de lignes.
Pour cette ACM préalable, la syntaxe SAS est la suivante :

PROC CORRESP DATA = votreTableSAS MCA SHORT ;

 TABLES votreVariableA97Modalites ;

 RUN ;

Si vous avez une version 9 de SAS, vous pouvez ajouter les deux instructions suivantes avant la procédure correspondante :

ODS GRAPHICS ON ;

 ODS HTML FILE = "c:\temp\sorties ACM.htm" GPATH = "c:\temp" (URL=NONE) ;

 Et ODS HTML CLOSE ;

 

après l’instruction RUN ; à la fin du programme.

Non seulement vos sorties seront plus jolies dans une page Web (changer éventuellement c:\temp pour un autre répertoire dans les deux options qui y font référence) mais en plus ODS GRAPHICS ajoutera directement le premier plan factoriel dans l’espace des variables : il ne vous reste « qu’à » fusionner les modalités qui sont proches dans ce plan.