| 扬声器 |
抄本 |
| 比尔·沃利 |
大家好,我是JMP系统工程师Bill Worley。我在JMP工作了近七年。今天我们来聊聊 |
| |
光谱数据预处理,用于分析。之所以称之为“前传”,是因为我已经做过关于如何在 JMP 中分析光谱数据的演讲,但预处理是重要的第一步,我会向你解释其中的原因。让我们开始吧。 |
| |
那么我们来稍微谈谈摘要。光谱数据的预处理是准备数据(任何数据)进行分析的重要的第一步。 |
| |
我们可以和你谈谈……我们会回顾一下演示,并演示 JMP 中的标准正态变量和 Savitzky-Golay 平滑工具。这些预处理工具在整个过程中都相当标准。 |
| |
化学界、化学工业以及任何从事光谱学和光谱数据分析的人都知道…… |
| |
更多关于标准正态变量 Savitzky-Golay 及其应用的信息。因此,这又是帮助您根据原始光谱数据构建预测模型的重要第一步。 |
| |
因此,在了解一些背景知识后,光谱数据可能会非常混乱。预处理用于在构建这些预测模型或任何你可能想要构建的预测模型之前,进行平滑、过滤和基线校正。Savitzky-Golay 滤波和标准正态变量 |
| |
是一些工具……它们在 JMP 中使用。Savitzky-Golay 是 Ian Cox 开发的插件,所以……感谢 Ian 的贡献。标准正态变量需要…… |
| |
某种公式,我们会教你如何将其构建到JMP中。最后,图形生成器也是一个可视化光谱数据的宝贵工具,可以作为平滑数据的替代平台。 |
| |
但当我们进一步讨论时,我们会再次讨论这个问题。 |
| |
我们为什么要这样做?为什么要进行任何预处理?嗯,如果你看一下,首先,最上面的光谱,或者光谱组,那是100个光谱的原始数据,你无法真正区分它们之间的区别。 |
| |
你知道,100%淀粉或100%麸质的混合物。你可以看到一些区别,但你就是……你分不清哪个是哪个。嗯, |
| |
接下来我们进行 Savitzky-Golay 平滑和滤波,然后取一阶导数,这样就能得到一组更清晰的光谱, |
| |
分组很好,但仍然没有完全达到你想要的效果。最后,在进行标准的正态变量平滑之后,光谱会变得更加清晰,更容易看出峰值的位置。 |
| |
你可以看到不同光谱组中的差异。所以,红线、灰线、蓝线每条线都有20张光谱,这肯定清晰得多。你可以看到不同混合物的峰值位置。 |
| |
好的,Savitzky-Golay 滤波是一种数字滤波器,作用于光谱数据,用于平滑处理。它的优点在于不会改变整个光谱本身,包括峰值位置等等。所以它是一个很好的工具。 |
| |
它使用卷积进行平滑,并且基于线性最小二乘公式。 |
| |
一阶和二阶导数也是...您也可以从平滑信号中驯服它们。 |
| |
还可以过滤掉光谱两端不重要的数据。如果你遇到这种情况,一开始有一些不重要的数据,它只会在你继续前进时给你带来麻烦,另一端也一样。 |
| |
Graph Builder 允许您执行一些使用 Savitzky-Golay 无法执行的内部平滑或内部过滤。 |
| |
插件。因此,您可以将本地数据过滤器与图形生成器结合使用,并进一步定义感兴趣的领域。 |
| |
所以, |
| |
我们继续吧。Savitzky-Golay |
| |
分析是我们已经得到了……我们已经做了……如果我们做了那个分析,这就是一组光谱。所以我们得到了平滑的, |
| |
一阶导数,现在稍微延伸了一点。我们把零线放在那里。有了一阶导数,你就可以 |
| |
根据零点或零点交叉点判断峰值在哪里,对吧,这样你就能知道任何给定的峰值在哪里 |
| |
一组光谱,一组光谱。至于二阶导数,现在有点不同了。它有助于使基线平坦化,然后,如果你有重叠的峰,它可以帮助你 |
| |
进一步发展,或者更好地观察它们重叠的地方,然后从正值到负值,这可以指示重叠的峰值以及它们可能出现的位置。好的,这就是你如何使用这个工具。 |
| |
标准正态变量本身也是针对各个光谱的数据标准化。它可以单独使用,也可以作为附加的平滑工具使用,我们今天就将其作为附加工具使用。 |
| |
它被使用... |
| |
它用于基线偏移校正和全局强度变化校正。优点是,它可以消除基线变化,而不会改变光谱的形状,对吧? |
| |
关于数据,当我们这样做时你会看到,数据必须是堆叠的,好的。 |
| |
好吧,这只是其中一个公式 |
| |
可以用来建立标准正态变量公式,我会教你怎么做。有几种不同的方法,但有点复杂,我会教你怎么做。这里重点是 |
| |
我们这里有标准化列的标准公式,但我们必须确保使用它作为变量,也就是光谱本身。所以 |
| |
添加这个功能需要一些技巧。 |
| |
是的,如果它仅对原始数据进行标准正态变量,它看起来就会像这样。 |
| |
我们可以看到分组,可以看到事物如何爆发,但如果我们在计算一阶导数之后再计算标准正态变量,结果会更加清晰。这样就能更好地了解光谱在哪里,或者它们在哪里重叠,它们在哪里,你知道, |
| |
你可能需要做一点...二阶导数会发挥作用,你可能在这里有重叠的峰值,对吧, |
| |
也许还会回到这里。所以 |
| |
这才是真正帮助你更好地理解你所看到的东西的地方。那条零线,再说一遍,它表明,当你穿过这条零线时,它指向峰值,而峰值的位置是用一阶导数表示的。 |
| |
好的,让我们开始演示。 |
| |
好了,离开那里吧。 |
| |
那么,我们先来谈谈数据可视化……先说数据。记住,每当你得到一组新数据时,最好的做法就是把它拉进来,然后进行可视化。你知道,把这些数据画出来,更好地了解它是什么样子的,以及你面对的是什么。我们先从这里开始,把 |
| |
我们的麸质原始数据。好的,我们已经导入了数据。现在我们需要对其进行一些可视化,我们来……使用“图形生成器”。 |
| |
好的,我们要做的第一件事是, |
| |
把它往上移一点,转到原始数据。好了,现在我们要把它拉进来。 |
| |
这是点数据,也就是我们……在进行任何平滑处理之前,在进行任何其他操作之前看到的。这是线数据,如果我可以将其改为 |
| |
一个平行图,对了,它能提供光谱的线数据。同样,我们看不清那里发生了什么,但它能让我们更好地了解事情的走向。我可以把它…… |
| |
我们可以在这里做一些事情,比如……如果需要的话,你会看到它和其他数据合并了。但这并没有改变任何东西。它并没有像你在其他一些数据中看到的那样把所有数据整合在一起,所以我要关闭它。 |
| |
好的,我在可视化数据时喜欢使用的其他一些工具是模型驱动的多元控制图,我们先来做这个。 |
| |
因此,我们要分析、质量和过程以及模型驱动的多元控制图。 |
| |
将其向上移动。 |
| |
好的,我没有任何历史数据,所以我说“好的”。这样我们就可以看看数据,然后说“好的”, |
| |
我们可以看到光谱的分组,对吧。在大多数情况下,这……只是想指出这一点, |
| |
我们能够解释我们所观察到的大部分变异,至少能用两个主成分解释高达85%的变异,对吧?这是用这个???T平方 |
| |
我们在这里得到的信息。这也告诉我们,对于给定的光谱,哪些地方可能失控,对吧。为什么它和该组的其他部分不同? |
| |
如果我把鼠标悬停在其中一个点上,我就可以把它拉出来。如果我把鼠标悬停在一个失控的点上,我也可以把它拉出来。 |
| |
现在我们可以看到,哇,它们真的不一样。这个光谱有一些不同之处,我们可能需要更好地理解。在这个例子中,我们已经有了更好的理解,因为我们知道它们是混合物,但我们想看到这一点。 |
| |
我们把这个也拿出来。好,又是一个。所以在这三个光谱之间,我们得到了相当多样的混合。所以我们得到了三个……三个组,我们也可以把另外两个也放进去,看看。不过,我们现在就先这样吧。 |
| |
好的,这就是模型驱动的多元控制图。我喜欢用的另一个工具是……它属于多元方法,叫做多维尺度分析。 |
| |
我喜欢用它的原因是,特别是对于这样的系统, |
| |
我们有 |
| |
再次获取我们的原始数据,对,我们需要... |
| |
让我先设置一下然后我再告诉你。 |
| |
这里有两个维度,对吧,这只是基于我们之前看到的,但我喜欢用这个维度的原因是,它允许我们进行分组,或者可视化数据本身的分组。好的, |
| |
那就开始吧。这需要一点时间。 |
| |
我们可以看到,我们有五组不同的光谱,对吧?每一组都与一组淀粉和麸质的混合物有关。如果我在这里突出显示这一组,那就是第一组,也就是100%的淀粉。 |
| |
中间那组是50/50的混合,下面这组是100%麸质。对,它的作用是突出显示数据表中的数据,就像这里显示的那样,这样 |
| |
互动性也很好。这也表明,我们已经做得相当不错了……已经能够区分不同的群体。如果我们看一下谢泼德图, |
| |
我们有 1 的 R 平方和 |
| |
直线,好吧。这又是一个可视化的好方法,你还可以用它做更多的事情,不过我们留到下次再讨论。 |
| |
好的,到目前为止, |
| |
我们已经获取了数据,并将其可视化,现在我们需要进行一些预处理。 |
| |
我们要做的是,我或多或少有这些占位符,所以我们要做一些 Savitzky-Golay 分析,我们要做一些标准正态变异,至少在第一个导数上,好的。 |
| |
好吧,让我稍微清理一下。 |
| |
好的,关闭它。 |
| |
再次,我们将获取原始数据,并使用 Savitzky-Golay 插件进行分析。所以对我来说,这属于插件范畴。 |
| |
这是一个免费的插件,你可以下载,我们会把它发布给你。我们再次获取原始数据, |
| |
对了,如果你想了解更多关于 Savitzky-Golay 算法的内容,我们这里有一个维基百科链接,你可以参考一下。不过,我们会用它来平滑每个波长的数据,对吧,然后求一阶导数和二阶导数。我说,好的。 |
| |
好了,我们得到了平滑的数据。 |
| |
有一件事,你知道,你可以根据需要调整它,但我们想要做的是, |
| |
把窗户稍微扩大一点。 |
| |
好的。 |
| |
做那个。 |
| |
您可以在这里尝试多项式,多项式拟合的顺序。 |
| |
在这种情况下,用八阶多项式其实没什么区别。用第二个……二阶就足够了。好的,然后我们可以从一阶导数中获取数据。 |
| |
比如说保存平滑数据,对吧,我们可以把它保存回数据表。我已经做过了,所以不用再演示这个过程了,只要知道数据会从那里被保存回数据表就行了。 |
| |
让我们结束这个话题吧。 |
| |
好了,现在一切准备就绪,但接下来需要进行最后一步。那么,在进行下一步之前,我们先回顾一下 |
| |
我们的 Savitzky-Golay 数据。这是一阶导数数据。我想再次在 |
| |
图形生成器,对吧。你看……看起来不太有希望,但我们来做个平行图吧。 |
| |
让它变得更好一些。然后我们进行清理,然后进行组合尺度并行合并,这样数据就会变得更加 |
| |
视觉效果……比我们之前的视觉效果更好,对吧。我们可以试试……再试试这个,然后我们还可以在这里添加自己的零线,以便更好地理解峰值的交叉点。 |
| |
但那是一阶导数数据。你可以看到这些组,但它们并没有完全分开,就像你希望的那样,这样才能更好地理解。 |
| |
好了,设置完毕。数据又回到了数据表中。我要把它关闭,然后记得我说过,你必须把数据堆叠起来……才能得到标准正态变量,所以我们需要这样做。我们先在这里抽取一些数据。 |
| |
好吧,那么 |
| |
将所有这些子集取出。 |
| |
表。子集。 |
| |
所有行。选定列,然后点击“确定”。好了,现在我们可以开始操作了。 |
| |
正确的。 |
| |
嗯,至少……我们已经把数据分离出来了,对吧。现在我们要做的……是堆叠数据,对吧。再说一次,这是为了能够筛选出公式所需的所有数据。 |
| |
因此在 Tables.Stack 下。 |
| |
这些是我们正在堆叠的列。 |
| |
对,然后按行堆叠。 |
| |
我将选择我们想要保留的列。 |
| |
除此之外,之后, |
| |
抱歉……我只是想随便点点鼠标,搞定这个设置,不过你应该能理解。我会把这个留一会儿,让大家看看具体怎么做。所以我保存了它。 |
| |
你知道,现在看看无标题的 12。这就是我们的堆叠数据,对吧,现在我们可以执行标准正态变量。一个快速的方法是创建一个新列, |
| |
右键单击。 |
| |
我必须从这里,从公式编辑器中创建这个公式。我将使用一个名为 |
| |
列标准化,对吧。如果我把鼠标悬停在这里,你就能明白你正在做什么。标准化是什么意思,对吧?所以我们要…… |
| |
平均值为 0,标准差为 1,这就是我们试图通过数据和所有给定光谱得到的值。因此,我们需要将数据 |
| |
记得我说过,我们必须添加那个双变量,也就是光谱。我会说好的。 |
| |
好的,这给了我们一个数据集。现在有一个更简单的方法可以做到这一点,或者我认为更简单的方法,但它也可以…… |
| |
有时候会比较耗时。不过,如果我右键点击这里的光谱,再说一遍,记住,我这么做是因为我们需要一个双变量。所以我要去新建列信息,然后根据这个列进行分组。 |
| |
我要取出我的数据列,然后右键单击它,创建一个新的公式列。 |
| |
我们要转向分布式,记住,标准化。我们……所以我们想要那个 |
| |
平均值为 0;标准差为 1。选中它,然后就构建了新的一列。这样做的好处是数据匹配,所以我可以松一口气,因为我做对了。 |
| |
好的,我知道了。现在,这需要从这里开始,我要点击那一列, |
| |
我们把这些数据拆分开来,然后放回常规数据表或初始数据表中。我想用这个来向大家展示的是 |
| |
数据堆叠完成后,你就可以进行其他可视化了。如果我回到“图表生成器”,我想把这些数据 |
| |
进入 |
| |
是的,然后我会把标签拉过来,这很酷,可以看到所有变化在哪里。所以这些都是, |
| |
您知道,箱线图...您可以看到数据的变化,这是一种能够直观地了解正在发生的事情的好方法。 |
| |
图形生成器的另一个强大功能是,在这种情况下,数据必须堆叠才能实现这一点。现在,你还可以这样做 |
| |
如果你导入点数据,我们把它取出来,然后把点数据放进去,然后我们可以做一些平滑处理。现在这是一个单独的平滑,所以这是对所有数据的平均值。我们想要做的就是这样做 |
| |
Savitzky-Golay 平滑,所以我需要拉入 |
| |
叠加层,对吧。这就是所有数据。现在可能看不太清楚,但我要这样做,希望你能看到。如果我选择“平滑”,我们将切换到 Savitzky-Golay。 |
| |
好的,我想你...希望你看到了,现在那条线已经适合了,那条平滑线就在那里。 |
| |
这是另一种平滑数据的方法,使用 Savitzky-Golay 函数。然后你可以把它改成二次函数,在这里进行一些局部修剪,最后,你可以把它保存回数据表。 |
| |
我现在就到此为止。 |
| |
对了,记住,我们必须拆分这些数据,然后将其保存回数据表。我将放弃拆分步骤,然后直接返回到数据……原始数据表。 |
| |
我不需要那个。 |
| |
对,然后当我 |
| |
在“图形生成器”下再次查看数据, |
| |
我可以取这个标准正态变量组, |
| |
把它放进去。同样,看起来不太有希望,但我们会做平行图,然后右键单击。 |
| |
将这些比例结合起来。 |
| |
好了,我们的平滑处理基本完成了。一切设置完毕。我们还可以在这里添加一条零线。 |
| |
如果需要的话。我们继续添加它。 |
| |
零,我们会把它变成某种绿色, |
| |
有这个,添加一下。 |
| |
说好的,然后再一次,你会用它来帮助你找出你的峰值在哪里。 |
| |
根据我越过零点时的峰值最大值,好的。 |
| |
差不多就是这样了。我们回到我们的 |
| |
微软幻灯片软件。 |
| |
所以总而言之,预处理...我们需要预处理数据...预处理数据以使其更干净,使其更容易处理。 |
| |
哪里还有 JMP... |
| |
JMP 正在制作这个... |
| |
我们正在努力简化这一流程。JMP 16 中的预处理功能将通过插件和内置功能提供支持。 |
| |
我们期待 JMP 17 的预处理功能,它将在函数数据资源管理器中提供更复杂的光谱和基线平滑选项,以及一些峰值检测和选择。 |
| |
关于光谱数据分析,请……我在 2020 年为 Discovery 做过一次演讲 |
| |
慕尼黑。这是一次线上讲座,但它能让你很好地了解如何使用 JMP 分析光谱数据。 |
| |
最后,我要说声谢谢,希望大家觉得……这篇文章有用。请告诉我。 |