mts

mtsDiagnose

##set_mts

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 !

Syntaxe Officielle
proc cas;
mts.mtsDiagnose /
data={name="TABLE_ENTREE", caslib="CASUSER"}
model={name="TABLE_MODELE"}
cov={name="TABLE_COV"}
mean={name="TABLE_MOYENNES"}
scoreInfo={name="TABLE_SCOREINFO"}
outData={name="TABLE_SORTIE", replace=true}
stat={name="TABLE_STATS", replace=true};
run;

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.

1DATA 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;
7RUN;
8DATA 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;
14RUN;
15PROC 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};
23RUN;

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é.

1PROC 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};
10RUN;
Résultat Attendu :
Le serveur exécute le diagnostic et crée deux tables en mémoire : `diag_out` qui contient les distances de Mahalanobis et les gains pour chaque variable (pour repérer facilement l'anomalie de la 5ème observation), et `diag_stat` qui synthétise les statistiques de l'analyse.
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.

1PROC 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"}};
12RUN;
Résultat Attendu :
En plus de créer les tables de diagnostic classiques, l'action restreint la sortie visuelle à la table de résultat `DiagStats` et sauvegarde le contenu de cette sortie spécifique sous la forme d'une table CAS nommée `cas_diag_stats`.