创建具有每个阶段的历史限制的阶段控制图在我的博客文章“ 在控制图生成器中使用固定/基准(历史)控制限制的4种方法 ”,我讨论了输入历史控制范围的四种不同方法。在此特定的博客文章中,我将专门讨论在涉及相位变量时为控制图设置历史限制的问题。
在这种情况下,列属性,设置控制限制和排除的行状态方法将不起作用,因为JMP仅允许使用这些方法为整个图表定义一组控制限制。对于每个阶段都需要不同限制的阶段控制图,唯一适用的方法是get limit方法。这篇博客文章详细介绍了有关相位控制图的获取限制方法。
例
在我的博客文章“ 使用控制图生成器生成控制限制 ”,我介绍了打印过程。就此博客文章而言,印刷公司希望减少破坏纸张和书脊之间的粘合力所需的可变性。他们想对三个不同的工厂分别这样做。根据设计的实验确定一个新的过程。数据是从新流程中收集的。目的是将新数据绘制在控制图上,并具有旧过程的历史限制。这样,印刷公司可以将新流程与旧流程限制进行比较。
每个工厂都有不同的机器,不同的操作员,并且位于不同的国家/地区。因此,每个工厂都有一套独特的历史限制和信息。历史控制限值是用旧数据计算出来的(过程更改之前)。该相位控制图如下所示。
Figure 1: Phase control chart with historical dataFigure 1: Phase control chart with historical dataFigure 1: Phase control chart with historical data图1:具有历史数据的相位控制图
极限表
要使用获取限制方法,我们必须有一个限制数据表。此限制表中需要三列:
- _LimitsKey列,用于定义统计信息。
- 与过程变量同名的列,其中包含_LimitsKey列中列出的统计值。
- 与阶段变量同名的列,其中包含有关统计信息适用于哪个阶段的标识信息。
如果单击“控制图构建器”旁边的红色三角形,然后在“新建表”中选择“保存限制->”,则JMP 13.1及更高版本将为您创建此表。对于JMP 13.1之前的软件版本,您可以自己从Control Chart Builder报告的Limit Summaries表中轻松创建此表。 要创建此表,请在图1所示的“力极限汇总”表中单击鼠标右键,然后选择“制成数据表”。
Figure 2: Force Limits Summary tableFigure 2: Force Limits Summary tableFigure 2: Force Limits Summary table图2:力极限汇总表
您将需要执行一些数据表操作才能以正确的格式获取该表。 选择表->堆栈。选择“ LCL”,“平均”和“ UCL”,然后单击“堆栈列”。在“输出表名称”旁边的框中,键入“力限制”。将堆积数据列名称更改为强制。
Figure 3: Stack dialogFigure 3: Stack dialogFigure 3: Stack dialog图3:堆栈对话框
单击确定。我们需要创建_LimitsKey列。JMP正在寻找_LCL,_Avg和_UCL,而不是LCL,Avg和UCL。对于散布图,JMP正在寻找_LCLR,_AvgR和_UCLR。 我们可以使用公式来做到这一点。在新创建的相位限制表中,选择Cols-> New Column。 将列命名为_LimitsKey。单击列属性,然后选择公式。输入以下公式。
Figure 4: Formula for the _LimitsKey columnFigure 4: Formula for the _LimitsKey columnFigure 4: Formula for the _LimitsKey column图4:_LimitsKey列的公式
单击确定。
Figure 5: New Column dialogFigure 5: New Column dialogFigure 5: New Column dialog图5:“新建列”对话框
单击确定。新的限制表应如下所示。
Figure 6: Force limits data tableFigure 6: Force limits data tableFigure 6: Force limits data table图6:力极限数据表
具有历史限制的相位控制图
印刷公司希望在此过程中进行一些更改,以期减少破坏书页和书脊之间的粘合力所需的可变性。我们有一个新的数据表,其中包含进行此更改后记录的70行数据。我们想在新图表上使用历史限制,以便我们可以看到新数据(流程更改后)与历史信息(流程更改之前)的比较。
Figure 7: Data from new processFigure 7: Data from new processFigure 7: Data from new process图7:来自新流程的数据
要创建控制图,请转到分析->质量和过程->控制图生成器。将站点拖到阶段角色。将Force拖到Y角色。将运行拖动到x轴。
Figure 8: Force control chart with new dataFigure 8: Force control chart with new dataFigure 8: Force control chart with new data图8:带有新数据的力控制图
要将历史限制应用于该图,请单击“控制图构建器”旁边的红色三角形,然后选择“获取限制”。选择您在图6中创建的Force Limits.jmp表。
Figure 9: Force control chart with historical limitsFigure 9: Force control chart with historical limitsFigure 9: Force control chart with historical limits图9:具有历史极限的力控制图
结论
这些点都不会超出位置图或离散图的控制范围。目的是减少可变性。查看移动范围图,我们看到大多数点都落在平均线以下。特别是对于站点1和站点2,很明显,减小了页面和书脊之间的粘合所需的力的变化性。站点3不如站点1和2明显。看来可变性可能已经降低了一些。但是,尚不清楚这是否是一个重大更改。对打印过程的改进已成功减少了可变性。
参考文献
JMP软件:统计过程控制课程注释
Phase control chart with historical limitsPhase control chart with historical limitsPhase control chart with historical limits具有历史限制的相位控制图
当涉及到相位变量时,请参阅如何为控制图设置历史极限。
回复:创建具有每个阶段的历史限制的阶段控制图不,我不知道更优雅的方式。 不幸的是,“获取限制”命令仅使用以前保存的数据表。
回复:创建具有每个阶段的历史限制的阶段控制图好。谢谢。我将在脚本编写中以这种方式进行。这意味着,我将遍历某个表T1中的所有“ by”类别,并且每次迭代将限制表L1从文件T1保存到某个临时目录。然后,我将执行控制图命令并删除文件L1。是否有一些更优雅的方式来运行所有这些操作,而无需每次迭代都保存极限表?回复:创建具有每个阶段的历史限制的阶段控制图是的,您可以这样做。 对于by变量的每个级别,您将需要一个单独的表。 每个表看起来都与博客文章中的相同。
回复:创建具有每个阶段的历史限制的阶段控制图您好Tonya,非常有帮助,谢谢您的博客。是否可以使用表中的“按类别”创建多个控制图,并从表中为每个类别的阶段使用不同的限制来获取“限制”?如果是,那么Limits表必须是什么样?回复:创建具有每个阶段的历史限制的阶段控制图我认为这是一项很棒的功能,可以让我90%地享受与某物相伴的地方。 我有一个正在监视数百个控制图的系统。 限制随着基准标准的变化而变化。 这将使我可以将基准标准设置为阶段。
现在,这就是挑战。 我的希望是使用本地数据过滤器在几百个控制图之间切换。 如果我在图形生成器中进行操作,这非常有用,但是我看不到可以同时过滤限制和数据的方法。
有人看到我们可以实现这一目标的任何简单方法吗?
回复:创建具有每个阶段的历史限制的阶段控制图 @Evan_Morris 我不确定我了解您的数据设置或您要完成的工作。 如果您有数百个控制图,则过程筛选平台可能会更适合您的需求。 我建议您看一下以下博客文章,根据分组列而不同的过程规范限制 。如果您看一下此博客文章中的第4个屏幕截图,您将看到可以输入中心线和sigma作为控制限制。 该平台不需要规格限制。
回复:创建具有每个阶段的历史限制的阶段控制图通雅
我正在监视数百个制造过程,每个过程都有其自身的含义,并会不时发生变化。 我正在使用相图来管理这种平均变化。 我很幸运使用普通图形结构中的本地数据过滤器来快速浏览100多个数据集,但是如果这样做,我将无法引入控制限制。
就是说,您对过程筛选的观点非常出色。 我认为这是我应该考虑的路线。
非常感谢
埃文
主题:创建带有每个阶段历史限制的阶段控制图你好,
我在讨论组中的最后一个问题是构建一个“仪表板过滤器动态 X 轴但控制图的固定限制”。 这次我尝试通过对我的控制图实施一个阶段来增强我的仪表板,因为我有三台机器和四个我喜欢在仪表板中看到的参数。 我的计划是在这里关注您的文章,但我遇到了一些问题。 我先说明一下我的想法。 我有一个 excel 表,其中包含四个列格式的参数,一列定义了生产在哪台机器上运行。 我将表格导入 jmp,运行我的 4 个脚本,为每个参数制作一个控制图,将机器列定义为相位。 然后我通过红色三角形将限制保存到 4 个表 (1) 中。 这样我就可以为这种情况保存限制,直到新数据到达。 一旦我的原始 excel 表有新数据,我就会从 excel 更新我的 jmp 表。 我为 4 个参数运行我的脚本,并通过红色三角形从我之前保存到这 4 个控制图中的表格中获取我的限制。 然后我为包含所有四个控制图的仪表板运行我的脚本。
所以现在我可以看到在参数或机器方面是否有任何变化。 目前对我来说缺少的是我不知道如何将 (1) 中的表重命名为“限制参数 1”之类的名称,这将使我更容易将其全部放入脚本中。 我从 (1) 中得到的表不包括它们是如何构建的脚本。
我可以使用您描述的获取限制表并对其进行转换的方式,但我没有成功,我认为必须有一个新命令,因为您的文章来自 2017 年并且使用 JMP 13,并且红色小三角菜单后面的命令必须在某处。 因此,使用该命令,我想我可以创建我的脚本。
此致,
简
回复:创建具有每个阶段历史限制的阶段控制图@jan_kreuzmann我对您寻求帮助的内容感到困惑。 听起来您仍在使用 Control Chart Builder 而不是 Process Screening。 听起来您也想知道如何重命名限制表。 您可以使用 set name 命令执行此操作。 如果我有误解,请提供更多信息。 一些示例代码和您想要的图像可能会有所帮助。
dt=Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj=dt<<CONTROL chart="" builder=""></CONTROL>主题:创建带有每个阶段历史限制的阶段控制图@tonya_mauldin您发送的脚本运行良好。 谢谢。
由于我不熟悉过程筛选,我试图在我的控制图中实施阶段(我过去在“仪表板过滤器动态 X 轴但控制图的固定限制”一文中设置的那些),然后我用它来设置仪表板。
我得到了这样的票价:
// get the open table as current one
dt = current data table();
// make control charts for all parameters with machine as phase and save the limits into data table
obj=dt<Size( 528, 464 ),
Show Two Shewhart Charts( 0 ),
Test Excluded Subgroups( 0 ),
Show Control Panel( 0 ),
Include Missing Categories( 0 ),
Show Excluded Region( 0 ),
Show Limit Summaries( 0 ),
Variables( Subgroup( :Lot Nr. ), Y( :Parameter 1 ), Phase( :Machine ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Moving Range" ), Zones( 1 ), Shade Zones( 1 ) )
),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
FrameBox,
{DispatchSeg(
TextSeg( 1 ),
{Line Color( "None" ), Fill Color( "None" )}
), DispatchSeg(
TextSeg( 2 ),
{Line Color( "None" ), Fill Color( "None" )}
), DispatchSeg(
TextSeg( 3 ),
{Line Color( "None" ), Fill Color( "None" )}
)}
)
)
);
dtLimits=obj<dtLimits<<Set Name("Limits Parameter 1");
我会为我的所有参数执行此操作。
然后我在想:
使用控制图我设置了一个仪表板,
然后更新我的 jmp 表。
dt1 = Current Data Table();
n_rows = N Rows();
dt2 = Open(
"//Dashoardtest.xlsx",
Worksheets( "Tabelle1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 0 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
dt2 << DeleteRows( Index( 1, n_rows ) );
dt1 << Concatenate( dt2, Append to first table );
Close( dt2 );
Names Default To Here( 1 );
dt = Current Data Table();
这将自动更新我的仪表板,进而计算新的限制。
在这个仪表板中,我现在遇到了与之前相同的问题,因为将根据我选择的批号计算限制。 上次您使用命令帮助将限制保存到列属性中,但这仅在没有阶段的情况下才有效。

我仍然可以使用红色小三角菜单手动将表格中的旧限制输入到我打开的仪表板的控制图中,但我还没有看到使用脚本来实现的可能性。
换句话说,如何将第一个控制图表中的限制输入到我现在更新的仪表板中?
无论我选择什么批号,我怎样才能让仪表板保持限制? 就像我在另一个仪表板中运行它一样:

在这里你可以看到我只挑选了一批,但仍然显示了所有限制。
也许你知道我能做什么。
此致
简
回复:创建具有每个阶段历史限制的阶段控制图@jan_kreuzmann您必须使用博客文章中所示的获取限制命令。 您可以在 Object Scripting Index 中找到如何编写脚本的示例。
dt = Open(<BR />"$SAMPLE_DATA/Quality Control/Coating.jmp"<BR />);<BR />obj = dt <<<BR />Control Chart Builder(<BR />Variables( Subgroup( :Sample ), Y( :Weight ) ),<BR />Chart(<BR />Position( 1 ),<BR />Points( Statistic( "Average" ) ),<BR />Limits( Sigma( "Range" ) )<BR />),<BR />Chart(<BR />Position( 2 ),<BR />Points( Statistic( "Range" ) ),<BR />Limits( Sigma( "Range" ) )<BR />),<BR />Get Limits(<BR />"$SAMPLE_DATA/Quality Control/CoatingLimits.jmp"<BR />)<BR />);
由于您将表命名为 dtLimits,因此您可以使用
Get Limits(dtLimits)
回复:创建具有每个阶段历史限制的阶段控制图@jan_kreuzmann不确定我理解正确,但也许这种方式有助于获得包括阶段的限制表:
obj = Open( "$SAMPLE_DATA/Cities.jmp" ) << Control Chart Builder(
Test Excluded Subgroups( 1 ),
Variables( Y( :OZONE ), Phase( :Region ) )
);
obj << Save Limits ( in New Table);
这是(其中一件事)你需要的吗?