数据无变化时控制图报警我有一个脚本,我们可以在其中为许多参数生成控制图。 对于某些参数,数据没有变化(例如,所有数据都低于检测限)。 对于这些没有变化的参数,所有样本都显示警告,例如测试 1(超出 A 区一个点)。
这些警告/警报在我们的情况下没有意义。 当数据没有变化时,是否有一个技巧可以避免警告?
下面的控制图中显示了一个示例,该控制图由所附脚本生成:

// 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 ) )
)
);
我正在使用 JMP 15.0。
彼得
脚本回复:当数据没有变化时控制图报警你好@peter_t ,
这可能不是解决您的解决方案的最优雅方式,但是对于您正在运行的每个进程,您可以检查标准偏差是否为 0,如果是,则设置布尔值以显示执行测试和/或报警报告为 0。 您还可以将整个控制图包装在一个布尔值中,这样如果测试值为 0,那么您就不会执行控制图——因为控制图对于始终保持不变的过程实际上没有意义。 不管怎样,看看下面的代码,看看我是如何用测试值 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
)
)
);希望这可以帮助!,
DS
附言 我必须更改代码中的 Set Each Value 命令,以便正确填充行。
回复:当数据没有变化时控制图报警谢谢。 这行得通。