mChart
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' !
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.
| 1 | DATA 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; |
| 12 | RUN; |
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.
| 1 | PROC 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}; |
| 8 | RUN; |
| 9 | QUIT; |
Résultat Attendu :
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.
| 1 | PROC 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}; |
| 14 | RUN; |
| 15 | QUIT; |