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
dimensions Spécifie le nombre de variables réduites (dimensions) à générer.
display Spécifie une liste de tables de résultats à envoyer au client pour affichage.
epsilon Spécifie la tolérance de convergence pour l'algorithme itératif.
freq Spécifie la variable de fréquence.
id Spécifie les variables à utiliser comme identifiants d'enregistrement et à transférer dans la table de sortie.
inputs Spécifie les variables à utiliser dans l'analyse.
m Spécifie une valeur positive finie pour approximer les limites infinies de la fonction logit.
maxIter Spécifie le nombre maximum d'itérations pour l'algorithme.
nominals Spécifie les variables nominales à utiliser dans l'entraînement.
output Spécifie la table de données de sortie qui contient les valeurs des variables réduites.
outputTables Liste les noms des tables de résultats à sauvegarder comme tables CAS sur le serveur.
prefix Spécifie un préfixe à appliquer aux noms des variables réduites.
saveState Spécifie la table de sortie pour sauvegarder le modèle de réduction de dimensionnalité.
table Spé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' ?