spc

mChart

##set_spc

Description

L'action `mChart` de l'ensemble `spc` (Statistical Process ControlMéthode statistique de pilotage de la qualité consistant à surveiller un processus via des cartes de contrôle pour réduire la variabilité et garantir sa stabilité et sa conformité.) est utilisée pour analyser et générer des statistiques pour des cartes de contrôle des médianes de sous-groupes (cartes MLes cartes M (M-maps) sont des structures de métadonnées liant les données sources aux cibles dans SAS Viya, facilitant la traçabilité et l'automatisation de l'intégration de données.). Ces cartes sont essentielles pour surveiller si la tendance centrale d'un processus continu reste stable au fil du temps. C'est l'outil parfait pour repérer les dérives avant que la production ne devienne chaotique. Un peu comme un thermomètre pour vos données, mais avec plus de calculs statistiques et moins de 'Dites Aaaa' !

Syntaxe Officielle
proc cas;
spc.mChart /
table={name="nom_table"},
subgroupName="nom_sous_groupe",
processValue="valeur_processus",
limitN=5,
sigmas=3,
outLimitsTable={name="limites_out", replace=true};
quit;

Paramètres Clés

Nom du paramètre Description
table Paramètre requis spécifiant la table CAS d'entrée contenant les données du processus à analyser.
processValue Spécifie la variable de la table d'entrée contenant les mesures du processus (la valeur par défaut est 'process').
subgroupName Spécifie la variable identifiant les noms ou catégories des sous-groupes (par défaut 'subgroupName').
subgroupValue Spécifie la variable identifiant les valeurs ou numéros des sous-groupes (par défaut 'subgroup').
limitN Définit la taille d'échantillon nominale pour le calcul des limites de contrôle.
sigmas Définit la largeur des limites de contrôle en tant que multiple de l'erreur standard de la statistique du sous-groupe (par défaut 3 pour les fameuses '3 sigma limits').
medCentral Détermine la méthode d'estimation de la moyenne du processus : AVGMEAN (moyenne des moyennes), AVGMED (moyenne des médianes, par défaut), ou MEDMED (médiane des médianes).
primaryTests Une liste de tests (test1 à test8) à activer pour identifier les causes spéciales de variation (anomalies) sur la carte de contrôle principale. Ex: test1=true signale un point hors des limites.
outLimitsTable Spécifie la table CAS de sortie dans laquelle sauvegarder les limites de contrôle calculées.
chartsTable Spécifie la table CAS de sortie contenant le résumé des données de la carte (points, sous-groupes, limites).

Préparation des données

Création de données simulées de production manufacturière

Ce code génère un jeu de données en mémoire simulant le poids (en grammes) de pièces manufacturées. Les données sont réparties en 20 lots (sous-groupes) de taille 5. Une anomalie (décalage de moyenne) est artificiellement introduite au niveau du lot 15 pour vérifier la capacité de détection de l'action.

1DATA casuser.production;
2 DO lot = 1 to 20;
3 subgroupName = 'TailleLot';
4 DO i = 1 to 5;
5 subgroup = lot;
6 process = 100 + rannor(123) * 2;
7 IF lot=15 THEN process = process + 5;
8 OUTPUT;
9 END;
10 END;
11 drop i;
12RUN;

Exemples d'utilisation

Calcul de base des limites de la carte des médianes (M Chart)

Cet exemple exécute l'action `mChart` avec ses paramètres de base pour analyser le processus et enregistrer les limites de contrôle dans une table de sortie.

1PROC CAS;
2 spc.mChart /
3 TABLE={name="production", caslib="casuser"},
4 subgroupName="subgroupName",
5 subgroupValue="subgroup",
6 processValue="process",
7 outLimitsTable={name="mchart_limits", caslib="casuser", replace=true};
8RUN;
9QUIT;
Résultat Attendu :
L'action SAS Viya analyse les 20 sous-groupes, calcule la médiane de chaque lot et détermine la limite supérieure (UCL) et inférieure (LCL) de contrôle. Les résultats sont poussés dans la table CAS 'mchart_limits'.
Carte M avec détection avancée d'anomalies (Special Causes Tests)

Ici, nous simulons un environnement industriel strict. Nous forçons une taille nominale `limitN` à 5, définissons la médiane comme référence centrale (`AVGMED`), et activons des tests statistiques (Test 1 : détection de point hors limites ; Test 2 : 9 points consécutifs du même côté de la ligne centrale) pour détecter l'anomalie introduite au lot 15.

1PROC CAS;
2 spc.mChart /
3 TABLE={name="production", caslib="casuser"},
4 subgroupValue="subgroup",
5 processValue="process",
6 limitN=5,
7 sigmas=3,
8 medCentral="AVGMED",
9 sMethod="RNOWEIGHT",
10 primaryTests={test1=true, test2=true},
11 test2Run=9,
12 outLimitsTable={name="mchart_limits_adv", caslib="casuser", replace=true},
13 chartsTable={name="mchart_summary", caslib="casuser", replace=true};
14RUN;
15QUIT;
Résultat Attendu :
L'action génère deux tables détaillées : `mchart_limits_adv` et `mchart_summary`. L'algorithme détectera statistiquement le décalage de moyenne inséré au lot 15 (violation du test 1), ce qui permet de déclencher automatiquement des alertes de qualité.