nipals
Description
Cette action extrait les composantes principales en utilisant la méthode NIPALS (Nonlinear Iterative Partial Least SquaresMéthode de régression itérative qui réduit la dimensionnalité en créant des variables latentes maximisant la covariance entre les prédicteurs et la réponse, idéale pour les données corrélées.). En gros, elle décompose vos données pour trouver les axes principaux qui expliquent le mieux leur variation. Pensez-y comme une version sophistiquée de la réduction de dimension pour les données qui aiment faire des siennes.
Paramètres Clés
Préparation des données
Création de données pour l'action nipals
La documentation fournie ne contient pas d'exemples directs de création de données pour l'action nipals. Habituellement, les données sont déjà chargées dans une table CAS ou importées depuis une source externe avant d'appeler l'action. Voici un exemple générique de création d'une table CAS à partir de données locales pour illustrer le processus, sans spécificité pour l'action nipals.
| 1 | /* Exemple de création de données (non spécifique à nipals) */ |
| 2 | DATA casuser.mydata; |
| 3 | INPUT Var1 Var2 Var3; |
| 4 | DATALINES; |
| 5 | 10 20 30 |
| 6 | 12 22 35 |
| 7 | 8 18 28 |
| 8 | 15 25 40 |
| 9 | ; |
| 10 | RUN; |
| 11 | PROC CAS; |
| 12 | upload casdata=casuser.mydata outcaslib="casuser" outcasname="mycasdata" replace; |
| 13 | RUN; |
| 14 | QUIT; |
Exemples d'utilisation
Extraction des composantes principales avec nipals (exemple simple)
Cet exemple montre comment utiliser l'action `nipals` pour extraire les deux premières composantes principales d'une table CAS nommée `mycasdata`, sans centrage ni mise à l'échelle, et en enregistrant les scores dans une nouvelle table.
| 1 | PROC CAS; |
| 2 | pca.nipals / |
| 3 | TABLE={name='mycasdata'}, |
| 4 | inputs={{name='Var1'}, {name='Var2'}, {name='Var3'}}, |
| 5 | n=2, |
| 6 | noCenter=TRUE, |
| 7 | noScale=TRUE, |
| 8 | OUTPUT={casOut={name='mycasdata_scores', replace=TRUE}, score='NIPALS_Score'}; |
| 9 | RUN; |
| 10 | QUIT; |
Résultat Attendu :
Extraction détaillée des composantes principales avec gestion de la convergence et sortie multiple
Cet exemple illustre une utilisation plus complète de l'action `nipals`, en spécifiant un critère de convergence (`epsilon`), un nombre maximal d'itérations (`maxIter`), et en demandant la sortie des résidus et des statistiques standardisées, en plus des scores des composantes principales. Il utilise la table `mycasdata` avec des variables d'entrée spécifiques.
| 1 | PROC CAS; |
| 2 | /* Créer la table si elle n'existe pas déjà (peut être adaptée) */ |
| 3 | DATA casuser.mycasdata; |
| 4 | INPUT Var1 Var2 Var3 Var4; |
| 5 | DATALINES; |
| 6 | 10 20 30 5 |
| 7 | 12 22 35 6 |
| 8 | 8 18 28 4 |
| 9 | 15 25 40 7 |
| 10 | 11 21 32 5 |
| 11 | ; |
| 12 | RUN; |
| 13 | pca.nipals / |
| 14 | TABLE={name='mycasdata'}, |
| 15 | inputs={{name='Var1'}, {name='Var2'}, {name='Var3'}}, /* Variables à analyser */ |
| 16 | n=2, /* Calculer les 2 premières composantes principales */ |
| 17 | epsilon=1E-8, /* Critère de convergence plus strict */ |
| 18 | maxIter=1000, /* Augmenter le nombre max d'itérations */ |
| 19 | noCenter=FALSE, /* Centrage des variables (par défaut) */ |
| 20 | noScale=FALSE, /* Mise à l'échelle des variables (par défaut) */ |
| 21 | prefix='Comp', |
| 22 | OUTPUT={ /* Spécifier la table de sortie pour les statistiques par observation */ |
| 23 | casOut={name='mycasdata_detailed_output', replace=TRUE, promote=TRUE}, |
| 24 | score='Score_PCA', |
| 25 | residual='Residual_PCA', |
| 26 | std='Std_Var' |
| 27 | }, |
| 28 | store={ /* Enregistrer le modèle pour un scoring futur */ |
| 29 | name='nipals_model_store', replace=TRUE |
| 30 | }; |
| 31 | RUN; |
| 32 | /* Charger le modèle et appliquer le scoring */ |
| 33 | pca.score / |
| 34 | TABLE={name='mycasdata'}, |
| 35 | modelTable={name='nipals_model_store'}, |
| 36 | OUTPUT={casOut={name='mycasdata_scored', replace=TRUE}, copyVars={'Var4'}}; /* Copie la variable Var4 */ |
| 37 | RUN; |
| 38 | /* Afficher la table de scores */ |
| 39 | cas.fetch / TABLE={name='mycasdata_scored'}; RUN; |
| 40 | QUIT; |
Résultat Attendu :
1. `mycasdata_detailed_output`: Contient les scores des composantes principales (préfixées par 'Score_PCA'), les résidus (préfixés par 'Residual_PCA') et les variables standardisées (préfixées par 'Std_Var') pour chaque observation, ainsi que d'autres statistiques.
2. `nipals_model_store`: Contient les informations du modèle ajusté, permettant de réutiliser ce modèle pour scorer de nouvelles données.
De plus, l'action `pca.score` sera utilisée pour appliquer le modèle stocké à la table d'entrée, créant `mycasdata_scored` avec les composantes principales calculées et la variable `Var4` copiée. Les résultats de `mycasdata_scored` seront ensuite affichés.