级别:初学者
丹尼尔·瓦伦特博士,JMP 高级产品经理,SAS
Jon Weisz, JMP 销售与营销高级副总裁,SAS
抽象的
JMP 用户经常会遇到交互式 JMP 会话,即同时打开多个窗口和分析报告。虽然有些人可能更喜欢使用这种“浮动窗口模式”的 JMP,但在某些情况下,他们更喜欢使用选项卡式界面。用户可能还希望将某些文件与分析项目关联,而不是使用主窗口提供的完整列表。出于这些原因,我们在 JMP 14 中创建了项目。项目为 JMP 提供了单一文档界面、选项卡式、可重新配置的工作空间、文件书签位置和窗口列表,使用户可以轻松浏览各种打开的窗口、数据表、脚本等;它还可以启动支持文件,如 .pdf 和 .ppt 文档。项目可用于快速打开和关闭与一个或多个单独的分析活动相关的许多文件,并可用于将并行项目分开,从而无需运行多个 JMP 会话。最后,JMP 14 中的项目还可以让您通过其存档功能轻松地共享和协作工作。
JMP 项目概述
JMP 中的项目是组织数据表、报告、脚本、日志和在 JMP 中使用 JMP 的工件的一种方式。您还可以将外部支持文件(例如 .txt、.ppt、.html、.xls 和图像)与与一组逻辑原生 JMP 文件关联的相应项目文件相关联。
项目文件本身 (.jmpprj) 是一个独立文件,它指向磁盘上的其他项目,而不是充当放置文件的容器。因此,这提供了基于容器的项目的灵活性和组织纪律性,同时保持文件可在操作系统上找到。
JMP 项目可通过文件菜单(文件 > 新建项目)创建。新建项目将立即打开一个未保存的项目,可在其中添加 JMP 窗口和文件,从而轻松创建临时项目。
图 1 显示了一个 JMP 项目示例。一个项目包括三个主要部分:
- 书签列表:指向您想要与项目关联的磁盘上的物理文件的链接。这就像主窗口中的精选列表。书签可以是指向单个文件的链接、指向文件夹的链接(会自动“监视”其中的内容,包括子文件夹)和组的链接,从而提供特定于项目中文件的本地组织,而不会影响磁盘上文件的文件夹结构。
- 窗口列表:打开的数据表及与数据表相关的报告和图表的层次列表。
- 工作区:选项卡式窗口列表,包括当前在内存中打开的脚本、图表、模型输出和数据表。布局可以从单个选项卡列排列(例如,像 Web 浏览器一样)或排列成选项卡式列表列。打开项目时布局保持不变,关闭项目时布局会保存。

图 1:带有注释主要部分的示例 JMP 项目。
例如,项目可用于:
- 结果展示。该项目如图 2A 所示。该项目已配置为隐藏书签和窗口列表。有一列只有一个选项卡,其中有一个运行演示的日志。日志包含指向脚本和支持文件的链接,单击后,这些链接会以选项卡的形式显示在项目中。日志提供了向项目中的其余项目添加注释和上下文的功能。
- 预测建模工作流程。该项目如图 2B 所示,本文后面的案例研究 II 中将介绍该项目。该项目包括对单个数据集执行标准预测建模任务。多个模型在构建时进行拟合并保存到公式库中。公式库位于其自己的列中,因此可以轻松引用。最后,添加模型比较并生成评分代码以将模型投入生产。
- DOE 工作流程。该项目如图 2C 所示,本文后面的案例研究 I 中将介绍此类 DOE 工作流程。该项目用于组织创建设计实验、比较多个候选设计、收集数据、分析数据和创建输出以与他人共享结果的步骤。它还可以包括有关实验的支持材料(照片、报告等)。
- 脚本项目。该项目如图 2D 所示。它用于帮助 JSL 脚本编写者组织他们的窗口,使编写脚本时更容易提高效率。该项目以专门为项目配置的模式包含脚本索引。正在处理的脚本包括嵌入式日志,以及书签列表中支持文件或函数的链接。

图 2:在 JMP 中使用项目的方式。
JMP 项目的目标用户是谁?
项目是 JMP 中的一种可选工作方式,许多用户将继续使用 JMP 的标准“多窗口模式”。但是,对于那些以特定方式使用 JMP 或在窗口管理或文件管理方面有特殊烦恼的人来说,该项目值得一试。
许多用户喜欢在最大化窗口的情况下运行 JMP 平台(例如 Graph Builder)。不幸的是,一旦 JMP 中的窗口最大化,新用户就很容易丢失数据表或难以导航到当前打开的其他窗口。通过使用选项卡式工作区,项目可以解决许多此类问题。用户可以简单地导航到另一个打开的选项卡(例如使用 Web 浏览器时),以获取另一个分析报告或数据表。
对于拥有标准周报或日报的人来说,项目可以成为支持这项工作的有效容器。例如,与查询生成器结合使用,项目可以包含一个脚本,该脚本从数据库中提取最新数据并生成一组标准报告;然后可以将其与日期一起保存以简化此例行报告任务。
长期使用 JMP 的用户可能还记得(但又怀念)Windows 版 JMP 上的主窗口。现在有了这个项目,他们可以恢复大部分功能。
对于以交互方式或通过脚本生成许多窗口并感觉迷失在会话中的用户,该项目可以帮助缓解这种痛苦。当用户同时处理多个项目时,关闭单个项目可以自动关闭与该项目相关的所有文件和窗口,同时保持其他项目不变,无需手动关闭多个窗口。
对于已经为 JMP 输出和文件制定了自己的文件组织方案的用户,项目可以提供框架或很好地适应使用 JMP 的文件夹结构方式。最后,计算机硬盘上到处都是文件的用户可以将单个文件添加到项目中,以便在杂乱的文件夹上平移有组织的结构。
参与项目
将文件放入项目中
首先创建一个新项目(文件 > 新建项目)。可以通过添加文件将文件单独添加到项目中。添加到项目的文件将添加到书签列表中。单独添加文件时,创建一个本地项目组会很有用,这可以进一步组织您的书签。通过运行新建组命令创建一个组,然后将该组重命名为描述性名称。
- 专业提示:可以使用组来设置模板项目,以便在需要新项目时更轻松地启动和运行。诸如“数据集”、“参考脚本”、“查询”、“图形脚本”、“支持文件”和“输出”之类的组可以作为创建新项目的良好起点。将项目另存为“模板项目”,每次需要新项目时,都将其另存为。
文件夹也可以添加到项目中,当您已经在磁盘上组织好文件时,这很有用。只需添加文件夹,它就会在项目中被添加为书签。文件夹会自动包含所有子文件夹并被“监视”(即,当文件移入或移出文件夹时,它也会移入或移出项目中的书签)。这意味着您需要小心,因为从项目监视文件夹中删除文件可能会破坏已保存项目中的脚本或报告。当项目关闭并再次打开时,文件夹会自动刷新,可以使用上下文单击 > 刷新手动刷新。
在书签文件列表中,有几个有用的上下文单击命令,允许您显示提供的信息,包括文件名、路径、大小、创建信息、上次写入和上次访问日期,以及复制到项目存档的复选框(稍后在存档部分介绍)。在查找器中显示命令显示文件在操作系统上的位置。复制路径允许您将磁盘上的文件路径复制到剪贴板,如果您正在编写引用文件的脚本,这将非常有用。最后,删除…选项允许您从项目中删除书签(推荐)或移至垃圾箱/回收站。
还可以通过拖放自动将文件添加为书签。从操作系统中,可以将拖动的文件拖放到书签列表中,然后自动添加为书签。文件夹也可以以相同的方式添加为书签。
如果您在项目中创建了另一个数据表,则可以直接保存并添加书签。例如,您使用“表格”>“摘要”创建了一个汇总表。将文件保存到磁盘后,可以将其从“窗口列表”拖放到“书签”中。
许多用户希望从一个项目移动到多窗口模式,从多窗口模式移动到项目(仅使用项目来封装会话),或从一个项目移动到另一个项目(例如,当单个分析项目变得复杂时)。为此,请使用窗口 > 移动到/从项目移动,如图 3 所示。
只需选择源项目(如果您想从单独的窗口移动项目,则无需选择)和目标项目(可以是无、新项目或现有的打开项目)。有快捷按钮用于移动和标记所有文件,或者您可以从源到目标选择数据表子集和相关报告。
单击数据表会自动显示当前项目中打开的所有报告窗口。如果您不想保留它们,只需在移动完成后关闭选项卡或窗口即可。还可以直接从此窗口为数据表添加书签。另请注意,必须将数据表保存在磁盘上才能使用此工具添加书签。但是,未保存的文件仍可以移动到新项目或多个窗口。
单击表中的单独一行将显示一个有用的缩略图,这有助于决定移动中需要哪些文件和相关图表和报告。
图 3.移至/从项目窗口。
工作区管理
将文件添加到项目后,就该使用项目的工作区部分将图形和报告配置为选项卡式排列,如图 1 所示。默认情况下,在项目中创建新窗口时,它们会被添加到位于工作区单列的选项卡中。
让我们看一个简单的示例项目。首先,创建一个新项目,然后立即将其保存到硬盘驱动器。接下来,创建一个名为“示例项目”的新文件夹,并将项目文件放在该文件夹中。这样,就有一个文件夹,可以将所有脚本、数据表和支持材料添加到该文件夹中。我将在项目中创建三个组:数据表、脚本和输出。然后我将向项目添加两个文件:“FHPI.jmp”和“StatesMetadata.jmp”。
我们将使用该项目编写一个自动化脚本来开发一个标准的端到端分析工作流,包括通过查询脚本进行数据处理、数据清理、可视化、建模、内容管理和用于传达结果的最终输出。
要开始开发自动化脚本,我还可以实例化帮助 > 脚本索引,以防我需要查找任何内容。当脚本索引加载到项目中时,它会被添加为选项卡。如果我可以将其停靠在数据表和输出的右侧,它会更有用。为此,只需剥离脚本索引选项卡。图形生成器放置区显示在项目中,允许您拖放以重新配置项目工作区,如图 4 所示。

图 4.当选项卡从选项卡列表中剥离时,项目工作区放置区会亮起。放置区带有注释,以便于配置项目工作区。
单击选项卡标题上的小选项卡图标,可以最大化或最小化单个选项卡。例如,当您想要专注于单个平台报告或使用 Graph Builder 等平台时,此功能非常有用,因为该平台在项目中占用的空间更大。它还可用于项目内的临时演示。
当选项卡最大化时,书签和窗口列表会保留。可以通过切换“显示书签”和“显示窗口列表”命令从“项目”菜单手动隐藏它们。默认情况下隐藏的项目范围日志也可以从此菜单显示。
如果您在任何时候重新排列布局但对结果不满意,可以使用撤消和重做布局命令来提供帮助。您还可以通过从“项目”菜单重置布局来返回默认的单选项卡列表。
可以通过单击工作区内的选项卡(将鼠标悬停在选项卡上会显示缩略图)、双击窗口列表或使用左右箭头浏览选项卡来导航选项卡。
保存并归档项目
继续我们的分析项目,我们将使用查询生成器将两个表连接在一起并创建第三个表,用于建模和可视化。可以构建查询生成器脚本,然后将其保存到项目文件夹中。我将把它添加到项目中,并将其拖放到脚本组中。
如图 5 所示。脚本、查询和应用程序或仪表板可以直接通过右键菜单运行,这样就无需在项目中单击打开它然后运行脚本。它还可以帮助保持项目整洁,因为不会为未在积极编辑的“生产”脚本打开选项卡。

图 5.直接通过右键单击运行脚本,而无需在选项卡中打开它。
运行脚本会产生第三个数据表,其中两个表已正确连接。JoinTables 选项卡名称旁边有一个 *,表示该文件尚未保存到磁盘。如果我尝试从文件 > 保存项目保存项目,我将收到以下警告消息,如图 6 所示。

图 6.项目中未保存的文档警告信息。
此时,您可以决定要做什么,因为必须先保存或关闭所有文件,然后才能保存项目。单击“全部保存”将提示您先将所有未保存的文件保存到磁盘,然后保存项目。有一个复选框,默认情况下处于关闭状态,可让您在保存项目时自动保存以前保存的文档(仅包含未保存的更改)。请谨慎使用此设置,尤其是在开始使用项目时,因为您可能会对要丢弃的数据表进行临时更改(添加列、删除列、更改单元格等)。
全部关闭选项将关闭所有未保存的文档,但不保存,但可以让您不必单独保存每个文档。如果您的脚本会生成大量输出,但您不一定想保存它们,那么这个选项会很有用。
您还可以手动保存未保存的文档,只要选项卡列表中的所有 * 都消失,您就可以单击保存项目。
该项目以略有不同的方式保存图表和其他平台输出。由于该项目利用了 JMP 中的会话脚本功能,因此在保存和关闭时会自动保留图表和平台输出,而无需将脚本保存到数据表、日志或将报告保存为 .jrp 文件。这对于想要保存分析项目状态而无需先学习任何 JSL 的新用户尤其有用。
播放项目中的脚本
已加书签的 .jsl、.jmpquery 和 .jmpapp/.jmpappsource 文件可以直接从书签列表运行(就像 JMP 中的主窗口一样)。通过右键单击其中任何一个文件,您可以看到有关如何处理这些文件的扩展选项,如图 7 所示。

图 7.项目中流行的 JMP 文件类型的上下文菜单。
此右键菜单选项允许您快速构建应用程序、运行脚本或直接执行查询,而无需打开 AppBuilder/Dashboard Builder、Query Build 或 JSL 脚本编辑器。该项目将运行,结果将自动在项目的新选项卡中打开,从而节省一次点击。此外,查询生成器还有一个“打开时运行”选项(如图 7 所示)。双击此查询将自动执行,而无需打开查询生成器。
仪表板和 Web 报告
仪表板和 Web 报告是与他人共享和交流 JMP 分析结果的常用方法。JMP 项目支持这两种功能。文件 > 新建仪表板将打开仪表板构建器界面,让您可以查看项目内所有可用的报告。您可以排列报告、添加过滤器、文本和其他项目;单击红色三角形菜单中的运行仪表板后,生成的仪表板将显示在项目的新选项卡中(见图 8)。

图 8.在项目中运行使用仪表板构建器构建的仪表板的结果。生成的仪表板将填充项目中的新选项卡。
Web 报告类似(文件 > 发布)。创建 Web 报告功能会自动将项目内所有可用选项卡视为可填充 Web 报告的适用图表。因此,Web 报告可以成为与当前没有 JMP 的人共享项目工作流程的好方法。
案例研究 1:DOE 项目
雇用项目s作为d设计e实验(DOE)JMP 可以帮助传达结果,以及协助实验本身的工作。
使用 DOJMP 中的 E 表示:
- 运行 DOE平台打造数据采集方案.
- 使用 JMP 表作为基础数据收集.
- 利用各种 JMP 图形平台查看实验运行的结果.
- 利用 JMP 模式平台根据收集的数据构建预测模型,并作为模型的一部分练习,查看各种诊断图以确保开发出了合理的模型。
- 构建图形和表格来传达 D 的结果OE 有意图的推动在某个组织的行动。
通用程序详细说明以上 S步骤 1-5经常结果s在许多JMP 中的窗口和表格。这个过程可能需要几个月的时间移动从S步骤 1 至S步骤 5,这意味着 JMP 用户必须将重要的结果保存到她的文件系统中,记住它们的保存位置并跟踪整个过程。
本案例研究将使用一个任何人都可以运行的简单实验来展示如何p项目可以帮助 DOE 通过管理窗口、跟踪结果和传达结论。
我想运行一个简单的实验来展示 JMP自定义设计器可用于进行有约束的实验a 多变的, 例如在这种情况下,总能量。
本次实验的目的是找到家用微波炉烹制爆米花的最佳设置。我控制三个变量:
- 时间(我可以设置烹饪时间,单位为 mm:ss).
- 权力(不透明的L级别 1-10,不确定这对温度意味着什么).
- 品牌(市场上有很多品牌;我选择了稍微伪装一下熟悉的品牌威尔伯和最高机密).
按照爆米花盒上的说明,我决定改变时间三到五分钟和权力L级别 5 至L级别 10。然后我开始检查设计空间的各个角落,即短时间和低功率以及长时间和高功率。这些角代表了我选择的能级的最大和最小总能量(图 9).

图 9 :上图左图和右图显示了设计空间的角落。
从我早期的结果可以清楚地看出,空间的角落是不可行的。所以我需要使用 JMP 自定义设计器来创建一个受约束的设计空间。我想使用 JMP 项目,所以我首先打开编辑一个新项目,并将其命名为“我的爆米花实验”如图所示F图 10。

图 10: DOE 工作流程开始时空项目的屏幕截图。
然后,我启动了项目中的自定义设计器并设置我的响应和因素,如图 11 所示。

图 11:启动 Custom Desig 来设置实验运行。
现在是时候选择我的模型 (RSM) 并设置总能量 (时间 + 功率水平) 的约束了。设置因子的线性约束只需设置约束即可,如图 12 所示。

图 12:设置实验约束并添加我想要能够建模的效果以确定所需的运行次数。
我选择了“制作设计”,JMP 显示了候选设计。图 13 显示了我使用的设计,其时间和功率级别格式与我在微波炉上设置的格式相匹配。

图13:实验运行表。
接下来,我爆了 16 盒爆米花。使用量杯作为取样工具,我从每次爆米花中选择了一个有代表性的杯子,并计算了玉米粒总数和爆开的玉米粒数量。数据如图 14 所示。

图14:实验结果。
我查看了几张图表,并建立了一个广义回归分析,将爆米花数量作为二项式响应。时间与品牌功率的热图,其中爆米花与总功率的比率从低(蓝色)到高(红色)着色,表明功率水平和时间的中高组合具有更好的效果。回归模型的分析器最好地传达结果,并得出 Wilbur 品牌爆米花对总能量更稳健的结论。图 15 和 16 显示了这些结果。

图 15.按品牌划分的时间与影响力热图,其中弹出量与总数的比率按从低(蓝色)到高(红色)的颜色显示。

图 16:分析器显示最终模型以及改变品牌、时间和功率因素对响应的影响。
最后,我编写了一个简单的结论文档,从 JMP 中添加了两个 PDF 图形;我通过选择项目窗口左上角的添加文件按钮将此结论文档添加到项目中,如图 17 所示。

图 17.已收藏简单结论,用于分享本次实验的结果。
我现在有一个项目文件,其中包含我的设计设置、数据、模型和支持图形以及结论文档。这是一个独立的文件,是我对这个实验的记忆的基础。如果我将项目和支持文件存储在我的团队成员现在和将来可以检索的位置,它也可以作为这个实验的集体记忆。
案例研究 2:预测模型项目
我们将使用项目来协助完成构建模型的任务,该模型可根据一组物理化学特性预测葡萄酒的质量(参见 Cortez 等人,2009 年)。该数据集可从 UCI 机器学习存储库(Lichman,2013 年)下载。我们可以使用该项目来管理通过多文件导入导入数据的过程,探索和清理导入的数据表,构建图表,使用 JMP Pro 中的各种机器学习技术构建多个候选模型,比较模型,决定要使用的模型,并最终生成评分代码以帮助将此建模投入生产。我们将遵循 JMP 中的端到端分析工作流程(参见图 18),以展示该项目如何自然地支持该过程。

图 18.JMP中的端到端分析工作流程。
历史数据可直接从 UCI 机器学习网站下载: http://archive.ics.uci.edu/ml/datasets/Wine+Quality 。有三个文件可供下载:winequality-red.csv、winequality-white.csv 和 winequality.names。创建项目的第一步是转到 JMP 中的文件 > 新建项目,并在桌面上创建一个名为“Wine Modeling Project”的文件夹。我将把所有三个文本文件放入此文件夹中。
我会将项目文件保存到葡萄酒质量项目文件夹中,然后创建几个组来帮助我组织书签:01-原始数据、02-JMP 数据表、03-脚本、04-分数代码、05-输出。
我将通过将所有三个原始数据文件从查找器拖放到原始数据文件夹来为其添加书签。
接下来,我想将文件放入 JMP 数据表中。我将使用多文件导入自动打开两个 CSV 文件并将它们连接起来,而无需编写脚本或使用表格菜单(文件 -> 打开多个...)。要打开 .csv 文件,我将确保按扩展名选择:.csv。并保持选中堆叠类似文件的单选按钮。我将选中添加文件名列,以便维护哪些样品是红酒,哪些是白葡萄酒。我将将脚本保存到脚本窗口并将脚本保存到项目中,这样如果有新数据进入并且我想重新生成 JMP 数据表,我可以直接执行此操作,而不必再次经历多文件导入对话框(图 19)。我将通过将脚本从窗口列表拖到书签中来为以后使用添加书签,然后关闭脚本。

图 19.多文件导入设置。
现在我的数据集已打开到单个 JMP 数据表中,我将保存文件,然后在项目中为其添加书签。我可以使用 Recode 添加一列(颜色),显示该样本中葡萄酒的类别。此建模练习的目标是使用相对便宜的测量物理化学特性(如残糖、酒精或亚硫酸盐)的方法来预测收集葡萄酒专业口味测试的相对昂贵的方法。我们很幸运拥有具有这两种特性的历史数据,并且我们可以使用良好的交叉验证技术在这些历史数据上建立模型,该模型可能在我们只有物理化学特性可用的新数据上很好地发挥作用。图 20 显示了选择高质量葡萄酒的分布矩阵。我们可以在其他测量值的分布中看到,一些值可能存在一些分离,以细分这些高评级的葡萄酒(即,高质量分数的葡萄酒似乎往往具有较低的残糖和较高的酒精含量)。我们将通过建立几个模型来测试这一假设。
通过执行多元分析并查看相关性的颜色图,我们还可以看到许多测量值彼此高度相关,这对于逐步回归或最小二乘等标准建模技术来说具有挑战性。

图 20.理化特性、颜色和质量分数的分布矩阵。选择高评级的葡萄酒。右侧显示了理化特性相关性的颜色图。
为了评估模型性能,并让我们的各种建模技术在预测葡萄酒质量方面有相同的效果,我们将采用交叉验证来诚实地评估模型性能。基本上,我们将把我们拥有的数据分成三组:训练(用于构建模型)、验证(用于微调模型并平衡复杂性和简约性与性能)以及最后的测试(建模中未使用的数据子集,但仅用于模拟新数据的传入,因此我们判断模型对新数据执行的能力)。
为了构建验证列,我将使用“分析”>“预测模型”中的“创建验证列”实用程序。我将选择分层随机选项,然后单击“葡萄酒颜色”列,以确保红葡萄酒和白葡萄酒的训练、验证和测试组中的样本比例相等。我将对训练、验证和测试组进行 70%/20%/10% 的抽样。
我们将构建几个候选模型,然后将它们发布到公式库。公式库非常适合项目。我将打开它(分析 > 预测模型),然后将公式库停靠在项目右侧的单独列中。
现在我们将构建提升树、引导森林、神经网络和几个广义回归模型。当我构建单个模型时,我会将结果发布到公式库。

图 21.最终的预测模型项目。
看起来 Bootstrap Forest 是最适合测试数据的模型。Bootstrap Forest 很好地捕捉到了底层模型形式。图 21 显示了我如何设置项目以在选项卡列表中查看我构建的所有模型,其中 Formula Depot 中的模型集合停靠在工作区右侧,模型比较直接位于模型输出下方,用于查看变量重要性以及各种候选模型的分析器。
Bootstrap Forest 的优点在于,它捕捉到了这样一个事实:增加葡萄酒的酒精度会在一定程度上提高葡萄酒的质量,如图 22 所示。该图显示了历史数据中显示的生产最高品质葡萄酒所需的设置。我们可以通过两种方式与他人分享这些结果。一种是将 Formula Depot 中的模型评分代码保存为各种语言(如 SAS、Python、C、JavaScript 或 SQL),也可以将其保存为 PPT 或 HTML。

图 22.预测葡萄酒品质的 Bootstrap Forest 模型。
此交互式报告可与没有 JMP 的其他人共享。并且 Profiler 在 Web 上保持交互性,因此可以交互地调整值以查看对葡萄酒质量的影响。模型评分代码和交互式 HTML5 报告都可以在项目中添加书签。
参考
- Cortez、A. Cerdeira、F. Almeida、T. Matos 和 J. Reis。通过物理化学性质数据挖掘建立葡萄酒偏好模型。
在决策支持系统,Elsevier,47(4):547-553,2009。
- Lichman, M. (2013)。UCI 机器学习存储库 [ http://archive.ics.uci.edu/ml ]。加利福尼亚州欧文市:加利福尼亚大学信息与计算机科学学院。