nominalVarsDimReduction

lpca

Description

Réduit la dimensionnalité des variables nominales en utilisant une analyse en composantes principales logistique (LPCA). Cette technique est utile pour visualiser les relations entre les niveaux des variables nominales dans un espace de faible dimension.

nominalVarsDimReduction.lpca { dimensions=integer, display={...}, epsilon=double, freq="variable-name", id={"variable-name-1", ...}, inputs={{...}, ...}, m=double, maxIter=integer, nominals={{...}, ...}, output={...}, outputTables={...}, prefix="string", saveState={...}, table={...} }
Paramètres
ParamètreDescription
dimensionsSpécifie le nombre de variables réduites (dimensions) à générer.
displaySpécifie une liste de tables de résultats à envoyer au client pour affichage.
epsilonSpécifie la tolérance de convergence pour l'algorithme itératif.
freqSpécifie la variable de fréquence.
idSpécifie les variables à utiliser comme identifiants d'enregistrement et à transférer dans la table de sortie.
inputsSpécifie les variables à utiliser dans l'analyse.
mSpécifie une valeur positive finie pour approximer les limites infinies de la fonction logit.
maxIterSpécifie le nombre maximum d'itérations pour l'algorithme.
nominalsSpécifie les variables nominales à utiliser dans l'entraînement.
outputSpécifie la table de données de sortie qui contient les valeurs des variables réduites.
outputTablesListe les noms des tables de résultats à sauvegarder comme tables CAS sur le serveur.
prefixSpécifie un préfixe à appliquer aux noms des variables réduites.
saveStateSpécifie la table de sortie pour sauvegarder le modèle de réduction de dimensionnalité.
tableSpécifie la table d'entrée.
Préparation des Données Voir la fiche de ce code dataprep
Création d'un jeu de données de démonstration

Ce code SAS crée la table `my_nominal_data` dans la caslib `casuser`. Cette table contient des réponses simulées à une enquête avec des variables nominales comme le genre, le niveau d'éducation et la couleur préférée, qui serviront d'entrée à l'action LPCA.

Copié !
1DATA casuser.my_nominal_data;
2 LENGTH gender $ 10 education $ 15 color $ 10;
3 DO i = 1 to 100;
4 IF rand('UNIFORM') < 0.5 THEN gender = 'Homme'; ELSE gender = 'Femme';
5 IF rand('UNIFORM') < 0.3 THEN education = 'Bac';
6 ELSE IF rand('UNIFORM') < 0.7 THEN education = 'Licence';
7 ELSE education = 'Master';
8 select (int(rand('UNIFORM')*3));
9 when (0) color = 'Rouge';
10 when (1) color = 'Vert';
11 otherwise color = 'Bleu';
12 END;
13 OUTPUT;
14 END;
15RUN;

Exemples

Cet exemple exécute une LPCA sur la table `my_nominal_data` pour réduire la dimensionnalité des variables nominales à 2 dimensions. Les résultats, tels que les valeurs singulières et les coordonnées, sont imprimés dans la sortie standard.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 nominalVarsDimReduction.lpca
3 TABLE={name='my_nominal_data', caslib='casuser'},
4 nominals={'gender', 'education', 'color'},
5 dimensions=2;
6RUN;

Cet exemple exécute une LPCA en spécifiant 3 dimensions. Il sauvegarde les nouvelles coordonnées dans une table de sortie nommée `lpca_output` et enregistre l'état du modèle dans une table nommée `lpca_model_state` pour un scoring futur. Le préfixe 'LPCA_' est ajouté aux noms des nouvelles variables de dimension.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 nominalVarsDimReduction.lpca
3 TABLE={name='my_nominal_data', caslib='casuser'},
4 nominals={'gender', 'education', 'color'},
5 dimensions=3,
6 prefix='LPCA_',
7 OUTPUT={casout={name='lpca_output', caslib='casuser', replace=true}, copyVars={'gender', 'education', 'color'}},
8 saveState={name='lpca_model_state', caslib='casuser', replace=true};
9RUN;

FAQ

Quel est l'objectif de l'action lpca ?
À quoi sert le paramètre 'dimensions' ?
Que contrôle le paramètre 'epsilon' ?
Comment puis-je sauvegarder le modèle pour un scoring futur ?
Quelle est la valeur par défaut du paramètre 'maxIter' ?