Ho uno script in cui generiamo grafici di controllo per molti parametri. Per alcuni parametri non c'è variazione nei dati (ad esempio tutti i dati sono al di sotto del limite di rilevamento). Per questi parametri senza variazione tutti i campioni mostrano avvisi, ad esempio Test 1 (un punto oltre la zona A).
Questi avvisi/allarmi non hanno senso nella nostra situazione. Esiste un trucco che mi permetta di evitare gli avvisi quando non ci sono variazioni nei dati?
Un esempio è mostrato nel grafico di controllo sottostante generato dallo script allegato:

// 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 ) )
)
);
Sto utilizzando JMP 15.0.
Pietro
CIAO @peter_t ,
Questo potrebbe non essere il modo più elegante per risolvere la tua soluzione, ma per ciascuno dei processi su cui lo stai eseguendo, puoi verificare se la deviazione standard è 0 e, in tal caso, impostare il valore booleano per mostrare l'esecuzione di un test e/o il rapporto di allarme a 0. Puoi anche avvolgere l'intero grafico di controllo in un booleano in modo tale che se il valore del test è 0, non esegui il grafico di controllo, poiché un grafico di controllo non ha davvero senso per un processo che è sempre costante. Ad ogni modo, dai un'occhiata al codice qui sotto e vedi come sostituisco il valore del 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
)
)
);Spero che questo ti aiuti!,
DS
PS Ho dovuto modificare il comando Imposta ogni valore nel tuo codice in modo che popolasse correttamente le righe.