nominalVarsDimReduction

lpca

##set_nominalvarsdimreduction

Description

L'action lpca (Logistic Principal Component AnalysisMéthode de réduction de dimension pour données binaires. Elle généralise l'ACP en utilisant la log-vraisemblance pour projeter des variables qualitatives dans un espace latent continu réduit.) est votre outil par excellence pour réduire la dimensionnalité des 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. Si vous avez trop de catégories et que votre algorithme menace de faire une indigestion, cette action compresse les informations intelligemment ! Fini les maux de tête liés à une trop haute cardinalitéLa cardinalité représente le nombre de valeurs distinctes contenues dans une colonne. Une cardinalité élevée indique une grande diversité de données, influençant le choix des modèles dans CAS., l'action lpca permet d'obtenir un jeu de données svelte, prêt pour une modélisationProcessus de création de structures mathématiques ou statistiques sur SAS Viya pour prédire des comportements, classifier des données ou identifier des tendances à partir de jeux de données CAS. ultra-rapide.

Syntaxe Officielle
proc cas;
nominalVarsDimReduction.lpca /
table={name="nom_de_la_table"}
dimensions=entier
inputs={"var1", "var2"}
nominals={"var1", "var2"}
output={casOut={name="table_sortie", replace=true}}
saveState={name="table_modele", replace=true};
quit;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table d'entrée contenant les données. Obligatoire, car sans données, difficile de faire des mathématiques !
dimensions Définit le nombre de variables réduites (composantes principales) que vous souhaitez extraire.
inputs La liste des variables à utiliser pour l'analyse de réduction de dimension.
nominals Spécifie explicitement quelles variables parmi vos inputs sont de nature nominale (catégorielle).
m Une valeur finie et positive pour approximer les limites infinies de la fonction logit (par défaut : 4).
maxIter Nombre maximum d'itérations pour l'algorithme. Au-delà, l'algorithme s'arrête, même s'il n'a pas fini son café (par défaut : 100).
epsilon La tolérance utilisée pour déterminer la convergence de l'algorithme itératif (par défaut : 0.0001).
prefix Le petit préfixe ajouté au nom des nouvelles variables créées (par défaut : 'rv' pour reduced variable, donnant rv1, rv2, etc.).
id Les variables d'identification à conserver et à transférer vers votre table de sortie.
freq Nom de la variable contenant la fréquence de chaque observation.
display Permet de filtrer quelles tables de résultats seront affichées à l'écran.
output Paramètres pour créer la table de sortie contenant les nouvelles variables réduites calculées pour les données d'entraînement.
outputTables Liste les noms des tables de résultats (statistiques, métadonnées) à sauvegarder physiquement en tant que tables CAS.
saveState Spécifie la table de sortie (Astore) dans laquelle sauvegarder le modèle de réduction. Indispensable pour scorer de futures données sans devoir tout ré-apprendre de zéro.

Préparation des données

Création d'un jeu de données de test

Générons quelques données factices comportant plusieurs variables catégorielles (des lettres) pour observer la magie de la réduction de dimension.

1DATA mycas.achats;
2 call streaminit(123);
3 DO id = 1 to 1000;
4 categorie = byte(int(rand('uniform') * 10) + 65);
5 methode_paiement = byte(int(rand('uniform') * 4) + 87);
6 region = byte(int(rand('uniform') * 5) + 75);
7 frequence = int(rand('uniform') * 10) + 1;
8 OUTPUT;
9 END;
10RUN;

Exemples d'utilisation

Réduction de dimensionnalité basique

Un appel simple utilisant les paramètres obligatoires et recommandés pour réduire nos variables nominales en 2 dimensions.

1PROC CAS;
2 nominalVarsDimReduction.lpca /
3 TABLE={name="achats"}
4 inputs={"categorie", "methode_paiement", "region"}
5 nominals={"categorie", "methode_paiement", "region"}
6 dimensions=2
7 OUTPUT={casOut={name="achats_reduits", replace=true}};
8QUIT;
Résultat Attendu :
Le serveur calcule la LPCA et génère une nouvelle table `achats_reduits` contenant les 2 nouvelles dimensions synthétiques (nommées par défaut rv1 et rv2).
Réduction avancée avec tuning complet et sauvegarde Astore

Dans cet exemple pour les pros, nous paramétrons finement la convergence, personnalisons le préfixe de sortie, incluons une variable de fréquence et de regroupement, et surtout, nous sauvegardons le modèle en utilisant le paramètre saveState%%https://go.documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/compg-casouttable-15param.htm%% pour pouvoir l'appliquer plus tard avec l'action astore.

1PROC CAS;
2 nominalVarsDimReduction.lpca /
3 TABLE={name="achats", groupBy={"region"}, singlePass=false}
4 inputs={"categorie", "methode_paiement"}
5 nominals={"categorie", "methode_paiement"}
6 freq="frequence"
7 dimensions=3
8 m=5.0
9 maxIter=150
10 epsilon=1e-5
11 prefix="comp_prin_"
12 id={"id"}
13 display={names={"ModelInfo", "ConvergenceStatus"}}
14 outputTables={names={ModelInfo="InfoModele"}}
15 OUTPUT={casOut={name="achats_reduits_pro", replace=true}, copyVars={"ALL"}}
16 saveState={name="modele_lpca_astore", replace=true};
17QUIT;
Résultat Attendu :
Le log affichera uniquement les tables 'ModelInfo' et 'ConvergenceStatus'. En sortie, vous obtenez une table `achats_reduits_pro` avec les identifiants d'origine, toutes les variables initiales conservées (grâce à copyVars), et 3 nouvelles colonnes (comp_prin_1, comp_prin_2, comp_prin_3) calculées par région. De plus, le modèle mathématique est sauvegardé dans `modele_lpca_astore` pour marquer l'histoire.