ktChart

ktMonitor

##set_ktchart

Description

L'action `ktMonitor` permet de surveiller (monitorer) des processus continus à l'aide de cartes de contrôle de type KT (Karhunen-LoèveTransformation mathématique décomposant un processus stochastique en une série de fonctions orthogonales. C'est le fondement théorique de l'ACP pour réduire la dimensionnalité des données continues. / K-T charts). C'est un peu le vigile de vos données temporelles, toujours prêt à détecter la moindre dérive ! Elle prend en entrée les modèles et les vecteurs de support générés lors de la phase d'entraînement (via l'action ktTrain ) et applique ces modèles sur de nouvelles données pour identifier des anomalies temporelles ou des variations inattendues.

Syntaxe Officielle
proc cas;
ktChart.ktMonitor /
centers={caslib="string", compress=true|false, name="table-name"}
data={caslib="string", name="table-name"} /* Requis */
display={names={"string-1", ...}}
inSV={caslib="string", name="table-name"}
model={caslib="string", name="table-name"}
outData={caslib="string", name="table-name", replace=true|false}
outSV={caslib="string", name="table-name", replace=true|false}
outScoreInfo={caslib="string", name="table-name", replace=true|false}
scoreInfo={caslib="string", name="table-name"};
run;
quit;

Paramètres Clés

Nom du paramètre Description
data Paramètre requis. Spécifie la table d'entrée contenant les nouvelles observations à scorer/surveiller.
inSV Spécifie la table des vecteurs de support (Support Vectors) obtenue lors de la phase d'entraînement du modèle KT Chart.
model Spécifie la table contenant le modèle ASTORE (Analytic Store) calculé pendant la phase d'entraînement.
scoreInfo Spécifie la table des informations de scoring (score information data) générée lors de l'entraînement.
outData Spécifie la table de sortie du scoring qui contiendra l'ID de la fenêtre, le R-carré pour chaque fenêtre, et la distance SVDD par rapport au centre de la fenêtre.
centers Spécifie la table de sortie pour stocker les coordonnées du centre de chaque fenêtre après le scoring. Idéal pour voir où les données ont atterri.
outSV Spécifie la table de sortie des vecteurs de support de la surveillance, utile pour vérifier le contenu de la table ASTORE.
outScoreInfo Spécifie la table de sortie des informations de score de la surveillance.
display Permet de spécifier quelles tables de résultats renvoyer au client pour l'affichage (ex: exclure certaines tables).
outputTables Permet de sauvegarder certaines tables de résultats directement sous forme de tables CAS en mémoire.

Préparation des données

Préparation des données de test

Pour démontrer l'action `ktMonitor`, nous devons simuler un nouveau flux de données temporelles à évaluer. Nous supposerons ici que les tables `train_model`, `train_sv` et `train_scoreinfo` ont été préalablement créées par l'action `ktTrain`.

1PROC CAS;
2 SESSION casauto;
3 /* Création de données simulées pour la phase de monitoring */
4 DATA casuser.test_data;
5 DO time_id = 1 to 100;
6 x1 = rand('normal', 10, 1);
7 x2 = rand('normal', 5, 0.5);
8 OUTPUT;
9 END;
10 RUN;
11QUIT;

Exemples d'utilisation

Surveillance basique d'un processus

Cet exemple montre comment exécuter l'action ktMonitor de manière standard pour obtenir les statistiques de base de la carte de contrôle (R-carré et distances SVDD).

1PROC CAS;
2 ktChart.ktMonitor /
3 DATA={name="test_data", caslib="casuser"}
4 model={name="train_model", caslib="casuser"}
5 inSV={name="train_sv", caslib="casuser"}
6 scoreInfo={name="train_scoreinfo", caslib="casuser"}
7 outData={name="monitor_out", caslib="casuser", replace=true};
8RUN;
9QUIT;
Résultat Attendu :
Crée une table en mémoire nommée `monitor_out` dans la librairie `casuser`. Elle contiendra les identifiants temporels et les métriques d'éloignement, prêtes à être représentées sous forme de carte de contrôle.
Monitoring exhaustif avec diagnostic complet

Dans ce cas d'usage avancé, nous demandons à l'action de générer l'ensemble des tables de diagnostic : les coordonnées des centres de fenêtres, les vecteurs de support de monitoring et les métadonnées de score. Utile pour une traçabilité totale ou pour frimer lors de la prochaine réunion technique.

1PROC CAS;
2 ktChart.ktMonitor /
3 DATA={name="test_data", caslib="casuser"}
4 inSV={name="train_sv", caslib="casuser"}
5 model={name="train_model", caslib="casuser"}
6 scoreInfo={name="train_scoreinfo", caslib="casuser"}
7 outData={name="monitor_out", caslib="casuser", replace=true}
8 centers={name="monitor_centers", caslib="casuser", replace=true}
9 outSV={name="monitor_outSV", caslib="casuser", replace=true}
10 outScoreInfo={name="monitor_outScoreInfo", caslib="casuser", replace=true};
11 RUN;
12 /* Affichage des 5 premières lignes du scoring final */
13 TABLE.fetch /
14 TABLE={name="monitor_out", caslib="casuser"}
15 to=5;
16QUIT;
Résultat Attendu :
Génère 4 tables en mémoire (`monitor_out`, `monitor_centers`, `monitor_outSV` et `monitor_outScoreInfo`) qui tracent l'intégralité du calcul d'inférence. L'action fetch affichera un aperçu des 5 premières détections du modèle.