mca
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).
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.
| 1 | DATA mycas.vehicules; |
| 2 | INPUT id type $ couleur $ marque $; |
| 3 | DATALINES; |
| 4 | 1 SUV Rouge Toyota |
| 5 | 2 Citadine Bleu Renault |
| 6 | 3 Berline Noir Peugeot |
| 7 | 4 SUV Noir Toyota |
| 8 | 5 Citadine Rouge Renault |
| 9 | 6 Berline Gris Peugeot |
| 10 | 7 SUV Bleu Toyota |
| 11 | 8 Citadine Noir Renault |
| 12 | 9 Berline Rouge Peugeot |
| 13 | 10 SUV Gris Toyota |
| 14 | ; |
| 15 | RUN; |
Exemples d'utilisation
Analyse MCA basique
Un exemple simple pour réduire nos 3 variables nominales en 2 dimensions synthétiques.
| 1 | PROC 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}}; |
| 8 | QUIT; |
| 9 | PROC PRINT DATA=mycas.vehicules_mca(obs=5); |
| 10 | RUN; |
Résultat Attendu :
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 !
| 1 | PROC 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}; |
| 12 | QUIT; |
| 13 | /* Affichage des valeurs propres pour évaluer la variance expliquée */ |
| 14 | PROC PRINT DATA=mycas.valeurs_propres; |
| 15 | RUN; |