mwpca
Description
L'action (https://documentation.sas.com/doc/en/pgmsascdc/v_069/casactml/cas-robustpca-mwpca.htm) effectue une analyse en composantes principales (ACPTechnique de réduction de dimension transformant des variables corrélées en nouvelles composantes principales décorrélées, tout en conservant le maximum de variance (information) des données originales.) robuste basée sur une série de fenêtres mobiles (moving windows). Elle est parfaite pour suivre l'évolution des structures de données dans le temps et détecter les anomalies ou les changements de régime en continu. Une vraie détective privée des séries temporellesSuite d'observations collectées à intervalles réguliers. L'analyse vise à identifier des tendances, des cycles ou une saisonnalité pour modéliser et prédire les comportements futurs. !
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| table | Spécifie la table d'entrée contenant les données à analyser. |
| id | Spécifie le nom de la variable numérique qui identifie les observations de manière séquentielle (paramètre requis). |
| stepSize | Définit la longueur du pas (le décalage) entre deux fenêtres consécutives (paramètre requis). |
| windowSize | Détermine la taille (nombre d'observations) de chaque fenêtre glissante (paramètre requis). |
| inputs | Liste des variables numériques à inclure dans l'analyse ACP. |
| method | Méthode d'optimisation à utiliser : ALM (Augmented Lagrange Multiplier) ou APG (Accelerated Proximal Gradient). |
| output | Définit les tables de sortie, notamment les résultats par fenêtre (casOut) et le résumé d'exécution (winsummary). |
Préparation des données
Création d'une table de données temporelles pour MWPCA
On génère un jeu de données chronologique simple avec quelques variables corrélées, idéal pour que notre ACP mobile ait quelque chose à se mettre sous la dent.
| 1 | DATA casuser.mwpca_data; |
| 2 | DO time_id = 1 to 2000; |
| 3 | var1 = sin(time_id/10) + rannor(123); |
| 4 | var2 = cos(time_id/10) + rannor(123); |
| 5 | var3 = var1 + var2 + rannor(123)*0.5; |
| 6 | OUTPUT; |
| 7 | END; |
| 8 | RUN; |
Exemples d'utilisation
Exécution de base de MWPCA
Une configuration minimale pour lancer l'ACP sur fenêtres mobiles. On définit une taille de fenêtre de 200 avec un décalage (step) de 50. Rapide et efficace !
| 1 | PROC CAS; |
| 2 | robustPca.mwpca / |
| 3 | TABLE={name="mwpca_data", caslib="casuser"} |
| 4 | id="time_id" |
| 5 | stepSize=50 |
| 6 | windowSize=200 |
| 7 | inputs={"var1", "var2", "var3"} |
| 8 | OUTPUT={casOut={name="mwpca_out", caslib="casuser", replace=TRUE}}; |
| 9 | RUN; |
| 10 | QUIT; |
Résultat Attendu :
MWPCA avec paramétrage avancé et méthode APG
On sort l'artillerie lourde : centrage préalable des données, spécification de la méthode APG, réglage fin des itérations et récupération de deux tables de sortie (résultats standardisés et résumé des fenêtres). Idéal pour ceux qui aiment le contrôle total !
| 1 | PROC CAS; |
| 2 | robustPca.mwpca / |
| 3 | TABLE={name="mwpca_data", caslib="casuser"} |
| 4 | id="time_id" |
| 5 | stepSize=25 |
| 6 | windowSize=150 |
| 7 | inputs={"var1", "var2", "var3"} |
| 8 | method="APG" |
| 9 | center=TRUE |
| 10 | maxIter=500 |
| 11 | tolerance=1E-6 |
| 12 | OUTPUT={ |
| 13 | casOut={name="mwpca_out_adv", caslib="casuser", replace=TRUE}, |
| 14 | nPC=2, |
| 15 | standardPc=TRUE, |
| 16 | winsummary={name="mwpca_winsum", caslib="casuser", replace=TRUE} |
| 17 | }; |
| 18 | RUN; |
| 19 | QUIT; |