扬声器 | 成绩单 |
| 乔丹·希勒 | 出去。 |
| 菲尔·凯 | 好的,好的,谢谢你加入我们。 我是菲尔·凯。 我是 JMP 的学习经理,我将通过一个交互式 SVEM 示例开始本次演示,该示例是自我验证的集成建模。 |
| 我将介绍什么是 SVEM 及其工作机制,然后 Pete 和 Trent 将分享示例, |
| 案例研究和模拟,它们真正解释了您为什么要这样做。 我只是要在一个 |
| 非常简单的案例研究,所以最初可能看起来不是为什么......你为什么要这样做似乎不太清楚,但希望你在我解释完之后会理解这个机制。 |
| 好的,所以我现在要停止我的视频,只关注这里的软件演示。 |
| 我们在这里有一份 JMP 期刊,我们正在与您分享,因此您可以通过 Community.JMP.com 上 JMP 社区的帖子访问该期刊。 |
| 我们将使用的示例是一个经典的 DOE 示例。 这是反弹数据,您可以从 JMP 的帮助文件中获取。 |
| 所以它是三个因素,15 次运行。 这是一个 Box-Behnken 设计,我们在那里得到了回应,这是伸展性的,非常简单,标准, |
| 传统的老式 DOE。 |
| 对这些数据进行建模并没有真正的挑战,我们看看我们是否拟合了一个响应面模型,该模型表明这种曲线行为、这种二次效应以及因素之间的相互作用也很重要。 |
| 因此,让我们看看如何使用 SVEM 方法对此进行建模。 |
| 因此,如果我们要使用 SVEM 对此进行建模,您首先会注意到我们有 30 行数据,因此我们实际上复制了每一行数据,这可能看起来有点疯狂。 这可能看起来像作弊。 这是 SVEM 方法中的一个关键技巧。 |
| 你会看到我们在这里有一些额外的列,关键是这个验证权重。 因此,让我们绘制它,以便您了解它的含义。 |
| 所以你可以看到,对于我们的每一行数据,我们的每一次运行,我们实际上都有成对的运行,所以运行第一,你可以在这里看到。 |
| 我们实际上将这些运行中的每一个加权到训练集(为零)或验证集(为零)中。 你可以看到每一对 |
| 这些权重成反比。 因此,例如,在这里运行第 7 次,您可以看到它在训练中的权重很高,验证集为零,并且在验证集中相应地权重较低。 |
| 现在这些已被随机分配,我们可以...... |
| 通过点击这里,我们可以重绘那些,所以我们可以重新分配权重。 同样,如果某行在训练集中的权重很大,例如,这里的第 6 行在训练集中的权重很大,那么它在验证集中的权重也相应较低。 |
| 所以我们将这里的数据行加倍。 |
| 我们将使用它进行自我验证。 所以我们实际上可以做的是,我们可以使用一个变体来阻止验证,其中 |
| 我们要做的不是将一行数据完全保留到验证集中,而是保留每行数据的一部分,这样每一行实际上都可以在训练集和验证集中,而且,重要的是,我们可以重新分配这些权重 |
| 重复,这在集成建模时会起作用。 |
| 好的,总结一下我们已经……我们基本上对每一行数据进行了重复,我们正在为这些数据分配权重,这样一些行在训练中会更多,而有些行在训练中会更多验证集。 |
| 所以现在我们可以使用验证来拟合模型。 |
| 所以我们在这里使用 GenReg,您可以看到我们正在使用验证集(并且忽略那里的错误消息)。 |
| 我们使用 Lasso,我们使用验证作为模型选择。 而且,在这种情况下,它实际上并未在模型中选择任何活动效果。 所以它适合响应面模型,我们使用验证作为选择方法,使用套索, |
| 并且我们已经确定实际上没有任何影响是活跃的,所以我们有一个实际上没有积极影响的模型。 |
| 然后我们可以做的是再次重新绘制这些权重,这样我们就可以重新加权我们的列。 |
| 我们可以看到,这次我们得到了一个不同的模型。 所以实际上一些效应现在变得活跃,所以二氧化硅在二氧化硅和硫之间的这种相互作用中是活跃的。 |
| 让我们保存那个模型。 |
| 所以现在,随着我们的 |
| 数据表,你可以看到我们在那里有一个保存的模型公式列。 |
| 让我们再次重绘这些权重。 因此,我们再次重绘它们,使得一些行在训练中更加重要,其中一些在验证中更加重要。 |
| 我们又得到了一个不同的模型,现在让我们保存它。 所以我们现在有 |
| 两行...两列保存了预测公式。 |
| 我们可以再次这样做。 所以我要重新绘制权重并保存预测公式。 我刚刚有一个脚本可以为我们做这件事。 然后实际上创建了这个模型平均值,所以我们实际上已经平均了我们三个保存的模型。 |
| 因此,每个单独的模型使用不同的验证权重。 |
| 每个模型都不同,有些比其他模型更好。 关键是,当我们对这些进行平均时, |
| 这些的平均值是迄今为止最好的模型。 所以你可以看到这实际上看起来非常接近我们使用标准方法拟合的原始模型...... |
| 原始数据集。 |
| 我们可以继续这样做。 我们可以重复此操作 10 次,因此我们将重复此操作。 你可以看到重绘权重;每次我们得到一个略有不同的模型。 |
| 我们可以保存每个不同的模型。 |
| 最终得到一个可能是最好的模型的平均值。 |
| 而且,事实上,如果我们将其与从这些数据的标准分析中看到的原始模型进行比较, |
| 你可以看到这两个模型实际上非常接近。 |
| 所以在这种情况下,使用这个自我验证的集成建模确实达到了与我们使用标准模型相同的模型 |
| 线性回归。 |
| 所以我想回顾一下你在那里看到的关键点。 正如我所说,我们将继续请教皮特和特伦特,他们将解释想要使用这种新颖建模技术的动机。 |
| 我们所做的是复制原始数据行。 |
| 那么这意味着,我们可以应用随机加权来说明每行对中有多少在训练与验证中。 |
| 这使我们能够使用验证。 对于这么小的数据集,我们将无法使用它。 完全保留一行数据是没有意义的,但是我们可以用这个重复的集合做什么 |
| 是进行加权验证。 因此,我们在这种情况下使用套索选择来拟合模型,并且套索选择使用了这个加权验证列。 |
| 然后我们重新绘制这些权重。 我们再次为这些行对随机分配不同的权重,然后重新拟合模型。 而且,在我们的例子中,我们重复了 10-15 次,但在实践中,为了获得一个良好的自我验证的集成模型,我们希望重复这个过程 100 次或更多次。 |
| 每个模型都是它自己......迭代过程的每个步骤中的每个单独的模型并不是特别有用,但是模型平均值或集成是,正如我们在最终模型中看到的那样,我们作为所有这些迭代的平均值实现. |
| 所以,现在我想把它交给皮特,他现在将通过一个案例研究来讨论,这实际上说明了为什么你会想要使用这种不寻常的方法来对这样的数据进行建模。 |
| 彼得·赫什 | 非常感谢,菲尔。 我要继续在这里分享我的屏幕。 |
| 让我们通过一个例子来说明我们什么时候可以 |
| 使用这种方法。 所以我来了 |
| 首先查看结果,因此我们正在查看一些 DOE 非常小的设计,即 6 次运行、8 次运行和 10 次运行 DOE,具有三个因子。 |
| 这些是本质上从超饱和到饱和的响应面设计,它们都是优化设计,所以这些运行次数非常少 |
| 在这里完成我们的目标。 所以这就是我们要去的地方。 所以让我们回头谈谈设计,然后我们是如何走到这一步的。 |
| 所以。 |
| 这是一个案例研究,我们试图通过调整不同的营养组合来最大化微生物的生长速度。 就像我之前提到的,我们正在使用超饱和 I 优化设计,我们正在调整运行次数。 |
| 这是模拟数据,其中所有主效应以及所有二次项都处于活动状态。 |
| 那么这是如何设置的,我们从三个因素开始。 我设计了我的模型。 如果您之前没有在 JMP 中设计过饱和或超饱和设计, |
| 做到这一点的方法是尽可能地处理那些不是主要效应的效应,这样您就可以拥有更少的运行次数或与模型效果相同的运行次数。 然后我在那里生成了我的设计。 |
| 并经历了这个过程,菲尔在那里非常漂亮地描述了重新采样数据,得到那些倒数……反比例的权重,这是这个过程的关键。 |
| 我们已经进行了几次会谈,我只有这些 QR 码。 |
| 这种技术是由 Chris Gotwalt 和 Phil Ramsey 开发的,他们在之前的几次谈话中介绍了这种技术。 而这最后 |
| QR 码是在旧版 JMP 中设置此验证列的插件。 从 JMP 16 开始,您可以在软件中本地执行此操作,但如果您有 JMP 15,则需要使用此插件设置。 |
| 就像菲尔说的,所以一个 |
| 个别模型可能不太适合数据,有些适合,有些没有任何条款。 |
| 但这只是浏览此处的示例,您可以在其中看到每个单独的模型。 有些只是一个截距,有些非常不适合,偶尔的模型做得很好。 |
| 所以这就像菲尔描述的那样,每个都有不同的重新计算权重。 所以我们得到了一个稍微不同的模型,我们将继续并保存它们。 所以这是第一步。 |
| 然后下一步是我们对这些模型进行平均。 正如你所看到的,随着你对这些模型的平均,越来越多的模型,模型拟合变得越来越好。 所以个别模型不是很好,但整体平均模型给了我们很好的拟合。 |
| 我想谈论的最后一步是这些模型天生就有偏见。 正如您在 Phil 制作的第一个模型中看到的那样,那里没有主动效果。 所以 |
| 当您对模型进行一些模型或变量选择技术时,您偶尔会得到一个没有输入该特定变量的模型。 |
| 所以,如果我们看看这些分布,你会看到 |
| 所有这些都是主动效应,它们的分布在 5 左右,这是效应大小,但它们也有一个 0。 |
| 所以我们不会经常高估效果,因为我们得到 0 来抵消它,所以这会偏向一个较低的值,所以我们要做一个 |
| 消除这些模型偏差的小技巧,我们在那里 |
| 将此模型视为最小二乘模型中的预测器,这将消除这些偏差,我将通过此过程向您展示这是如何完成的。 |
| 但最终我们得到了非常好的结果,我在很少的运行中分享了这个结果。 所以这就是为什么你使用 SVEM 的动机是能够预测和制作一个体面的模型,而运行次数比不使用这种技术时少。 |
| 好的,让我们在这里跳到 JMP |
| 和 |
| 走过那个过程。 |
| 好的,这是我展示的那个例子的六次运行 DOE,我们有我们的三个因素和我们的增长率。 这是在我们建立模型之后。 |
| 这就是它的样子,我们现在已经经历并运行了。 所以我们有六次运行和我们的六个结果。 我们的下一步是创建该验证列并在 JMP 内部执行此操作,我们将只去分析预测建模, |
| 创建验证列,然后我们将创建一个自动验证表,而不是验证列。 |
| 好的,这就是我这样做的方式。 我已经完成并完成了,所以我不会重复这个过程。 |
| 但这里的数据及其重新采样的数据和负相关的权重,就像菲尔展示的那样。 你有一个高权重加上一个低权重的重复运行。 在我们完成之后,我们通过并制作我们的模型。 |
| 在本例中,我使用了 GenReg 模型并且您想要选择其中一种变量选择技术。 所以如果我继续运行这个,我想做一些像前向选择套索这样的事情 |
| 或或其中一种选择技术。 Trent 将更详细地介绍这些选择技术以及他们调查过的技术。 |
| 因此,在我运行模型后,您会看到 JMP 已通过并选择了一些活动的效果。 它抓住了一些,但你可以在这里看到 |
| 我们看到的偏差,这两个主要效应都应该是活跃的,但它们的结果是 0。 所以当我把它保存到数据表时, |
| 我会像 Phil 展示的那样创建一个新列,然后我会重新计算权重并一遍又一遍地计算。 这是一个简单的脚本,可以执行 100 次,并且 |
| 我们很乐意分享这一点。 这非常容易,只需将您的脚本、模型脚本复制并粘贴到此处,就可以重现我们在此处所做的工作。 |
| 好的,这是最终结果,我们已经完成了我们的 DOE,我们的结果,然后我们有 |
| 我保存的 100 个模型 |
| 并隐藏在这里。 然后是最终的模型,即 |
| 所有 100 个模型的平均值。 我们想要做的最后一步是去偏步骤。 所以我们要做的就是对待这个 |
| 平均模型作为增长率的预测指标。 |
| 所以在这里,你可以看到我们拥有的原始模型 |
| 有一个更陡峭的坡度,所以它有一个不错的 R 平方,但它没有我们希望的那么好。 我的意思是,即使有六次跑步……六次跑步也很合适,但是 |
| 如果我们能消除这种偏见,也许我们可以做得更好一点。 如此简单的设置。 我们只取增长率。 我们的回应是我们的 Y。 我们添加 |
| 集成模型在这里,所有这些的平均 |
| 单个模型,作为我们的预测器。 我们运行它,我们得到了一个结果,你可以看到它是一个更好的预测图。 如果我们在那里进行比较,您会发现消除这种偏见对积极的影响很大。 |
| 是的,所以在我把它交还给特伦特之前,我想再展示一个 |
| 幻灯片在这里,这基本上只是一个总结 |
| 我们... (在那里丢失了我的任务栏)......我们强烈鼓励你们使用 |
| 并查看此技术,但它并不是一种在任何情况下都有效的神奇技术。 但是当你在筛选设计和诸如此类的事情中检查这一点时,这可能是一个非常好的技术 |
| 帮助您完成使用标准建模技术可能无法完成的事情。 有了这个,我将把它传递给特伦特 |
| 关于如何做到这一点的更多细节以及 |
| 那里的信息。 所以特伦特,你想把它拿走吗? |
| 特伦特·莱姆库斯 | 是的,谢谢你,彼得。 我很感激。 |
| 所以 |
| 我正在分享我的 |
| PDF。 我只是想确保这实际上是共享的,并且每个人都可以看到。 |
| 彼得·赫什 | 是的。 |
| 特伦特·莱姆库斯 | 好吧太棒了。 所以 |
| 正如 Phil 和 Peter 介绍的那样,他们展示了案例研究,我认为这些案例是非凡的轶事,它们展示了 SVEM 的力量以及何时以及为何使用 SVEM。 |
| 我们为目前正在同行评审过程中的研究论文所做的是,我们进行了大量的模拟研究,以展示......以经验方式查看 SVEM 在预测环境中的表现。 所以 |
| 下一个……我有一系列幻灯片要展示。 我知道它可能会让人觉得有点无聊和枯燥,但我认为讨论细节是必要的 |
| 在我进入更有趣的事情之前,这是我们如何使用的一个例子...... |
| 我们如何使用 JMP、JSL 以及我如何运行模拟作为示例并向您展示一些输出的样子以及结果。 |
| 因此,首先,我们模拟研究的大纲和目标主要是 |
| 我们想创建真实世界的模拟架构。 因此,我们希望我们的模拟能够尽可能接近人类模拟真实世界的工业 DOE。 |
| 其次,我们想了解当代模型构建或当代模型选择技术以及 SVEM 在主要关注纯预测时的表现, |
| 干净利落。 所以我们想看看当我们将模型拟合到设计中时,它如何预测事实或一组数据,或者原谅我的口音,数据。 |
| 因此,如果我们可以在计算上可行的情况下尽可能多地模拟这些独特的运行,我们希望使真实世界的推理......我们希望......尽可能接近真实世界的结果,以便我们能够 |
| 规定设置以及在何处以及如何使用 SVEM,因为 SVEM 还处于起步阶段。 |
| 那么,首先,我们在模拟中使用了哪些设计? 我们使用了明确的筛选设计 |
| 我们使用了 Box-Behnken 设计,其中我们设计中潜在的真实生成模型是完全二次模型,或者更通俗地称为二阶模型。 我们选择这些设计的原因是因为 A) 对于最终筛选设计, |
| 您拥有的主效应越多,模型就越饱和,然后越饱和,这意味着主效应越高,您的自由度就越小。 而对于您的 Box-Behnken 设计和我们使用的主要效果, |
| 你不会遇到这种情况。 所以我们有一个......我们有两个场景之间的并列,一方面我们有 |
| 在应用模型选择技术时,我们的 Box-Behnken 设计有足够的自由度来估计我们的系数,在确定的筛选设计案例中,我们几乎有 |
| 在我们的大多数情况下,我们的设计都是超饱和的,所以我们的自由度不够。 所以换句话说,简单地说, |
| 我们无法估计使用当代模型构建技术时的所有影响,比如你的前向选择,比如你的套索,你的 Dantzig 选择器等等, |
| 这引导我们了解我们用于模拟的实际模型算法。 因此,对于 SVEM 模型,请记住,如果您... |
| 如果您对什么是 SVEM 没有很好的理解,那么回到 Peter 之前提到的一些演示文稿中是非常重要的。 |
| 但是我们必须将 SVEM 与基础模型构建技术一起使用,例如前向选择、前向剪枝和套索,这是我们用于模拟研究的方法。 |
| 在我们的非 SVEM 模型案例中,我们使用相同的模型构建算法,但我们也结合了 DOE 中非常流行的 Dantzig 选择器, |
| 以及适合的最终筛选设计,这与最终筛选密切相关;它不用于其他设计。 |
| 此外,我们使用称为 AICc 或修正 AIC 的信息标准,这在 DOE 中非常常见,实际上因选择非常简约的模型而臭名昭著。 |
| 所以,正如你所看到的,我们正在尝试结合在工业 DOE 使用中非常流行的当代技术,它坚持核心......我在最初的幻灯片中展示的核心点,即 |
| 我们希望通过我们的模拟研究尽可能接近人类地模拟现实世界,因此我们可以使这些经验... |
| 因此,我们可以凭经验评估这些不同的模型构建算法如何进行预测。 希望我们可以证明 SVEM 在经验上的表现或优于其竞争对手。 |
| 因此,对于实际的仿真结构,我们为每个模型构建算法运行了 1,000 次仿真。 例如,如果我们使用 AICc 拟合前向模型, |
| 这 1,000 次运行中的每一次,我们都会生成一个真实的模型,真相,然后我们会向其中添加噪声或。 |
| 高斯噪声(这在学术界和...进行研究时很常见), |
| 从而创建一个训练集(如果你愿意的话)和一个真相集,这样,一旦我们拟合了一个模型,我们就可以看到该模型如何预测真相。 我们随机重新运行和重新生成这些数据集 1,000 次。 |
| SVEM 超参数,我不会详细介绍它是什么,我们使用了 200 的 nBoot。 简而言之,我们基本上拟合了 200 个模型,然后对这些模型进行平均以生成最终的 SVEM 模型。 |
| 这些设计还迭代了几个功能。 所以主效应的数量 |
| 对于明确的筛选设计,我们有四个主效应和八个主效应。 对于 Box-Behnken 设计,我们有 |
| 三个主效应和五个主效应。 这意味着,举个例子,对于我们的 DSD,例如,当 K 是 8 时,你有 8 个主效应。 如果你有一个完整的二次模型, |