irChart
Description
L'action `spc.irChart` est votre meilleur atout pour surveiller l'évolution et la variabilité d'un processus au fil du temps. Elle génère des cartes de contrôle de mesures individuellesOutil statistique pour suivre la stabilité d'un procédé via des mesures unitaires chronologiques. Il détecte les causes spéciales grâce aux limites de contrôle (Moyenne, Étendue Mobile). (Individual) et d'étendues mobiles (Moving Range), très prisées pour détecter des anomalies avant que la machine à café (ou la ligne de production) ne s'emballe ! Vous pouvez l'utiliser pour analyser la capacité du processus avec et appliquer de multiples tests de causes spéciales avec .
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| chartsTable | Spécifie la table de données CAS de sortie contenant le résumé des cartes de contrôle . |
| ciAlpha | Définit le niveau de confiance utilisé pour calculer les limites de confiance des indices de capacité (valeur par défaut : 0.05) . |
| ciIndices | Si défini sur true, calcule les limites de confiance des indices de capacité à partir des données résumées du sous-groupe . |
| ciType | Spécifie le type de limites de confiance pour les indices de capacité : LOWER (inférieure), TWOSIDED (bilatérale, par défaut) ou UPPER (supérieure) . |
| display | Spécifie une liste de tables de résultats à renvoyer au client pour l'affichage (pratique pour masquer le bruit) . |
| exChart | Si vrai, produit une carte de contrôle dans les résultats uniquement si des exceptions (points hors contrôle) se produisent. Parfait pour la gestion par exception . |
| groupByLimit | Supprime l'analyse si le nombre de groupes générés par 'groupBy' dépasse cette limite . |
| limitsTable | Table CAS contenant des limites de contrôle précalculées à appliquer à votre analyse actuelle . |
| nMvgRange | Nombre de sous-groupes consécutifs (entre 2 et 25) utilisés pour calculer l'étendue mobile (par défaut 2) . |
| no3SigmaCheck | Active l'évaluation des tests pour les causes spéciales même si vos limites de contrôle ne sont pas strictement à 3 sigma . |
| outLimitsTable | Spécifie la table de sortie où seront sauvegardées les limites de contrôle calculées (pour les réutiliser plus tard) . |
| outputTables | Liste des noms des tables de résultats (statistiques, graphiques) à enregistrer physiquement sur le serveur CAS . |
| primaryTests | Active un ou plusieurs tests (règles de Western Electric / Nelson) pour identifier des causes spéciales (ex: test1=true, test2=true) . |
| processName | Nom de la variable contenant l'identifiant du processus à analyser . |
| processValue | Nom de la variable numérique contenant les mesures de votre processus . |
| sigmas | Largeur des limites de contrôle exprimée en multiples de l'erreur type (défaut : 3) . |
| sMethod | Méthode d'estimation de l'écart-type du processus : MAD, MMR, ou MVGRANGE (défaut) . |
| specsTable | Table contenant les limites de spécification client, permet de calculer des indices de capacité (Cp, Cpk) en plus de la stabilité . |
| subgroupName | Variable contenant le nom du sous-groupe (utile si vos données sont empilées) . |
| subgroupValue | Variable d'axe X ou de sous-groupe (souvent une date ou un identifiant de lot) . |
| table | Paramètre obligatoire spécifiant la table d'entrée CAS (caslib, nom, options de filtrage) . |
| test2Run / test3Run | Personnalise la longueur du motif recherché pour le Test 2 (défaut 9) ou le Test 3 (défaut 6) . |
| testNStd | Si vrai, exécute les tests de causes spéciales même avec des tailles de sous-groupes inégales . |
| testOverlap | Si vrai, autorise la recherche de motifs qui se chevauchent pour les tests de causes spéciales . |
Préparation des données
Création de données de test : Usine de Baguettes Magiques
Ce script crée une table simulant la mesure de longueur de 30 baguettes magiques fabriquées consécutivement. Nous ajoutons volontairement une dérive (longueur excessive) à la 20ème baguette pour faire réagir la carte de contrôle.
| 1 | DATA work.mesures_baguettes; |
| 2 | DO lot = 1 to 30; |
| 3 | /* Production normale autour de 30 cm */ |
| 4 | longueur = 30 + normal(123) * 0.4; |
| 5 | /* Oups, un défaut de fabrication sur le lot 20 ! */ |
| 6 | IF lot = 20 THEN longueur = 33; |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | RUN; |
| 10 | PROC CASUTIL; |
| 11 | load DATA=work.mesures_baguettes casout="baguettes" outcaslib="casuser" replace; |
| 12 | QUIT; |
Exemples d'utilisation
Carte de contrôle IR standard
On exécute l'action basique pour calculer les limites à 3 sigmas. Les données pour visualiser le graphique sont sauvegardées dans une table.
| 1 | PROC CAS; |
| 2 | spc.irChart / |
| 3 | TABLE={name="baguettes", caslib="casuser"} |
| 4 | processValue="longueur" |
| 5 | subgroupValue="lot" |
| 6 | chartsTable={name="ir_charts_out", caslib="casuser", replace=true}; |
| 7 | RUN; |
| 8 | QUIT; |
Résultat Attendu :
Surveillance rigoureuse avec tests d'anomalies (Nelson Rules)
Un vrai détective ne s'arrête pas aux simples dépassements de limites. Ici, on active plusieurs tests pour détecter des motifs statistiques suspects (tendances, successions du même côté de la moyenne), et on exporte les limites pour un audit futur.
| 1 | PROC CAS; |
| 2 | spc.irChart / |
| 3 | TABLE={name="baguettes", caslib="casuser"} |
| 4 | processValue="longueur" |
| 5 | subgroupValue="lot" |
| 6 | sMethod="MVGRANGE" |
| 7 | nMvgRange=2 |
| 8 | sigmas=3 |
| 9 | primaryTests={test1=true, test2=true, test3=true} |
| 10 | test2Run=9 |
| 11 | outLimitsTable={name="baguettes_limites", caslib="casuser", replace=true} |
| 12 | chartsTable={name="baguettes_graphiques", caslib="casuser", replace=true}; |
| 13 | RUN; |
| 14 | QUIT; |