ktMonitor
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.
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`.
| 1 | PROC 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; |
| 11 | QUIT; |
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).
| 1 | PROC 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}; |
| 8 | RUN; |
| 9 | QUIT; |
Résultat Attendu :
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.
| 1 | PROC 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; |
| 16 | QUIT; |