介绍
JMP 中的函数数据探索器 (FDE) 平台是将曲线或光谱数据建模为输出时非常实用的工具。但如果我有多个曲线作为输出怎么办?如果每个曲线对我的业务都有不同的优先级怎么办?JMP 可以同时用于建模、比较和优化多个曲线吗?上个月我被问过几次这些问题,答案当然是“可以”。请继续阅读以了解如何操作。
背景
我将使用示例数据中稍作修改的 Mill DOE.jmp 来制作此示例。该文件已附加到此博客文章。数据代表了一项设计实验,旨在优化辊磨机工艺,目标是使尺寸曲线迅速缩小。我添加了一列,用于跟踪每次实验运行期间的功耗。此列的目标是在此过程中最大限度地减少功耗。我还将目标批次作为批次 0 添加到数据中,并删除了数据表中的其他一些列。
现在,这是一个很好的数据集,可以说明如何优化竞争曲线:我预计使用更多功率将导致该过程更快地减小颗粒尺寸,并且我希望在设计空间中有一个令人满意的点,在该点处功耗可以较低,并且研磨过程可以很快。在下面的图表中,我可以看到最快的 DOE 运行(红线)在功耗方面接近中间,而最低功耗(蓝线)在研磨过程时间方面大致处于中间。绿线表示每个输出的目标曲线。

功能数据探索器
我假设读者已经知道如何使用 FDE 平台。如果您需要复习一下,请参阅@Peter_Hersh的这篇精彩概述。
一次关注多个输出很容易。加载每个输出的目标后,我会为每个输出拟合 B 样条模型,然后右键单击顶部的选项卡框并选择设置样式 > 水平扩展,这样我就可以并排看到两个分析器。一旦链接了分析器(单击分析器红色三角形并选择因子设置 > 链接分析器),我就可以看到优化一个输出时的权衡。最快的尺寸发生在高珠、高珠强度、低冷却剂、高温角落,这是有道理的。同样,最低功耗来自温度和流量较低的不同角落。

获取两条曲线的过程
不过,我目前无法做的是告诉 JMP 哪条曲线更重要,然后使用 JMP 的工具自动找到流程既快速又便宜的最佳点。至少有两种方法可以做到这一点:
方法 1:已保存的列公式
这种方法并非适用于所有情况,但它非常快速和简单。如果我的目标曲线总是高于或低于所有其他曲线,即如果我试图最大化或最小化一条曲线,那么我可以保存每条曲线的公式,并使用预测剖析器同时查看和优化这两个过程。
- 对于每条曲线,选择功能 DOE 分析中的红色三角形。选择保存列 > 保存预测公式。

- 选择图形 > 刻画器,然后选择预测公式,单击确定继续。

- 在预测剖析器红色三角形中,选择优化和可取性,打开可取性函数,然后返回该菜单并选择设置可取性。在弹出的窗口中,选择最小化,然后将大小的重要性设置为 1。接下来,再次选择最小化,但这次将功率的重要性设置为 2。这意味着功率使用的重要性是尺寸剖析的两倍。

- 按住 Alt 键并单击“分析器”时间部分中的任意曲线,然后选择“锁定因子设置”并单击“确定”。 (锁定它可以防止分析器认为它可以在优化过程中移动到曲线上的不同位置。)接下来,在“优化和可取性”菜单中,选择“最大化可取性” 。更改每条曲线的重要性级别,然后再次选择“最大化可取性”将改变最佳点的位置。

方法 2:JMP 进行微积分
第一种方法仅在我尝试最小化或最大化曲线时才有效。如果我需要匹配非最大值或最小值的特定曲线,该方法就会失败。当一条或多条曲线需要拟合非最大值或最小值的形状时,输出中间表,然后将模型拟合到该表可以优化多个功能响应。为了实现这一点,我将回到我原来的 FDE 输出:
- 按住 Alt 键单击 Size 输出上 Time 剖析器的空白处;确保已选择Lock Factor Setting ,然后单击OK 。在 Power 输出上重复此操作。如果剖析器已链接,则第二个输出将自动锁定。锁定此因子会使下一步的输出小得多。
- 单击 FDOE Profiler 附近的红色三角形以获取“大小”,然后选择“输出网格表” 。
- 在弹出的表格中,将“来自目标 0 的综合错误”列重命名为“尺寸错误”。

- 对功率重复步骤 2 和 3,将“综合误差”列重命名为“功率误差”。

- 为了简化操作,您可以删除两个网格表中的所有列(位于您之前重命名的“错误”列之后)。

- 使用表格 > 更新工具合并两个表格。您需要匹配所有前五列,但这并不意味着需要多次点击:只需在两个列组中选择时间和T(°C)之间的所有选项,然后选择匹配。

现在我需要做的就是拟合一个模型来最小化每个响应的误差。神经网络是一个不错的选择。
我可以像以前一样设置 Desirabilities。但是,在这种情况下,我希望将每个响应与目标曲线的误差最小化。这种方法的优点在于它适用于任何目标曲线。如果我将相对重要性设置为与以前相同,其中 Power 的重要性是 Speed 的两倍,那么我得到的最佳点是将除 Flow 之外的每个输入都设置为最大值,而 Flow 则希望设置为最小值。更好的是,由于我仍然打开原始 FDE 平台,并排显示剖析器,因此我可以自动看到我的输出是什么样子,因为所有三个剖析器都是链接在一起的。

结论
人们可能出于各种原因想要同时优化多条曲线。例如:
- 对于汽车来说,燃油效率和发动机功率输出曲线。
- 用于药物开发、溶解曲线和核磁共振光谱。
- 对于金融大师来说,将各种风险回报曲线相互对比。
通过上面概述的两种方法,可以解决每种情况,并且由于正在使用所有功能数据,因此可以更快、更准确地得出答案。
@Jed_Campbell感谢这篇精彩的教程!我有一个问题 - 在“方法 2”部分下,您输出到网格的部分,您提到新数据表有一列名为“目标 0 的综合误差”。这是从哪里来的?是不是缺少了某个步骤?我有 JMP Pro v.18,但找不到此列。谢谢!
@dray173创建表时会自动生成“来自目标 0 的综合误差”列,但前提是您已经告诉 JMP 目标函数是什么。抱歉,我在“功能数据资源管理器”部分中几乎忽略了这一点。我猜你错过了这一步。如果我猜得没错,要指定目标,您需要从顶部附近的命令大纲中选择“目标函数”>“加载” 。这也应该是第一步,应该在拟合任何模型之前完成。

感谢您帮助澄清这一点,如果这是您需要的解决方案,请告诉我。