mtsDiagnose
Description
L'action `mtsDiagnose` exploite le fameux système de Mahalanobis-TaguchiGemini said
Méthode de diagnostic multicritère utilisant une distance statistique pour identifier des anomalies et sélectionner les variables clés afin de distinguer les groupes normaux des anormaux. (MTS) pour établir un diagnostic sur vos données. En combinant le modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting)., la matrice de covariance et les moyennes issus d'un entraînement préalable, elle mesure les distances statistiques et identifie les 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. responsables d'éventuelles anomalies. C'est le stéthoscope statistique de votre environnement CAS !
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| data | La table CAS contenant les nouvelles données à diagnostiquer. Obligatoire, car sans patient, pas de diagnostic ! |
| model | La table contenant le magasin analytique (analytic store) généré lors de l'entraînement MTS. |
| cov | La table contenant la matrice de covariance issue de la phase d'apprentissage. |
| mean | La table stockant les moyennes calculées pendant l'entraînement. |
| scoreInfo | La table d'informations de scoring provenant également de l'entraînement MTS. |
| outData | Spécifie la table de sortie où stocker les gains (contributions) pour chaque variable explicative. Très utile pour comprendre quelle variable rend une observation anormale. |
| stat | Table de sortie pour conserver les statistiques descriptives globales du diagnostic. |
| display | Permet de filtrer et de choisir précisément quelles tables de résultats afficher dans votre client (SAS Studio, etc.). |
| outputTables | Génère des tables CAS en mémoire à partir des résultats d'affichage produits par l'action. |
Préparation des données
Génération de données de test et entraînement préalable
Pour utiliser `mtsDiagnose`, nous devons d'abord entraîner un modèle (via `mtsTrain`). Voici comment créer un jeu de données sain, l'entraîner, puis simuler un jeu de données à diagnostiquer contenant une anomalie flagrante.
| 1 | DATA mycas.normal_data; |
| 2 | DO i = 1 to 100; |
| 3 | x1 = rand('Normal', 10, 1); |
| 4 | x2 = x1 * 0.5 + rand('Normal', 0, 0.1); |
| 5 | OUTPUT; |
| 6 | END; |
| 7 | RUN; |
| 8 | DATA mycas.new_data; |
| 9 | DO i = 1 to 10; |
| 10 | IF i=5 THEN DO; x1=50; x2=-20; END; /* Injection d'une anomalie très suspecte ! */ |
| 11 | ELSE DO; x1 = rand('Normal', 10, 1); x2 = x1 * 0.5 + rand('Normal', 0, 0.1); END; |
| 12 | OUTPUT; |
| 13 | END; |
| 14 | RUN; |
| 15 | PROC CAS; |
| 16 | mts.mtstrain / |
| 17 | DATA={name="normal_data"} |
| 18 | inputs={"x1", "x2"} |
| 19 | model={name="mts_model", replace=true} |
| 20 | outcov={name="mts_cov", replace=true} |
| 21 | outmean={name="mts_mean", replace=true} |
| 22 | scoreinfo={name="mts_scoreinfo", replace=true}; |
| 23 | RUN; |
Exemples d'utilisation
Diagnostic de base
Exécution d'un diagnostic MTS sur les nouvelles données en fournissant les différents composants (modèle, covariance, moyenne, infos de scoring) du modèle précédemment entraîné.
| 1 | PROC CAS; |
| 2 | mts.mtsDiagnose / |
| 3 | DATA={name="new_data"} |
| 4 | model={name="mts_model"} |
| 5 | cov={name="mts_cov"} |
| 6 | mean={name="mts_mean"} |
| 7 | scoreInfo={name="mts_scoreinfo"} |
| 8 | outData={name="diag_out", replace=true} |
| 9 | stat={name="diag_stat", replace=true}; |
| 10 | RUN; |
Résultat Attendu :
Diagnostic avec récupération ciblée des résultats (displayOut)
Exécution du diagnostic avec sauvegarde d'une table de résultats SAS directement en table CAS en mémoire (via le paramètre outputTables), tout en limitant l'affichage écran.
| 1 | PROC CAS; |
| 2 | mts.mtsDiagnose / |
| 3 | DATA={name="new_data"} |
| 4 | model={name="mts_model"} |
| 5 | cov={name="mts_cov"} |
| 6 | mean={name="mts_mean"} |
| 7 | scoreInfo={name="mts_scoreinfo"} |
| 8 | outData={name="diag_out_adv", replace=true} |
| 9 | stat={name="diag_stat_adv", replace=true} |
| 10 | display={names={"DiagStats"}} |
| 11 | outputTables={names={DiagStats="cas_diag_stats"}}; |
| 12 | RUN; |