ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

JMP统计软件操作指南:数据表、图表与质量分析工具详解

JMP统计软件操作指南:数据表、图表与质量分析工具详解

简介:JMP是由SAS公司开发的交互式统计分析软件,凭借图形化界面与丰富统计功能,常被视为比Minitab更强大的工具。这份培训讲义课件面向质量工程师、数据分析师及统计初学者,系统介绍JMP的数据处理、统计分析及质量改进方法。资源仅含1个PPT文件,压缩包大小2.54MB,内容紧凑但覆盖全面:既有创建和编辑数据表、行列选择、列类型定义、变量角色设置等基础操作,也有柱状图、饼图、柏拉图、直方图与Cpk、控制图、GR&R分析、线性相关与拟合、t检验、方差分析、DOE实验设计等常用统计功能。课件穿插销售占比分析、不良品柏拉图等实际案例,配合菜单路径与图标说明,便于读者边看边练,快速掌握软件操作并理解统计输出。目前已有923人学习,适合希望用JMP替代Excel进行专业统计分析、提升质量管理与过程控制能力的用户。

1. 比 MINITAB 还强?JMP 到底替我们省了哪些事

做质量、做数据分析的人,大多听过一句话:还有一款叫 JMP 的统计软件,比 MINITAB 还要强大。这不是玄学,而是它背后有长期做统计软件的技术积累,界面又比传统统计软件友好得多。JMP 是一款图形界面驱动的统计分析软件,数据处理、图表制作、过程能力分析、假设检验、实验设计全部集成在一个窗口里,不用记命令、不用写代码也能完成大部分日常分析。我拿到这份培训讲义时最直观的感受是:它不绕弯子,直接讲怎么建数据表、怎么定义列类型、怎么在几分钟内把一张表变成柱状图、饼图或柏拉图,非常适合制造业质量工程师、六西格玛从业者,以及刚接触统计软件的数据分析新人。

2. 基础操作与数据准备:把一张 Excel 变成能分析的 JMP 表

2.1 创建与打开数据表:先理解 JMP 表的行与列

JMP 的数据表和 Excel 表面上看都是网格,但底层逻辑完全不同。Excel 里你可以随意合并单元格、某一列上半段是文本下半段是数字;JMP 里每一列就是一个变量,整列只能有一种数据类型,每一行是一条观测记录。这个区别决定了你后续所有统计操作能不能顺利进行,所以第一步不是急着录数据,而是想清楚哪些内容该放列、哪些内容该放行。

新建表单用 File > New,打开已有文件用 File > Open,工具栏上也有对应的新建、打开、保存图标。我这里建议每次拿到一份新数据,先另存成 JMP 自己的格式(.jmp),因为 JMP 打开 Excel 文件时虽然能识别大部分内容,但列类型、列属性偶尔会丢失,特别是日期列和文本型数字列。另存后,列类型已经按你的设定固定下来,后续分析不会再被原始格式干扰。

选择行或列的操作很直观:连续区域直接用鼠标拖放,不连续的区域按住 Ctrl 再逐个点击。这个交互在后续做筛选、做子组分组时非常常用,比如做控制图时只选某几条生产线的数据,或者做柏拉图时排除某几个异常样本。

2.2 增加与删除行/列:灵活调整数据规模

新表默认只有少量空行空列,实际数据往往需要几十行甚至上千行。做法有两种:第一种是在表格空白处直接双击,系统自动增加一行或一列;第二种是通过菜单 Rows > Add Rows 增加行,Cols > Add Columns 增加列,适合一次性批量增加。

这里有一个实际操作习惯想提醒你:增加行时可以顺便把“行数”一次给够,避免后续边录数据边插行,因为插入行会改变已有的行顺序,一旦后面要做按时间排序的子组分析,顺序乱了会直接影响控制图的结果。删除操作在 JMP 里同样重要,选中若干行后通过 Rows > Delete Rows 删除,选中若干列后通过 Cols > Delete Columns 删除。删除列要格外谨慎,删除前先确认这一列是不是已经被某个分析平台引用,否则重新打开分析脚本时会报错。

2.3 定义列名称与类型:Continuous、Ordinal、Nominal 怎么选

双击列上部,或者选中列后进入 Col > Col Info,就可以修改列名称和列类型。讲义把类型分为三类,这也是 JMP 所有统计平台的底层依据:

类型英文名适用数据举例参与计算的方式
连续Continuous数值型、有实际度量含义尺寸、重量、温度参与均值、标准差、回归等数值运算
有序Ordinal大小有顺序但间隔无意义等级 1/2/3、不良程度可排序,但不默认做等距计算
名义Nominal纯分类、无顺序型号、班组、缺陷代码只做分类计数,不参与数值运算

判断经验是这样:凡是能用尺子量、用秤称出来的量,选 Continuous;凡是“1 代表好、2 代表中、3 代表差”这种有顺序但差值没意义的,选 Ordinal;凡是字符串标签,比如产品型号、操作员编号、缺陷类型,选 Nominal。尤其要注意那种看起来是数字、实际是编码的列,例如机台号“01、02、03”,如果设成 Continuous,回归分析里它会被当成一个数值变量,产生完全无意义的系数。

用 JSL 创建一张包含三类列的数据表也很简单,适合批量建表时使用:

dt = New Table( "示例数据", New Column( "批次", Character, Nominal, Values( {"A", "B", "C"} ) ), New Column( "等级", Numeric, Ordinal, Values( [1, 2, 3] ) ), New Column( "尺寸", Numeric, Continuous, Values( [10.2, 10.5, 10.1] ) ) );

这段脚本的逻辑是:New Table 创建一个新数据表,表名叫“示例数据”;New Column 依次创建三列,其中“批次”是字符型、名义变量,“等级”是数值型、有序变量,“尺寸”是数值型、连续变量。Values 后面的{"A","B","C"}是文本列表,[10.2, 10.5, 10.1]是数值列表。如果你要在脚本里改列类型,只需要把 Nominal、Ordinal、Continuous 换成目标类型,再重新运行即可。这个脚本我只建议在数据列很多、需要重复建表时用,日常单张表直接在界面上双击列头改更方便。

2.4 变量角色:NONE、X、Y、WEIGHT、FREQ、LABEL 的用途

列类型定义的是数据本身的性质,变量角色定义的是这一列在分析中扮演什么位置。选中的列可以在 Col > Assign Roles 里设定角色,更快的做法是直接点击列头右侧的小按钮弹出角色选择。角色的含义如下:

角色含义典型用途
NONE分析时不包含这一列用作备注的文本列
X自变量、解释变量分组变量、回归的自变量
Y因变量、响应变量控制图里的测量值、回归的因变量
WEIGHT每个响应的权重值样本代表性不同的加权分析
FREQ频数,表示该行重复次数已经汇总过的频数表
LABEL标识,图中用此列内容做点标签散点图上显示批次号

最常被问反的就是 X 和 Y。判断标准是因果关系方向:Y 是结果,X 是可能的原因或分组条件。比如研究不同班次对尺寸的影响,班次是 X,尺寸是 Y。角色设定错误不会报错,但输出结果会完全颠倒,解释时很容易得出相反的结论。另外,FREQ 和 WEIGHT 虽然都影响计算方式,但逻辑不同:FREQ 告诉软件这一行代表几条相同记录,WEIGHT 告诉软件每条记录的重要程度。

3. 图表应用实战:柱状图、饼图与柏拉图的一条路径

3.1 用柱状图看季度销售额:先做对数据表结构

讲义里的案例是某公司在四个季度三个业务领域的销售额,数据本身是典型的宽表结构:电话机、电动玩具、服务业占三行,第一季度到第四季度占四列。但在 JMP 里做柱状图,要求的不是宽表,而是长表——一列放季度名称,一列放销售额,每个业务领域占四行。

我先给一段创建长表的 JSL 脚本,数据结构清晰,后续做图一步到位:

dt = New Table( "季度销售额", New Column( "quarter", Character, Nominal, Values( {"Q1","Q2","Q3","Q4","Q1","Q2","Q3","Q4","Q1","Q2","Q3","Q4"} ) ), New Column( "business", Character, Nominal, Values( {"电话机","电话机","电话机","电话机","电动玩具","电动玩具","电动玩具","电动玩具","服务业","服务业","服务业","服务业"} ) ), New Column( "cost", Numeric, Continuous, Values( [59,45,67,25,56,33,45,67,62,56,38,73] ) ) );

这段脚本的逻辑是:用三列分别保存季度、业务领域、销售额,12 行数据对应 3 个业务领域乘以 4 个季度。quarter 和 business 都是 Nominal,因为它们只是分类标签;cost 是 Continuous。如果你手里的 Excel 已经是宽表,在 JMP 里用 Tables > Stack 可以把多列堆叠成一列,同时自动生成一列“标签列”记录原列名,操作时选择需要堆叠的季度列,把堆叠后的列命名为 cost、标签列命名为 quarter 即可。

做图时点击工具栏上的 Bar/Pie Charts 图标,或者从 Graph 菜单进入 Chart 平台,把 quarter 拖到 X 区,把 cost 拖到 Y 区,点击确定。JMP 会按季度分别画出销售额柱状图,每个季度下还能按 business 字段做进一步分组。如果柱子挤在一起不易区分,回到对话框里把 business 拖进 Overlay 或 Group 区域,柱子就会按业务领域分开展示。这个拖入 X/Y 的动作看似简单,却是新手最容易卡住的地方——有人把 quarter 拖进 Y、cost 拖进 X,出来的图完全没法看。

3.2 饼图切换与图表定制:一个按钮完成转换

在柱状图输出窗口的左下角有一个“√”按钮,点开后会列出图表类型选项,选择 Pie,当前柱状图立即变成饼图。饼图适合展示占比关系,比如四个季度销售额分别占全年的百分比;但饼图不适合展示过多分类,超过六七个扇区时肉眼难以比较,这时候柱状图反而更直观。

图表输出后,右上角的 * 号菜单提供了几个高频功能:Help 查看当前图表的帮助说明,Title 给图表加标题,Footnote 加脚注,Print Preview 做打印预览。我的习惯是给每张输出图都加一个带日期的标题,比如“2024 年 Q1–Q4 销售额分布 20240315”,这样文档整理时不需要额外回忆数据来源。导出图片时不要用截图工具,JMP 的图表窗口可以直接复制矢量格式,或者用 File > Save As 选择 PNG,避免放大后模糊。

3.3 柏拉图找关键少数:不良品数据的 Pareto 分析

柏拉图是质量管理里最常见的 Pareto 图,核心目的是让最大的问题浮出水面。讲义里的数据是某日 IPQC 抽样发现 100 个不良品,缺陷类型包括 leage、low vol、high im、waste、short、shut 等。做柏拉图前首先要保证缺陷名称规范,这一步比做图本身更重要——我在 3.1 提过,数据清洗决定图表质量。

把含缺陷类型的那一列作为 Y 变量,用 Analyze > Distribution 打开分布平台,然后从平台菜单里勾选 Pareto Chart,JMP 会自动统计每种缺陷的频数、按频数从高到低排列,并叠加累计百分比曲线。如果只想做柏拉图而不需要直方图,可以直接在脚本里只输出 Pareto 部分:

dt = Current Data Table(); dt << Distribution( Y( :defects ), Pareto Chart( 1 ) );

逻辑说明:第一行获取当前激活的数据表,第二行对 defects 列做分布分析,Pareto Chart( 1 ) 表示同时输出柏拉图图,0 则关闭。运行前需要确认当前表确实存在 defects 这一列,列名不符时把冒号后的字段改成实际名称。从柏拉图输出里读图时,先看柱顶的累计百分比线在哪越过 80%,越过的前几类缺陷就是要优先处理的对象。比如 100 个不良里 high im 和 short 加起来占了 70%,那资源就应该先投在这两类上,剩下的小类别组合在一起处理。

4. 统计分析与质量工具:从 Cpk 到 DOE 的关键入口

4.1 直方图与过程能力 Cpk:判断制程到底行不行

直方图在 JMP 里是 Analyze > Distribution 的标准输出之一,选中连续变量后会自动出直方图、盒形图和正态分位数图。只看直方图只能判断分布形状,要判断制程能力还得进入 Process Capability 平台,路径是 Analyze > Quality and Process > Process Capability,选定过程列后必须填写规格下限 LSL 和规格上限 USL,这两个值不是 JMP 算出来的,而是设计规格或客户要求。

输出里最关键的是 Cpk 和 Ppk 两行。Cpk 是短期过程能力指数,Ppk 是长期过程性能指数。判定经验如下:

指数范围能力状态建议动作
Cpk ≥ 1.67良好维持现状,考虑成本优化
1.33 ≤ Cpk < 1.67尚可可接受,继续监控
1.00 ≤ Cpk < 1.33临界需要改善,加强监控频率
Cpk < 1.00不足立即排查原因,启动改善

需要留意的是,Cpk 计算假定数据近似正态。如果直方图明显偏态或双峰,算出来的 Cpk 会误导决策,常见做法是先做正态性检验,偏态明显时对数据做 Box-Cox 变换后再算能力。讲义里没写这个细节,但实际项目里几乎一定会遇到。

4.2 控制图与 GR&R:先证明测量没问题,再谈过程稳定

控制图是监控过程稳定性的核心工具,入口在 Analyze > Quality and Process > Control Chart。控制图类型不能随意选,要按数据类型匹配:子组大小在 2 到 9 之间时用 Xbar-R 图;子组大于等于 10 时用 Xbar-S 图;单值数据用 I-MR 图;不良率用 p 图;不良数用 np 图或 c 图。选错类型虽然也能出图,但控制限的计算公式完全不同,误报率和漏报率都会偏离正常水平。

控制图的判异规则不止“超出控制限”这一条。连续 7 点在一侧、连续 6 点递增或递减,也要判为异常。我见过不少工程师只盯超限点,趋势性偏移被忽略,最后工序其实已经漂移了很久。建议每次查看控制图时先看有没有趋势链,再看有没有超限点。

GR&R 分析紧接在控制图之后的原因很实际:如果测量系统本身重复性和再现性差,那控制图上的波动到底是过程波动还是测量波动,根本分不清。JMP 里入口在 Analyze > Quality and Process > Measurement System Analysis,十个样品、三个测量人员、每人测两到三次是常用方案。判定标准是 %GR&R 小于 10% 合格,10% 到 30% 有条件接受,大于 30% 则测量系统必须改进。

4.3 相关与线性拟合:先看散点图,再信相关系数

研究两个连续变量是否线性相关,最常见路径是 Analyze > Fit Y by X,把响应变量放 Y、解释变量放 X,JMP 会输出散点图、回归拟合线、回归方程、R² 和 p 值。多个变量同时考察时用 Analyze > Multivariate 出相关矩阵,矩阵里每个格子是两两间的 Pearson 相关系数。

这里提醒一个高频误区:相关系数接近 0 不代表没关系,只代表没有线性关系。数据可能呈明显的 U 形或倒 U 形关系,但 Pearson 系数仍然接近 0。所以看相关系数之前,永远先看散点图。拟合结果里 R² 表示自变量解释了因变量多少比例的变异,R² 高不意味着因果关系存在,也可能是两个变量都随第三个变量变化,或者样本量极小刚好拟合上。判断相关是否可靠,要看 p 值、样本量,以及业务上能不能解释得通。

4.4 t-Test、ANOVA 与 DOE:从两组比较到多因子实验

两组数据的均值比较在 JMP 里不需要单独找 t-Test 菜单,直接进入 Fit Y by X,把测量值放 Y、分组变量放 X,平台菜单里选择 Means/ANOVA,JMP 会根据组数自动输出 t-Test 或 ANOVA 结果。两组时输出 t-Test,三组及以上时输出 F 检验。这里判断标准可以简化:p 值小于 0.05 说明组间差异在统计上显著,但统计显著不等于实际重要,大样本下很小的均值差也会显著,还要结合均值差的置信区间看业务影响。

实验设计 DOE 是 JMP 的优势功能,入口在 Analyze > DOE,提供自定义设计、筛选设计、响应曲面设计、田口设计等模板。它的价值在于用最少试验次数获取最多信息,比如有五个因子每个因子两个水平,全因子实验需要 2 的 5 次方即 32 次试验,而筛选设计只需要十几甚至更少实验次数就能判断哪些因子显著。讲义把 DOE 列在最后一个应用,说明它面向更进阶的用户,但只要你做过多因子实验,就会明白这功能能节省多少时间和试错成本。

5. 避坑专题:用 JMP 做统计时最常见的五个翻车现场

5.1 列类型设错,统计结果完全不合理

现象:把机台编号、月份编码放进回归模型,得到非常显著的系数,但业务上完全解释不通。把等级数据设成 Continuous,拟合出毫无意义的斜率。

原因:JMP 默认把识别为数字的列都设为 Continuous,但很多数字其实是分类编码。机台 01、02、03 是名义变量,它们之间没有数值大小关系。

解决:进入任何统计平台前,先双击列上部检查列类型。机台号、批次号、缺陷代码统一设 Nominal;有顺序的等级设 Ordinal;只有物理度量值设 Continuous。养成开新表第一件事检查列类型的习惯后,这类问题基本绝迹。

5.2 宽表直接做图,X 轴乱成一片

现象:柱状图做出来所有季度挤在一个刻度上,或者图里只有一个柱,完全达不到对比效果。

原因:数据还是宽表结构,多个季度的销售额存在不同列里,JMP 的 Chart 平台一次只能把一列放进 X 或 Y,宽表无法被正确识别为分组数据。

解决:做图前用 Tables > Stack 把多列堆叠成一列,再生成一列标签列记录原来的季度名,让数据变成“季度 + 销售额”的长表结构。这一步做完,图表才符合 JMP 对变量的预期。

5.3 柏拉图缺陷类型太碎,柱条密密麻麻

现象:100 个不良品做出二十几根柱子,没有一根明显突出,Pareto 图失去意义。

原因:原始记录里同一缺陷有多种写法。比如讲义数据里的 leage 与 leak、short 与 shut,如果不合并,统计出来就是多条近似重复的缺陷类型。

解决:做柏拉图之前,先对缺陷类型列做清洗。用 Col > Recode 把同义项合并成统一名称,再跑 Distribution。清洗比做图重要,柏拉图的价值在找出关键少数,前提是分类本身干净。

5.4 Cpk 算出负值或超大值

现象:Process Capability 输出里 Cpk 是负数,或者超过 10。明显与现场感受不符。

原因:负值通常是规格限填反了,下限大于上限,软件按公式计算自然出现负结果。超大值通常是数据量太少、分布有假峰,或者规格限设得太宽。

解决:先检查 LSL 和 USL 两个输入的数值大小关系,再看直方图确认数据形态。数据明显偏态时,先做正态性检验,必要时做 Box-Cox 变换。不要只看 Cpk 数字,直接打开直方图套上规格线目测分布位置是最快的验证方式。

5.5 把 p 值当成唯一结论依据

现象:t-Test 得到 p 值小于 0.05,于是宣布两组有差异;但实际均值差只有 0.02,对业务毫无影响。

原因:p 值描述的是“在零假设成立时出现当前结果的概率”,样本量越大,p 值越容易被压到 0.05 以下,和实际效果大小无关。

解决:看 p 值的同时,必须看均值差的置信区间和效应量。置信区间不包含 0 且宽度窄,说明差异存在且估计稳定;如果区间窄但数值极小,就要回到业务层面判断这差异有没有意义。

6. 用 JSL 把重复工作做成一条命令:录制、修改与复用

JMP 里面有一件事很多人没充分利用:操作过程可以被录制成脚本。当你反复对不同的数据表做同一套处理,比如设置列类型、指定 Y 角色、输出直方图和柏拉图,手动操作可能耗时五分钟,但录成脚本后只需要一次点击。这就是 JSL(JMP Scripting Language)的实战价值。

具体做法是:打开脚本编辑器,点录制按钮,然后在界面上完成一次完整操作,比如把 defects 列设为 Nominal、指定为 Y、运行 Distribution、勾选 Pareto Chart。操作结束后停止录制,编辑器里会生成一段 JSL,保存成 .jsl 文件。下次拿到新数据表,直接打开这个脚本文件,把列名改成新表的实际列名,点运行,图表一次性全部生成。

给一段我经常用的模板,你可以按自己的列名修改后保存:

// 当前激活的数据表 dt = Current Data Table(); // 统一列解析类型 dt:型号 << Modeling Type( Nominal ); dt:批次 << Modeling Type( Nominal ); dt:尺寸 << Modeling Type( Continuous ); dt:缺陷数 << Modeling Type( Continuous ); // 指定缺陷数为 Y 并直接出分布和柏拉图 dt << Set Y Role( :缺陷数 ); dt << Distribution( Y( :缺陷数 ), Pareto Chart( 1 ) );

这段脚本的逻辑:第一段把几个关键列的类型锁定,避免默认设置误判;第二段把“缺陷数”设为 Y 响应变量并启动分布分析。Modeling Type 是 JSL 里控制列解析类型的关键字,Set Y Role 等价于菜单里给列点 Y 按钮,Distribution 平台则一次性输出直方图、盒形图和柏拉图。运行前只要确保当前激活的数据表里存在型号、批次、尺寸、缺陷数这些列,列名不同就替换冒号后面的字段。

从那以后,我每次拿到新的数据表,都强制自己先跑一遍这套脚本,把列类型和角色统一,再进入后续分析。别小看这一步检查,很多翻车现场都是因为列类型默认错误或者宽表结构没转换就硬做图。录制的脚本等于给分析流程加了一道可复现的保险,改列名、调参数都在脚本里完成,比每次手动点十几个菜单稳妥得多。希望这个习惯也能帮你在 JMP 上少走弯路。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进