nominalVarsDimReduction

mca

Description

Réduit la dimensionnalité des variables nominales en utilisant une analyse des correspondances multiples (ACM). L'ACM est une technique d'analyse de données pour les données tabulaires catégorielles. Elle est utilisée pour détecter et représenter les structures sous-jacentes dans un ensemble de données, en étendant l'analyse en composantes principales (ACP) aux variables nominales.

nominalVarsDimReduction.mca / table={...} dimensions=integer [nominals={{...}, ...}] [inputs={{...}, ...}] [freq="variable-name"] [id={"variable-name-1", ...}] [output={...}] [prefix="string"] [saveState={...}] [display={...}] [outputTables={...}];
Paramètres
ParamètreDescription
tableSpécifie la table CAS d'entrée à analyser.
dimensionsSpécifie le nombre de dimensions (variables réduites) à calculer. C'est un paramètre obligatoire.
nominalsSpécifie les variables nominales (catégorielles) à utiliser dans l'analyse. Si non spécifié, toutes les variables de type caractère de la table d'entrée sont utilisées.
inputsSpécifie les variables à utiliser dans l'analyse. Utile pour sélectionner un sous-ensemble de variables de la table.
freqSpécifie la variable numérique dont la valeur représente la fréquence de l'observation.
idSpécifie les variables à conserver dans la table de sortie pour identifier les observations. Ces variables sont copiées de la table d'entrée.
outputSpécifie la table de sortie pour stocker les résultats, y compris les nouvelles dimensions calculées.
prefixSpécifie un préfixe pour les noms des nouvelles variables de dimension dans la table de sortie. Le préfixe par défaut est 'rv'.
saveStateSpécifie une table CAS pour sauvegarder l'état du modèle ACM. Cet état peut être utilisé ultérieurement pour appliquer la même transformation à de nouvelles données.
displaySpécifie quelles tables de résultats générées par l'action doivent être affichées.
outputTablesSpécifie les tables de résultats à sauvegarder en tant que tables CAS.
Préparation des Données Voir la fiche de ce code dataprep
Création d'un jeu de données sur les voitures

Ce bloc de code SAS crée une table CAS nommée 'cars_data'. Elle contient des informations sur plusieurs modèles de voitures, incluant leur origine, leur type, et leur mode de transmission. Cette table servira d'entrée pour les exemples d'analyse des correspondances multiples.

Copié !
1DATA casuser.cars_data;
2 LENGTH Origin $10 Type $10 Drivetrain $10;
3 INFILE DATALINES delimiter=',';
4 INPUT Origin $ Type $ Drivetrain $;
5 DATALINES;
6 Asia,SUV,All
7 Asia,SUV,Front
8 Asia,Sedan,Front
9 Europe,Sedan,All
10 Europe,Sports,Rear
11 Europe,Wagon,Rear
12 USA,Sedan,Front
13 USA,Truck,Rear
14 USA,Truck,All
15 ;
16 RUN;

Exemples

Cet exemple réalise une analyse des correspondances multiples simple sur les variables nominales 'Origin', 'Type' et 'Drivetrain' de la table 'cars_data'. L'objectif est de réduire ces trois variables en deux dimensions. Les nouvelles dimensions seront préfixées par 'mca_' et la table de sortie contiendra à la fois les variables originales et les nouvelles dimensions.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 nominalVarsDimReduction.mca /
3 TABLE={name='cars_data'},
4 nominals={'Origin', 'Type', 'Drivetrain'},
5 dimensions=2,
6 prefix='mca_',
7 OUTPUT={casout={name='cars_mca_output', replace=true}, copyVars={'Origin', 'Type', 'Drivetrain'}};
8 RUN;
Résultat :
Une nouvelle table CAS nommée 'cars_mca_output' est créée. Elle contient les variables originales 'Origin', 'Type', 'Drivetrain' ainsi que deux nouvelles colonnes, 'mca_1' et 'mca_2', qui représentent les coordonnées de chaque voiture dans l'espace réduit à deux dimensions.

Cet exemple plus avancé exécute une ACM pour obtenir trois dimensions et sauvegarde l'état du modèle. La sauvegarde de l'état ('saveState') est cruciale pour appliquer la même transformation de réduction de dimensionnalité sur un autre jeu de données (par exemple, un jeu de test ou de nouvelles données), garantissant ainsi la cohérence de la préparation des données.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 nominalVarsDimReduction.mca /
3 TABLE={name='cars_data'},
4 nominals={'Origin', 'Type', 'Drivetrain'},
5 dimensions=3,
6 id={'Origin'},
7 prefix='mca_dim',
8 OUTPUT={casout={name='cars_mca_output_detailed', replace=true}},
9 saveState={name='cars_mca_savestate', replace=true};
10 RUN;
Résultat :
Deux tables CAS sont créées. La première, 'cars_mca_output_detailed', contient la variable d'identification 'Origin' et les trois nouvelles dimensions 'mca_dim_1', 'mca_dim_2', 'mca_dim_3'. La seconde, 'cars_mca_savestate', est un fichier binaire contenant toutes les informations du modèle (coordonnées des niveaux, valeurs singulières, etc.) nécessaires pour le scoring de nouvelles données via l'action `score` de l'action set `astore`.

FAQ

À quoi sert l'action `mca` ?
Quels sont les paramètres obligatoires pour utiliser l'action `mca` ?
Comment spécifier le nombre de dimensions souhaité en sortie ?
Comment puis-je sauvegarder le modèle généré pour l'utiliser ultérieurement ?
Comment obtenir une table de sortie contenant les nouvelles variables réduites ?
Est-il possible de préfixer le nom des nouvelles variables générées ?