Alarmes du graphique de contrôle en l'absence de variation des donnéesJ'ai un script dans lequel nous générons des graphiques de contrôle pour de nombreux paramètres. Pour certains paramètres, il n'y a aucune variation dans les données (par exemple, toutes les données sont inférieures à la limite de détection). Pour ces paramètres sans variation, tous les échantillons affichent des avertissements, par exemple Test 1 (un point au-delà de la zone A).
Ces avertissements/alarmes n'ont aucun sens dans notre situation. Existe-t-il une astuce permettant d'éviter les avertissements lorsqu'il n'y a aucune variation dans les données ?
Un exemple est montré dans le graphique de contrôle ci-dessous généré à partir du script ci-joint :

// Make data table with no variation and set spec limits
dt = New Table( "Control chart data",
Add Rows( 20 ),
New Column( "x", Numeric, "Continuous")
);
ForEachRow(x=0.1);
dt:x << Set Property("Spec Limits", {LSL( 0 ), USL(1 ), Show Limits( 1 )} );
// Make Individual control chart with Test 1
dt << Control Chart Builder(
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Alarm Report( 1 ),
Variables( Y( :x ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Levey Jennings" ), Spec Limits( 0 ) ),
Warnings( Test 1( 1 ) )
)
);
J'utilise JMP 15.0.
Pierre
Modélisation statistique avancéeAutomatisation et scriptsÉtudes de marché et de consommationFusion et nettoyage des donnéesIngénierie de la qualité et des procédésRe : Alarmes de la carte de contrôle lorsqu'il n'y a pas de variation dans les donnéesMerci. Cela marche.
Re : Alarmes de la carte de contrôle lorsqu'il n'y a pas de variation dans les donnéesSalut @peter_t ,
Ce n'est peut-être pas la manière la plus élégante d'aborder votre solution, mais pour chacun des processus sur lesquels vous l'exécutez, vous pouvez vérifier si l'écart type est de 0, et si c'est le cas, définissez la valeur booléenne pour montrer effectuer un test et/ou le rapport d'alarme à 0. Vous pouvez également envelopper la carte de contrôle entière dans un booléen de sorte que si la valeur de test est 0, vous n'exécutez pas la carte de contrôle - car une carte de contrôle n'a pas vraiment de sens pour un processus toujours constant. Quoi qu'il en soit, jetez un œil au code ci-dessous et voyez comment je remplace la valeur de test Boolean TestV.
Names Default To Here( 1 );
// Make data table with no variation and set spec limits
dt = New Table( "Control chart data", Add Rows( 20 ), New Column( "x", Numeric, "Continuous" ) );
dt:x << Set Each Value( 0.1 );
dt:x << Set Property( "Spec Limits", {LSL( 0 ), USL( 1 ), Show Limits( 1 )} );
//test if standard deviation is 0, if so, set test value to 0
xstdev = Col Std Dev( :x );
If( xstdev == 0,
TestV = 0,
TestV = 1
);
// Make Individual control chart with Test 1
dt << Control Chart Builder(
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Eval( Substitute( Expr( Show Alarm Report( _Test_V ) ), Expr( _TestV_ ), TestV ) ),
Variables( Y( :x ) ),
Eval(
Substitute(
Expr(
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Levey Jennings" ), Spec Limits( 0 ) ),
Warnings( Test 1( (Expr( _TestV_ )) ) )
)
),
Expr( _TestV_ ), TestV
)
)
);J'espère que cela t'aides!,
DS
PS J'ai dû modifier la commande Set Each Value dans votre code afin qu'elle remplisse correctement les lignes.