nominalVarsDimReduction

mca

##set_nominalvarsdimreduction

Description

L'action mca (Analyse des Correspondances Multiples) du jeu d'actions nominalVarsDimReduction permet de réduire la dimensionnalité de variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. nominales. C'est l'équivalent d'une Analyse en Composantes Principales (ACPTechnique de réduction de dimension transformant des variables corrélées en nouvelles composantes principales décorrélées, tout en conservant le maximum de variance (information) des données originales.), mais spécialement conçue pour les données qualitatives. Idéal pour alléger un jeu de données massif avant de l'injecter dans un algorithme de Machine LearningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle.. Un petit coup de baguette magique mathématique pour éviter la malédiction de la dimensionnalité ! Retrouvez tous les détails dans la (https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-nominalvarsdimreduction-mca.htm).

Syntaxe Officielle
proc cas;
nominalVarsDimReduction.mca /
table={name="nom_table"}
inputs={"var_cat1", "var_cat2"}
nominals={"var_cat1", "var_cat2"}
dimensions=2
prefix="rv"
id={"identifiant"}
output={casOut={name="table_sortie", replace=true}}
saveState={name="modele_astore", replace=true};
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données à analyser.
dimensions Le nombre magique ! Spécifie le nombre de variables réduites (composantes) à générer.
inputs Spécifie les variables à utiliser dans l'analyse.
nominals Indique quelles variables sont nominales (catégorielles). En général, ce sont les mêmes que celles du paramètre inputs pour cette action.
id Liste des variables identifiantes à conserver et à transférer telles quelles dans la table de sortie.
output Définit la table de sortie contenant les données projetées avec les nouvelles dimensions.
prefix Le préfixe des nouvelles colonnes créées. Par défaut 'rv' (pour reduced variable).
saveState Permet de sauvegarder le modèle de réduction de dimension (format aStore) pour l'appliquer ultérieurement sur de nouvelles données via l'action astore.score.
freq Spécifie une variable de fréquence si vos observations représentent des données agrégées.
outputTables Liste les noms des tables de résultats (ex: valeurs propres) à sauvegarder en tant que tables CAS sur le serveur.
display Gère l'affichage des tables de résultats envoyées au client.

Préparation des données

Création d'un jeu de données fictif de véhicules

Nous allons créer une table contenant des données de véhicules avec plusieurs caractéristiques nominales (type, couleur, marque) pour illustrer la réduction de dimension.

1DATA mycas.vehicules;
2 INPUT id type $ couleur $ marque $;
3 DATALINES;
41 SUV Rouge Toyota
52 Citadine Bleu Renault
63 Berline Noir Peugeot
74 SUV Noir Toyota
85 Citadine Rouge Renault
96 Berline Gris Peugeot
107 SUV Bleu Toyota
118 Citadine Noir Renault
129 Berline Rouge Peugeot
1310 SUV Gris Toyota
14;
15RUN;

Exemples d'utilisation

Analyse MCA basique

Un exemple simple pour réduire nos 3 variables nominales en 2 dimensions synthétiques.

1PROC CAS;
2 nominalVarsDimReduction.mca /
3 TABLE={name="vehicules"}
4 inputs={"type", "couleur", "marque"}
5 nominals={"type", "couleur", "marque"}
6 dimensions=2
7 OUTPUT={casOut={name="vehicules_mca", replace=true}};
8QUIT;
9PROC PRINT DATA=mycas.vehicules_mca(obs=5);
10RUN;
Résultat Attendu :
Une nouvelle table CAS `vehicules_mca` est créée en mémoire. Elle contiendra les nouvelles colonnes `rv1` et `rv2` qui représentent les coordonnées des véhicules dans l'espace réduit.
MCA avancée avec sauvegarde du modèle (Astore) et identifiants

Ici, on sort le grand jeu : on spécifie un préfixe personnalisé, on conserve l'ID de la voiture, et surtout on sauvegarde le modèle analytique pour pouvoir scorer de nouvelles données plus tard. C'est la meilleure pratique pour la mise en production !

1PROC CAS;
2 nominalVarsDimReduction.mca /
3 TABLE={name="vehicules"}
4 inputs={"type", "couleur", "marque"}
5 nominals={"type", "couleur", "marque"}
6 id={"id"}
7 dimensions=2
8 prefix="dim_"
9 outputTables={names={Eigenvalues="valeurs_propres"}}
10 OUTPUT={casOut={name="vehicules_mca_full", replace=true}}
11 saveState={name="mca_astore", replace=true};
12QUIT;
13/* Affichage des valeurs propres pour évaluer la variance expliquée */
14PROC PRINT DATA=mycas.valeurs_propres;
15RUN;
Résultat Attendu :
La table de sortie `vehicules_mca_full` contiendra la colonne `id` ainsi que les composantes `dim_1` et `dim_2`. Une table `valeurs_propres` est créée pour diagnostiquer le modèle, et le fichier binaire `mca_astore` est prêt à être réutilisé pour scorer de futures données sans ré-entraîner la matrice.