DOE魔法 — 运用JMP定制实验设计,寻找珍珠奶茶最佳配方之红茶调制

5岁的乐乐正为妈妈的生日礼物发愁,他和爸爸一起讨论着该送妈妈什么生日礼物。
爸爸提到了妈妈喜欢喝手摇饮料,于是乐乐想到可以自己亲手做珍珠奶茶送给妈妈。然而,爸爸提醒他制作珍珠奶茶的关键配方并不容易找到。爸爸解释因试错法需要耗费大量时间且结果不确定,于是进一步提议可以使用JMP的实验设计(DOE),从而以更有效、更快速的方式调配妈妈喜欢的珍珠奶茶口味。
乐乐:爸爸,快到6月了,妈妈的生日也快到了,我想送她一个礼物,但是我不知道要送什么她才会喜欢。
爸爸:不管你送什么,妈妈都会很开心吧。
乐乐看着电视里的广告画面,灵光一闪地说道:妈妈喜欢喝手摇饮料,不如我来做一杯珍珠奶茶给她喝?
爸爸:可以啊,不过你知道怎么做吗?例如泡红茶的温度跟珍珠怎么煮?
乐乐: 我不会,你帮我啦。
爸爸: 网上应该有很多制作流程,不过多少温度跟煮多久这些关键的信息网上应该就比较少了,而且每个人的喜好不同,既然要送给妈妈一个特殊的生日礼物,我们就特别为她做一杯专属的珍珠奶茶作为生日礼物,如何?
乐乐: 好啊,可是我们要怎么找到她喜欢的口味?世界上应该有无限多种口味吧,难道我们要做无限多杯吗?
爸爸: 没错,你说的把所有的可能都试一遍的方式就是穷举法或试错法(Trial and error),这样的方式会花很久的时间,也不一定可以得到比较好的口味。我们应该用JMP做实验设计。
JMP实验设计是什么?
乐乐: JMP是什么?实验设计又是什么?听起来好像工程师做实验,感觉好厉害喔。
爸爸: JMP是一个包含很多统计分析功能的软件,而且你说的没错,它的其中一项强大的功能可以帮助我们设计出高效益的实验。而且JMP的实验设计还可以根据你的需求,设定因子的种类及范围,加入你认为可能的效应模型以及你能够执行的实验次数等,帮助我们构建在能力可及的情况下的最优实验。
乐乐似乎听不太懂,眼神飘忽不定。
爸爸接着说: 总而言之,我们只要跟他说我们红茶的茶包有哪些选择、水温可以控制在哪个范围、泡茶希望的时间范围,以及我们希望它做几次实验就好,它就会帮我们设计出实验组合喔。
乐乐: 喔,我懂了,就像我们出去玩,你用行车导航帮我们设计开的路一样,跟他说去的地点跟我们现在的位置,就可以帮我们设计出最好的路径。
爸爸: 没错,不过导航通常知道我们的目标,是花费最少的时间,或是走最短的路径,在根据需求给我最建议的组合;而我们目前要做的,则是前期的资料搜集,但是利用设定的实验次数,尽可能广泛地考虑所有可能,搜集它的结果。之后再用这些数据,计算模型,得到最佳的预测。
乐乐: 所以我们现在就像是行车导航的工程师,运用JMP设计用来分析的实验,然后再利用观察的数据,找到怎么走才会最快到达目的地吗?
爸爸: 没错,就是这样,那我们现在利用JMP开始我们的实验设计吧,珍珠奶茶工程师。
经过了一阵子的讨论,乐乐跟爸爸决定先利用JMP的Design Of Experiment DOE(实验设计)功能,找出如何泡出好喝的红茶。
使用定制实验设计,生成制作红茶的参数组合,完成数据收集
爸爸: 我们先来找泡红茶的配方吧,看看那些是重要的影响条件。
乐乐: 我不知道哎,妈妈说我还太小不能喝茶。
爸爸: 没关系,我们来查网页上面推荐的泡红茶方法吧,先找到哪些是影响口味的关键条件跟建议的条件设定,我们可以缩小实验范围。
爸爸跟乐乐根据网络上的信息,先找到适当的茶叶浸泡温度及浸泡时间,以及推荐的水量/茶叶量的比例。另外,爸爸在附近的商点找到两种品牌的茶叶,以及选择自来水或是矿泉水作为泡茶的水,将所有关键参数整理如下(表一):

搜寻完所需要的关键参数和参数的范围后,乐乐跟爸爸回到客厅坐下。
乐乐: 那我们现在可以开始泡红茶了吗?
爸爸: 还没呢,因为我们目前还不知道各个实验所需要设定的参数实际值,我们还需要一个小帮手帮我们设计出实验。
乐乐: 我知道,JUMP!
爸爸: 是JMP啦。不过没错,我们需要他帮我们设计出实验的组合。首先,我先打开我的JMP软件。
爸爸: 你看,如果我们需要JMP帮我们设计实验,你可以点击菜单选项上“DOE”选项,这边有很多可以使用各种DOE方法还有相关的DOE功能。如果你不是这么了解各个DOE背后的原理跟适用的对象,我建议你可以先用“Custom Design”,也就是“定制实验”,作为一个开头。
乐乐: 为什么用这个“定制实验”啊?
爸爸: 定制实验的背后原理是优化实验,他会根据我们给他的条件,包括我们觉得重要的关键条件、这些关键条件有没有互相影响、我们想要得到什么样的结果,能够做几次实验次数等,去建议我们最好的实验组合。
乐乐: 就像导航一样。
爸爸: 对,就像导航一样。这个好处就是很适合我们这些普通人,不怎么了解DOE但又想做一个好的实验设计的人使用。
乐乐: 我以后会成为DOE专家的,只是我现在还是小孩子,所以不会,等我长大我就会了。
爸爸: 好好好!不过就算是DOE专家,对于目标是设计最有效益的实验,他们也常常使用定制实验作为实验设计的切入点。所以,我们现在就用定制实验设计看看吧。
接着,爸爸把参数跟范围输入Custom Design (定制实验)平台(图一)

并将参数主效应及连续型参数的二次项跟连续型参数交叉项的效应项加入模型中(图二)。

乐乐: 什么是二次项跟交叉项,为什么要加入他们?
爸爸: 加入二次项效应是因为想要确认关键参数会不会有反曲现象,也就是在范围中间有一个值让结果产生极大或是极小值。交叉项的加入,是想确认这些参数彼此之间会不会有加乘的效果影响,也就是除了本身主效应的影响外,某些条件配合起来会有额外的效应。
乐乐看到下面的画面接着问: 这个就是设定我们要做几次实验吗?

爸爸:对,这边我们可以设定要不要加重复的实验或是实验要不要加中心点,下方的“Number of Runs” 可以选择实验次数,这边写了最少次数是12次(Minimum),JMP建议是16次(Default),你也可以自己设定一个能够负担的实验次数(User Specified)。我们还是用预设的16次吧(图三)。
乐乐: 为什么是16次啊,越多次不是越好吗?
爸爸: 没错!不过通常因为时间或是钱不够,我们会有一个预设可以执行的实验次数。而这也是定制设计的优势。定制设计可以根据这个需求设计实验,而其他的实验设计必须做到规定的实验次数。另外一个重要的原因是,你不能喝茶,所以这16杯都是我要喝,爸爸喝16杯已经紧绷了,再多喝几杯晚上可能睡不着觉了。
乐乐跟爸爸接着完成定制实验设计,产出制作红茶的参数组合(图四)。

·
依照参数组合表,完成16次实验
接着,爸爸跟乐乐按照这个参数组合表完成了实验,爸爸依序评分并完成16次的评分结果(图五)。

利用JMP “拟合模型”平台执行回归分析,进行模型预测
喝了太多杯茶,爸爸边打嗝边说:我们终于完成实验的数据收集了。
接着,我们可以点击左上方脚本储存区内的“Model(模型)”去做后面的分析。JMP很贴心地帮我们把后续的分析都打包在这个程序上,其实也就是指引我们到JMP上的“Fit Model(拟合模型)”平台去执行回归分析。我们可以直接按下DOE表格上的“Model(模型)”来分析就好(图六)。

点击“Model(模型)”后,爸爸接着说:这边可以让我们选择是否要在模型上增加效应项跟选择做分析的方法。我们就用“Stepwise(逐步)”方法请JMP帮我们挑选出适合的模型(图七)。

经过点击几次鼠标的操作后,爸爸完成了报告(图八),并用手指在计算机上面指出Effect Summary 和Summary of Fit的结果。
爸爸: 我把一些效应项p-value 超过0.05的项目依序排除模型,获得一个更准确的模型,因为统计上来说,P值如果超过0.05,代表这个效应项对模型的影响不大,有没有保留这个效应项没有差别。另外,可以看到Summary of Fit显示模型的准度(R-square)达到0.997,代表这个模型对样本点的解释能力很强,也就是说,这个对这些数据来说是一个很好的预测模型。

乐乐看了看说: 可是,为什么浸泡时间的P值大于0.05没有删除啊?而且他旁边有一个向上的指标。
爸爸: 因为有其他的子项目必须被保留在模型中,你可以看到浸泡时间*浸泡时间这个项目小于0.05需要被保留,作为他的“祖先”元素,浸泡时间也需要被保留,而这个向上的指标就是在跟你说哪一些是有这样问题的“祖先”元素,必须被保留下来。
爸爸继续滚动鼠标的滑轮,呈现报告的下半部。
利用预测刻画器,动态地观察参数变化对味道的影响
爸爸接着说: 我们往下找到Prediction Profiler(预测刻画器) 的报告,这里将模型用交互式的图形呈现,可以帮助我们更快了解每个参数的改变会对味道造成什么样的改变。
乐乐: 好多图片好复杂喔。
爸爸:其实很简单的,我解释给你听。你可以看到下方有参数的名称,他的轴(X轴)就代表我们设定的参数值,然后左边的轴(Y 轴),代表味道的得分预测值。如果你想要知道不同条件的得分,只需要把下方的参数值调整到你设定的值,就可以得到预测的味道结果喔!例如我选择A茶叶,用自来水泡,水量/茶叶量的比例我选择40, 浸泡温度为80,浸泡时间我选择15,当我这样更改…你看,预测结果就出来了,只有4.83分(图九)。

爸爸边说边拖拽鼠标改变参数的设置,乐乐瞪大眼睛,似乎感觉到不可思议。
乐乐: 他会直接根据你的调整,直接在图片上改变预测的味道分数,好酷喔!
爸爸: 对啊,这个互动的功能比较好操作,也让大家比较好懂模型喔。我们来仔细看看这个图形,其实这个图形也大致可以告诉你往哪个方向调整会得到比较高的味道分数,也就是比较好喝。例如,我们看第一个的茶叶图,B茶叶就比A茶叶高,可以知道B茶叶有一个比A茶叶好喝的趋势,同理,矿泉水泡的茶比自来水泡的好喝,以及浸泡时间大约在10~15分钟会比较好喝,给你玩玩看。·
乐乐迫不及待地开始拉动各个参数设定,玩了一下后他提出了一个疑问。
乐乐: 爸爸你看,我改变水量/茶叶量的比例大小,其他的参数会跟着有点变化哎,有的会整个变高变低,有的会稍微改变形状,好奇怪喔。
爸爸: 乐乐很厉害,发现了这个小小的变动。这些小小的变动是来自于调整参数带来的效果,所以其他的参数会形状不变的上升,如果你发现随着原本参数值的改变,其他参数的形状有明显的变异,例如原本是左上右下的变成左下右上,那就代表这个其中的交叉项的影响很厉害。另外你看,有一些参数的趋势线不是直线,而是弯曲的线,有一个最大值或是最小值,就代表他的2次项的效果影响程度很高。
乐乐似懂非懂地点了一下头,然后接着问: 所以我这样就可以预估所有可能的结果吗?
爸爸回答说: 这是一个好问题。我们刚刚做的事情是请JMP根据我们所收集的资料提供一个预估的模型,但是,这些数据是根据我们一开始所界定的范围内广泛均匀的取点,尽可能地看所有范围内各点的表现。但是对于范围外的参数组合,这个模型的预测能力可能不太好,所以我们尽可能不做原本实验设计范围外的预测。但是对于范围内大部分所有参数组合,可以用这个模型预测一个准确的结果。
接下来,我们要来做今天的重点步骤,找到最好喝的参数条件组合了,你可以调整刻画器上的参数设定,看看你找到最高分的组合是怎样的。
乐乐点了点头,又是一阵在Prediction Profiler(预测刻画器)上的参数设定调整。过了2分钟后,乐乐把电脑转向爸爸,开心地说:爸爸,我找到一个9.47分的——选择B茶叶,用矿泉水泡,水量/茶叶量的比例选择60,浸泡温度为89.5,浸泡时间选择11.9,结果就是9.47的味道分数。怎么样,很厉害吧?
爸爸: 不错喔!已经很高了,那你觉得还会有更高分吗?
乐乐: 可能会有吧,因为我没全部都设定过看他的分数。
爸爸: 这个时候就要展现JMP魔法啦!你看我可以在JMP Prediction Profiler上开启“Set Desirability(设定意愿)”,设定目标,例如这里选择味道分数愈高愈好,我们就可以选择“Maximum(最大)” 去设定结果为望大,也就是越大越好,并利用“Maximize Desirability(最大化意愿)” 的功能,去求得完成目标的最佳参数组合(图十)。或是选择Maximize and Remember 去寻求最佳参数组合并记录在报告内。

(右)最大化意愿值Maximize Desirability
爸爸在刻画器上点击Maximize and Remember,快速找到最佳参数组合并将其记录在报告上,乐乐的眼睛睁得更大了(图十一)。

乐乐: 这也太快太方便了吧。
爸爸: 对啊,通常数据分析花最多时间的就是收集数据,JMP可以节省更多分析的时间,所以,很多需要运用数据做统计分析的公司都会使用这个软件加快分析的时间。其实,相比较你手动得到的参数组合跟最佳的组合只差了一点点,你也很厉害了。另外,连续型的参数,例如浸泡温度,91.02894,实际上并不好管控,也许我们可以用91或是90去替代设定。
乐乐跟爸爸接着讨论了一下各参数条件的设定,最后用B茶叶,矿泉水,水量/茶叶量的比例55,浸泡温度为90, 浸泡时间选择12.5作为最后的关键参数条件设定(图十二)。

乐乐: 耶!那我们接下来要做奶茶跟珍珠吗?
爸爸看了一下时间,接着说:妈妈快要回来了,如果要当成妈妈生日的惊喜,我们先赶快把实验的器具收一收不然会被发现。奶茶跟珍珠我们下次再来做实验,找好的配方组合,这会运用到其他DOE的技巧喔。
乐乐开心地说: 好,那我们赶快收一收,我好期待喔!
爸爸跟乐乐赶在妈妈回家前把实验收拾干净,一颗小小的DOE种子却在乐乐心中慢慢发芽。
下次,爸爸将带乐乐进行美味珍珠的制作,这其中又会有怎样的惊喜和火花呢?让我们和乐乐一起期待吧!
最后,想要使用JMP软件亲自体验定制实验设计的强大功能的话,欢迎复制以下链接到浏览器,下载最新版的 JMP 17 免费试用。
https://www.jmp.com/zh_cn/download-jmp-free-trial.html?utm_campaign=td7013Z000002DxWTQA0&utm_source=wechat&utm_medium=social