spc

boxChart

##set_spc

Description

L'action spc.boxChart est l'outil indispensable du data scientistExpert exploitant SAS Viya pour extraire des connaissances via le Machine Learning et les statistiques, afin de résoudre des problèmes métier complexes à partir de données massives. industriel pour surveiller la stabilité d'un processus via des boîtes à moustachesReprésentation graphique de la distribution d'une variable montrant la médiane, les quartiles et l'étendue. Elle permet d'identifier visuellement la symétrie, la dispersion et les valeurs aberrantes. (box plotsGraphique résumant la distribution d'une variable : médiane (ligne), quartiles (boîte), moustaches (étendue) et valeurs aberrantes. Idéal pour comparer la dispersion et la symétrie des données.). Contrairement aux cartes de contrôle classiques, elle permet de visualiser la distribution complète de chaque sous-groupe, incluant la médianeValeur centrale divisant une série de données ordonnées en deux groupes égaux (50 % au-dessus, 50 % en dessous). Contrairement à la moyenne, elle est robuste face aux valeurs aberrantes., les quartilesValeurs divisant un échantillon en quatre parts égales. Le 1er (25%), la médiane (50%) et le 3er (75%) permettent de mesurer la dispersion et d'identifier la structure d'une distribution. et les valeurs aberrantesObservations s'écartant significativement du reste des données. Elles peuvent résulter d'erreurs de mesure ou de phénomènes rares et influencent fortement les statistiques (moyenne, variance).. C'est un peu comme passer vos données au scanner plutôt qu'à la simple loupe ! Elle est particulièrement efficace pour détecter des changements de variabilitéModifications de la dispersion ou de l'étendue des données au fil du temps ou entre groupes. Elles indiquent une instabilité de la variance, souvent détectée via des graphiques de contrôle. ou des asymétries dans les mesures de fabrication ou de performance.

Syntaxe Officielle
spc.boxChart /
allN=true | false,
chartsTable={caslib="string", compress=true|false, name="table-name", ...},
ciAlpha=double,
ciIndices=true | false,
ciType="LOWER" | "TWOSIDED" | "UPPER",
controlStat="MEAN" | "MEDIAN",
display={caseSensitive=true|false, exclude=true|false, names={"string"}, ...},
exChart=true | false,
limitN=integer,
limitsTable={name="table-name", ...},
medCentral="AVGMEAN" | "AVGMED" | "MEDMED",
no3SigmaCheck=true | false,
outLimitsTable={name="table-name", ...},
outputTables={names={"string"}, replace=true|false},
pctlDef=integer,
primaryTests={test1=true|false, test2=true|false, ...},
processName="variable-name",
processValue="variable-name",
sigmas=double,
sMethod="RMSDF" | "RMVLUE" | "RNOWEIGHT" | "SMVLUE" | "SNOWEIGHT",
specsTable={name="table-name", ...},
subgroupName="variable-name",
subgroupValue="variable-name",
table={name="table-name", ...},
test2Run=integer,
test3Run=integer,
testNStd=true | false,
testOverlap=true | false;

Paramètres Clés

Nom du paramètre Description
table Spécifie la table CAS contenant les mesures brutes à analyser.
processValue Indique le nom de la variable numérique qui contient les mesures de performance ou de qualité du processus.
subgroupValue Désigne la variable qui définit les sous-groupes (souvent une variable de temps, de lot ou de session).
controlStat Détermine si les limites de contrôle sont calculées sur la base de la moyenne ('MEAN') ou de la médiane ('MEDIAN') des sous-groupes.
primaryTests Une liste de tests de causes spéciales (règles de Nelson/Western Electric) pour identifier des comportements non aléatoires (ex: test1 pour les points hors limites).
sMethod La méthode d'estimation de l'écart-type du processus (Sigma). 'SNOWEIGHT' est souvent utilisé par défaut pour les sous-groupes de taille variable.
pctlDef Définit la formule mathématique utilisée pour calculer les centiles des boîtes (1 à 5). La valeur 5 est le standard SAS habituel.

Préparation des données

Génération de données de production simulées

Création d'un jeu de données simulant des mesures de diamètre de pièces mécaniques réparties en 20 lots de production.

1DATA casuser.mecanique;
2 call streaminit(123);
3 DO Lot = 1 to 20;
4 DO i = 1 to 5;
5 Diametre = 10 + rand('Normal', 0, 0.5);
6 IF Lot = 12 THEN Diametre = Diametre + 1.5; /* Simulation d'une anomalie */
7 OUTPUT;
8 END;
9 END;
10RUN;
11PROC CAS;
12 TABLE.loadTable / path="mecanique.sas7bdat", caslib="casuser", casout={name="mecanique", replace=true};
13RUN;

Exemples d'utilisation

Carte Box Chart de base

Génère une carte de contrôle simple pour surveiller les diamètres par lot, en utilisant les paramètres par défaut.

1PROC CAS;
2 spc.boxChart / TABLE={name="mecanique"}, processValue="Diametre", subgroupValue="Lot";
3RUN;
Résultat Attendu :
Un graphique montrant des boîtes à moustaches pour chaque lot avec des limites de contrôle calculées automatiquement (LCL, Moyenne, UCL).
Analyse avancée avec tests de causes spéciales et sortie des limites

Cet exemple active les tests de détection d'anomalies (règles 1 et 2) et sauvegarde les limites calculées dans une table pour une utilisation future. On définit aussi l'estimation de Sigma via la méthode de l'écart-type moyen.

1PROC CAS;
2 spc.boxChart /
3 TABLE={name="mecanique"},
4 processValue="Diametre",
5 subgroupValue="Lot",
6 controlStat="MEDIAN",
7 sMethod="SNOWEIGHT",
8 primaryTests={test1=true, test2=true},
9 test2Run=7,
10 outLimitsTable={name="limites_diametre", replace=true},
11 outputTables={names={ChartsSummary="sommaire_stats"}, replace=true};
12RUN;
Résultat Attendu :
Une analyse détaillée identifiant les lots hors contrôle (le lot 12 devrait ressortir), une table CAS 'limites_diametre' contenant les seuils, et une table 'sommaire_stats' avec les statistiques descriptives par lot.