控制图限值占实际平均值的百分比亲爱的社区:
我在制药行业工作,我想根据药典指南 EP 2.9.5 建立控制图。
测试如下:
- 重量20片
- 不大于 2 的数值应与观察到的平均值偏离 7.5% 以上
- 与观察到的平均值的偏差不应超过 15%
有没有办法将控制图中的限制设置为平均值的 7.5% 和平均值的 15%(而不是基于 sigma)?
我知道作为替代品,我可以将数据标准化为 100% 并在图形生成器中添加固定参考线,但我更喜欢保持原始数据不标准化,以便可视化与 100%(目标)的偏差。

感谢您的支持,
克莱门特
数据探索与可视化质量与工艺工程回复:控制图限制为实际平均值的百分比您还可以在“图形生成器”中构建这种类型的“分组”线,例如使用 Col Mean 和 Col Std Dev 来计算各组的统计数据
回复:控制图限制为实际平均值的百分比要将规格限值设置为平均值的 +/-15%,请使用以下脚本作为示例。这将使您能够轻松检查并报告任何超出 15% 的点。
// Based on txnelson's post from Nov 9, 2023.
// The usual frontmatter:
Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
Names Default To Here( 1 );
dt = Current Data Table();
// Change column property: DIAMETER
theMean = Col Mean(:DIAMETER);
Eval(
Substitute(
Expr(
dt:DIAMETER << set property(
"Spec Limits",
{LSL( _LSL_ ),
//Target( _Target_ ),
USL( _USL_ ),
Show Limits( 1 )}
)
),
Expr( _LSL_ ), 0.85*theMean,
//Expr( _Target_ ), theMean,
Expr( _USL_ ), 1.15*theMean
)
);
要同时检查超过 7.5% 和超过 15% 的点,这有点棘手。一种方法是将 7.5% 设置为过程的已知“历史西格玛”。然后,您可以使用控制图生成器中内置的警告功能分别检查超过 1 西格玛和 2 西格玛的点。
使用“红色三角形”->“设置 Sigma”选项,将平均值的 7.5% 设置为“历史”Sigma。然后,您可以右键单击图表,使用“警告”->“自定义测试”,并将测试 1 更改为检查超过 1 Sigma 的点(或按如下所示编写这些步骤的脚本)。
然后,将 KSigma 设置为 2,现在“超越限制测试”还将检查超过 15% 的点。
这通常不是控制图的使用方式,但它可以完成工作。
为此,请将其附加到上面的脚本:
// Control chart builder with manually set historical sigma
Eval(
Substitute(
Expr(
Control Chart Builder(
Variables( Y( :DIAMETER ) ),
Set Sigma( _sigma_ ),
K Sigma( 2 ),
Customize Tests( Test 1( 1, "1" ) ),
Chart( Position( 1 ), Limits( Spec Limits( 1 ) ) )
);
),
Expr( _sigma_ ), 0.075*theMean,
)
);
回复:控制图限制为实际平均值的百分比需要明确的是,您尝试做的并非控制图。控制图限值与独立于实际过程变异而得出的规格无关。将规格视为可分配/特殊原因而做出反应,从长远来看可能会增加变异性(参见戴明和休哈特)。
这并不意味着您不能根据规范绘制数据,但这不是控制图,您需要小心应对这些限制。
回复:控制图限制为实际平均值的百分比我尝试在图形生成器中完成此操作并取得了成功(但在控制图平台中没有成功)。
我创建了 5 个新列:
- 按类别平均
- T2 负 =:类别平均值*0.85
- T2 pos =:类别平均值*1.15
- T1 neg =:类别平均值*0.925
- T1 pos =:类别平均值*1.075
然后我使用了以下脚本
Graph Builder(
Spacing Borders( 1 ),
Variables(
Y( :Weight in % of target ),
Y( :T2 neg, Position( 1 ) ),
Y( :T2 pos, Position( 1 ) ),
//Y( :T1 neg, Position( 1 ) ),
//Y( :T1 pos, Position( 1 ) ),
Group X( :"Concatenate[Batch,Tray]"n )
),
Elements(
Points( Y( 1 ) ),
Line( Y( 2 ) ),
Line( Y( 3 ) ),
//Line(Y( 4 )),
//Line(Y( 5 ))
)
);
*注:JSL 被 txnelson 移至 JSL Box
仅激活两条线路,它就能很好地工作:

但是当我激活这四行(删除脚本中的//)时,我得到了奇怪的图表:

有什么想法吗?
回复:控制图限制为实际平均值的百分比也许 Y 轴被分组在一起,因为当 Y 轴上有多个列时,JMP 可能会这样做

Graph Builder(
Size(788, 927),
Variables(
Y(:NPN1, Combine("Merged")),
Y(:neg1, Position(1), Combine("Merged")),
Y(:pos1, Position(1), Combine("Merged")),
Y(:neg2, Position(1), Combine("Merged")),
Y(:pos2, Position(1), Combine("Merged")),
Group X(:wafer)
),
Elements(Points(Y(1), Legend(40)), Line(Y(2), Y(3), Y(4), Y(5), Legend(41))),
SendToReport(
Dispatch({"Points"}, "", OutlineBox, {Close(0)}),
Dispatch({"Line"}, "", OutlineBox, {Close(0)})
)
);回复:控制图限制为实际平均值的百分比非常好,谢谢大家的回答。
效果很好。
祝你今天过得愉快。
克莱门特