| 扬声器 |
文字稿 |
| 男性 |
大家好,我是 Martin Kane,来自 Exponent 公司。今天我来和大家聊聊如何处理异常数据的剂量反应曲线拟合问题。 |
| |
我现在正在参加2020年JMP探索峰会。首先,我要感谢会议顾问委员会邀请我做这次演讲。 |
| |
我非常感谢有机会分享我通过JMP学到的知识。我每天都会使用JMP。 |
| |
作为一名顾问,它成了我进行分析的主要工具。这是我最近一直在研究的东西,我觉得值得分享。 |
| |
那么,让我们开始吧。首先, |
| |
免责声明:这些幻灯片中的观点属于我,Martin Kane,并不一定代表我的公司Exponent的观点。 |
| |
综上所述, |
| |
我们今天要讨论什么?什么是剂量反应模型?它们通常呈现什么样的形状?典型的统计模型有哪些? |
| |
如何在 JMP 中访问这些模型?曲线拟合和非线性模型之间有什么区别?它们各自的优点和缺点是什么?我会花些时间详细讲解这方面的内容。 |
| |
我们还会讨论初始值,以及对于这些非线性模型而言,拥有良好可靠的初始值的重要性。 |
| |
我有一个演示,接下来我会用演示中的数据来分析数据中的异常行为。这是什么意思?我们可以使用 JMP 中的曲线拟合和非线性处理功能来解决这个问题吗? |
| |
好的。 |
| |
剂量反应模型。因此,它们既可以采用线性形式,也可以采用非线性形式。 |
| |
不过,典型的模型是基于我们所说的3参数、4参数或5参数逻辑模型。这些模型非常典型,而且有很多种;并非只有三种。 |
| |
那么这些模型的形状是什么样的呢?显然是线性的,线性,抱歉,就是一条直线,就是一条标准的回归线,我们已经绘制了…… |
| |
某种响应浓度通常与……我们的对数浓度在 x 轴上与 y 轴上的关系,这是一种响应。 |
| |
我会在下一张幻灯片中详细讨论这个问题,但通常情况下,这是基于某种荧光原理。 |
| |
而且这些数值的范围可能相当大。因此,取这些数值的对数也很常见。 |
| |
我们可以使用指数型模型。这种模型可能适用于剂量反应曲线的某些部分,但通常不足以描述整条曲线。但更常见的是某种形式的…… |
| |
某种参数逻辑函数,这个例子展示的是四参数逻辑函数,即希尔函数。它也可以略微改写为罗德巴德函数。 |
| |
有几个不同的版本都具有相同的大致形状,其中有一些上渐近线,一些下渐近线。 |
| |
有一个 |
| |
这条曲线上的中心点,位于上渐近线和下渐近线的中间位置,我们称之为 EC50 或 IC50。 |
| |
值。这个点位于 x 轴上,这就是我们使用它的方式。然后,这条曲线还有斜率,这个斜率位于这段线性部分。它并非完全线性,但非常接近线性。 |
| |
斜率是第四个参数,也就是这个方程中的一个参数。 |
| |
d 是上渐近线,也就是顶部;c 是下渐近线,也就是底部; |
| |
我之前提到过,a 是斜率;b 是 IC50 或 EC50 值,也就是中点,对应的 x 轴浓度。所以这就是一个典型的四参数逻辑函数的方程。 |
| |
好的。在生物制剂和制药领域,许多标准测试方法都是基于所谓的检测方法。 |
| |
而检测本身只不过是生物制剂或药品的测试方法。在这个例子中,我们看到的是一块标准的96孔板。 |
| |
这是用于这类检测的。这些小圆圈实际上代表一个孔,也就是塑料板上可以放置样品的凹槽。 |
| |
这样我们就可以填满所有96个孔,这些孔的底部会涂有某种结合剂,并带有某种荧光剂。 |
| |
其中也含有这些物质。因此,一旦将它们置于特定波长的光下,它们就会发出荧光。根据结合程度的不同,你会得到不同的荧光值。 |
| |
就像我刚才说的,这些荧光值可以从10到10万,甚至可能达到100万。这取决于测量格式。不过,它的确可以非常大。 |
| |
不过,通常情况下,我们会在一块板上放置七八种不同浓度的曲线,而这条曲线就是: |
| |
正如我们在上一张幻灯片中展示的那样,代表了单一材料的不同浓度。 |
| |
通常我们从培养板的顶部开始,放入最高浓度的溶液,然后逐步将该浓度稀释到下面的孔中。 |
| |
所以,如果顶部的初始值为 16,我们可能会采用 4 比 1 的串行解决方案。这样,下一列就有 4 个元素,下一行就有 1 个元素,抱歉, |
| |
四分之一、十六分之一,以此类推。这样我们就得到了一系列稀释的样品,它们依次排列在微孔板上。通常会有重复的样品,所以第五列和第六列可能含有相同的样品,只是重复了两次,这样做是为了使我们的曲线具有一定的变异性。 |
| |
此外,在对生物制剂或药物进行检测时,我们通常会同时测试多个剂量。 |
| |
所以关键在于,在同一盘子上,同时,当我们有各种剂量需要相互比较时。 |
| |
例如,第 11 列和第 12 列可能对应一种剂量,假设为每公斤 1 毫克,而第 9 列和第 10 列可能对应另一种剂量,比如每公斤 0.1 毫克。我们可能想要同时比较这两种不同的剂量。 |
| |
另外需要提到的是,JMP 能够测试所谓的并行性。我稍后会详细介绍。JMP 内置了一些函数,可以使用 F 检验或卡方检验来测试并行性。 |
| |
好的,让我们用 JMP 查看一些数据,然后直接进入正题。 |
| |
好了,我们开始吧。左边这里是我用来演示的JMP日志。这个日志是用于非线性生物测定材料和异常数据的。 |
| |
正如我之前提到的,我将要讨论的两个平台分别是曲线拟合平台和非线性平台。那么,我们开始吧。 |
| |
打开我们的示例数据。我们来调出一些示例数据。我最初想使用客户的真实数据,但他们拒绝了。 |
| |
但是JMP内置的生物检测样本数据集里的数据完全没问题。它和我原本要用的数据非常相似,我们可以直接用它。 |
| |
首先,我们来看看我们有什么。正如我提到的,我们这里有一些浓度,也就是系列稀释液。在这个特定的例子中,看起来每个 |
| |
下一行是上一行的四分之三。浓度呈对数关系。这其实就是浓度的十进制对数。 |
| |
配方看起来有多种形式,或者也可能只是剂量。毒性,可能是 y 值,我们的响应可能是荧光或对数荧光,诸如此类。所以如果我们用以下方式查看这些数据…… |
| |
图形生成器,因为这样比较简单,我们就把毒性放在 y 轴上,也许把对数浓度放在 x 轴上。 |
| |
我们可以看到,它与我之前提到的四参数逻辑函数非常相似,只是方向相反。这不成问题。 |
| |
所使用的三次样条曲线与数据拟合得相当好。我们可以去掉它,只查看数据本身。 |
| |
显然,这里有很多数据。看起来每个浓度都有四个数值。哦,还有一种配方我们还没讨论过。 |
| |
然后,我们可以利用这些数据在图形生成器中进行各种操作,对吧?我们可以把它放在 y 组中,这样就能得到四条不同的曲线。我们来使用三次样条曲线。 |
| |
标准、测试 A、测试 B 和测试 C。 |
| |
现在你可以更改颜色了。由于我们只拟合了一条曲线,所以这些颜色不太容易看清。我们也可以把它放到叠加区域。 |
| |
这是我最常用的区域,它的作用是为我的各种公式分别拟合一个单独的三次样条曲线。 |
| |
这挺不错的。我们可以看到,其中三个非常相似,只有一个例外。绿色的那个。绿色的那个是测试B。 |
| |
好的,我们记住,测试 B 与其他测试不同。标准只是正在研究的各种配方之一。所以看起来他们试图将三种不同的测试与标准进行比较,也就是…… |
| |
有意思。好的,那我先结束这个话题了。 |
| |
对于这些非线性数据,我们有哪些曲线拟合函数?在“分析”菜单下的“专用建模”中,我们可以使用两种函数。一种叫做“曲线拟合”,另一种叫做“非线性拟合”。这两种函数都适用于非线性数据。 |
| |
我们先从曲线拟合函数开始。 |
| |
所以在曲线拟合中,我们希望将某种 y 响应变量(毒性)作为自变量,将对数浓度作为回归变量。最初,如果我直接说好的, |
| |
我们看到的结果和图表构建器里的结果一模一样。唯一的例外是,我可以来到红色三角形下方。 |
| |
线性、二次、三次等等。S形曲线 |
| |
逻辑回归、概率单位法、贡珀兹回归。它不会告诉你这些函数到底是什么样子,也不会告诉你它们的方程是什么。你必须知道哪个函数才是正确的。而我恰好知道我想要的是希尔函数。 |
| |
而这其实就隐藏在这些S型曲线和逻辑曲线中,这里是拟合四参数Hill逻辑曲线。这就是我想用的函数。 |
| |
我点击它之后,会看到和我在图形生成器中看到的内容非常相似的东西,只不过现在底部还有参数估计值。 |
| |
记住,我们有下渐近线;上渐近线;增长率,也就是斜率; |
| |
拐点,也就是 EC50 值,是 x 轴上顶部和底部中间的点。这些是估算值。这很好,但我真的想要每个参数的单独图表。 |
| |
不同的 |
| |
配方,所以我要重做一遍。我要重新开始,但这次我要添加配方。现在我可以把配方放在“按类别”或“分组”类别中。如果我放在“按类别”中,然后点击“确定”, |
| |
我得到了四条独立的曲线。这还不错。如果我按住 Ctrl 键并点击其中任何一条曲线旁边的红色三角形,然后选择 sigmoid 逻辑函数、4 参数 Hill 函数, |
| |
它实际上会分别对这四个测试拟合曲线,并给出每个测试的估计值。所以第一个测试,一个标准;这是测试 A, |
| |
它的估计结果;还有测试 B 及其估计结果。注意渐近线不同。还有测试 C。这不错,但仍然不是我想要的。 |
| |
所以,我打算结束这个话题了。我打算…… |
| |
重新启动分析,但这次,我要把公式放到分组类别中。这样做之后,我看到四个函数都重叠在一起了。我可以点击这里,选择 sigmoid、logistic 和 4 参数 hill。 |
| |
现在,图表中显示的是四条不同的曲线拟合线相互叠加在一起。 |
| |
我也可以在这里获取这四个参数的估计值。所以这些应该和我们在上一个屏幕上看到的结果完全一样。 |
| |
但现在我可以直观地看到,把这四个图表叠加在一起,看看它们看起来如何。它们看起来相似吗? |
| |
所以,这,这相当不错。 |
| |
我的意思是,这或许足以满足你的需求。如果你想从这个特定参数中提取这些估计值…… |
| |
对于参数估计值,我可以右键单击它,然后选择“转换为数据表”,这样我就可以将这个包含估计值的数据表用于其他用途,并可以对它进行任何我想要的操作。 |
| |
知道了,这很有用。我就说到这里吧。 |
| |
那么我们快速看一下非线性平台。分析,专门建模,非线性。这看起来很相似。如果我把毒性作为 y 响应,把制剂作为分组,把对数浓度作为 x,然后我说,好的。 |
| |
我明白了,哦等等,这说得通……这里写的是拟合曲线。我们刚才是不是画了一条拟合曲线?没错,我们确实画了。这跟我在这里,在“分析”、“筛选”、“拟合曲线”下,我说“回忆”,然后我说“好的”是一样的。 |
| |
它们完全相同。如果我在非线性平台不做任何特殊操作,最终都会进入拟合曲线平台。那么,除了专门的非线性建模之外,我们还能做些什么呢? |
| |
我会看到召回功能将所有内容都拉回来,请注意左侧有一个模型库。还要注意,这里的 x 可能是一个预测公式,而不仅仅是 x 值。 |
| |
所以,如果我点击模型库,就会有很多模型可供选择。再次强调, |
| |
我不太清楚这些是什么。但是请注意,如果我点击其中一个,就能得到一个函数,我甚至可以说“显示图表”。它会给我显示一张图片。哦,这看起来有点像我想要的。但是它的方向好像反了。所以, |
| |
这个,这个或许适合我。嗯,但我没在这里看到希尔函数。我看到了罗德巴德函数。那是五参数的,理查德。它在哪儿?罗德巴德模型在这里,很相似,但里面完全没有希尔函数。所以它并不完全符合我的需求。 |
| |
但它确实允许我做一些事情。非线性平台允许我做的一件事就是 |
| |
它让我能够真正地 |
| |
自行指定参数并锁定它们。 |
| |
那我这话是什么意思呢?嗯,假设我打开模型库,选择逻辑回归模型,4个参数。然后我说, |
| |
这是配方吗?这里涉及毒性。这里涉及浓度对数。哎呀。 |
| |
这里是配方对数浓度,我说,好的,这是标准值。 |
| |
好的。 |
| |
它确实使用了一个函数来拟合 4 个参数,但这并不是我想要的函数。 |
| |
你知道,这其实还不错。但是你看,我可以用滑块来调整这些不同的参数。这挺有意思的。 |
| |
所以我可以说“创建公式”,它实际上在我的数据表中添加了一个公式。如果我看一下这个公式,它在这里,它有参数和初始值,而且它有一个很长的等式,所有四个参数都符合公式的要求。 |
| |
所以,我现在可以回到这里,把它输入到我的 x 预测器中,然后说好的。 |
| |
它会弹出窗口,显示这四个函数以及它们的初始值。如果你点击“运行”,它就会尝试拟合这些函数。 |
| |
请注意,实际上只用了四次迭代就把它们都匹配上了。速度相当快,要知道限制是 60 个,它不仅匹配了,而且匹配效果很好。不过请注意,我在这里可以进行更改,我可以通过下面的滑块进行更改。 |
| |
好的。 |
| |
或者我可以在这里使用实际值进行更改……我可以输入实际值,但我也可以更改当前值并锁定它们。这会非常有用,接下来我将用我那不规范的数据来演示一下。 |
| |
我要结束这个环节,我要关闭、删除这一列。 |
| |
好的,我们现在有了这份数据集,也就是我们最初的数据集。接下来,让我们看看那些出现异常的数据。 |
| |
我要做的就是删除每隔一行的数据以及所有低浓度数据点。所以我要按下这个按钮,精简数据并删除最低值。每隔一行的数据都删除了,现在它会删除所有最低值。 |
| |
那么,这究竟会对我们的数据产生什么影响呢?我们来看一下。我们快速切换到拟合模型,特别是拟合曲线,抱歉,是拟合曲线。回顾一下。 |
| |
我们现在只有曲线上最高的五个点。如果我在这里说拟合曲线,然后我分别用S形函数、逻辑函数……S形函数、逻辑函数、希尔函数。 |
| |
它实际上分别对这五个数据点拟合了曲线。但请注意,我把这个点提出来,然后又用这种方式导出。 |
| |
注意看,我这里的下渐近线彼此完全不同。还有第三条。如果我继续往下算,最终会到达第四条,它位于很低的位置,大概在-80附近。所以,这里有四条完全不同的下渐近线。 |
| |
所以这完全说不通,对吧?它和曲线的上半部分很贴合,但下半部分却完全不贴合。上半部分看起来不错,但下半部分却不行。 |
| |
因此,与其进行推断,我们通常在进行这些检测时, |
| |
客户或用户会做的就是在孔板上放置空白对照,也就是故意放置浓度为零的样品。这通常是检测本身包含的某种背景物质。 |
| |
而在这个特殊的案例中,我碰巧知道使用了空格,正如我在这里所说,这些空格的平均值为 0.5。 |
| |
所以平均值是 0.55。所以实际上,当我们达到 0.55 时,所有较低的渐近线都应该下降到 0.55。 |
| |
但是我不能,我无法在拟合曲线平台上更改它。啊,不过我可以在非线性平台上更改。 |
| |
但是我的非线性平台中没有 Hill 函数,所以这就有点令人困惑了。 |
| |
但我们可以解决这个问题。使用厚曲线平台,一旦我拟合了我的模型(逻辑 4P Hill 模型),我就可以保存一个公式。 |
| |
我可以保存预测公式,也可以保存参数预测公式。 |
| |
这里存在区别。预测公式会原封不动地保存这些函数,而参数预测公式则略有不同。在这个特定例子中, |
| |
这是参数预测公式。我们来看一下,它展示了以下四个方程。 |
| |
正如我所料,如果配方是标准的,就用这个;如果是测试 A,就用这个。下面是所有参数。实际上,如果你看一下这个,如果我把它复制粘贴到另一个文档里…… |
| |
我很快就完成了操作,然后我走到这里,说“文件,新建,不好意思……文件,新建,新建日志可以吗?” |
| |
杂志 |
| |
行不通。没关系。 |
| |
那么,我们开始吧 |
| |
有了新的脚本。 |
| |
粘贴。好了。注意顶部显示的是我所有的参数。 |
| |
最底部其实是公式……就是我们刚才在右边看到的那个公式。所有参数都在这里,但这些是函数本身的初始值。我只是想展示一下,因为如果你不了解这些参数,它就有点隐蔽了。 |
| |
但有了这个,我现在就可以过来了…… |
| |
过来(让我先解释一下。抱歉。)进行分析,专门建模,非线性,我可以在我的 x 值中使用这个预测器。 |
| |
我的 y 可以是我的毒性;配方是我的组,我可以说好的,现在这是每条曲线的五个数据点。 |
| |
图表看起来有点奇怪,但请注意,我仍然可以修改它们。我知道 c 参数是我的下渐近线。所以我可以把它们都改成 0.55 并锁定这个值。 |
| |
所以是0.55。 |
| |
这样做,你会发现曲线实际上发生了变化。虽然还没有完全拟合它们,但它允许我们强制使用我们认为正确的值。 |
| |
所以我想提出这一点,并把它带过来。你会看到 |
| |
它将所有下渐近线的值都设为了 0.55。现在我可以点击“开始”按钮,这实际上就是接下来的拟合过程。 |
| |
你可以看到,仅仅经过七次迭代,它就将其余参数拟合到这四条曲线上,使得下渐近线均为 0.55。 |
| |
太好了。这正是我在这种情况下想要的。所以,再次点击红色三角形,我就可以保存公式了。 |
| |
在这种情况下,我无法保存参数预测结果。我只能保存该预测结果,但我可以这样做。所以我可以在这里使用它。那么我可以在哪里使用它呢? |
| |
记住,我说过,如果我来到图表构建器这里,并将毒性作为 y 轴;对数浓度作为 x 轴; |
| |
配方,或许在我的叠加图中,我看到的是这样的。我也可以把它带过来。 |
| |
公式……公式……没错……没错……就是公式本身。有时候这很有用。在这个例子里,它们看起来真的非常非常相似。我可以做的就是从我的点上去掉曲线,然后把平滑器应用到公式本身。 |
| |
所以这就是方向。实际上,这些曲线属于函数本身,而不是平滑器生成的。因此,即使数据本身存在异常,这也是一种展示该数据集正确曲线的方法。 |
| |
我之所以说它行为不端,是因为我们没有更低的渐近线,但我们有其他东西可以代替它。 |
| |
这就是我想给你们看的。我觉得这真的挺酷的。关键是, |
| |
你必须能够在粗曲线平台和非线性平台之间来回切换,或者有时你必须这样做,才能真正从 JMP 中获得你想要的结果。 |
| |
这确实是你需要的功能,但我认为这个功能非常棒。例如,你可以清除行状态,还可以显示所有数据(我应该把这部分总结起来,但我没有),各种配方和叠加显示,以及对数浓度。 |
| |
这是曲线图,但实际上你也可以用预测公式来代替。 |
| |
得到你想要的实际公式。这真是太好了。 |
| |
这并不是人们经常谈论的话题。 |
| |
链接,这是 Mark Bailey 和其他人两年前在 JMP 讨论中发布的一个博客链接,其中描述了这种方法,很多这种方法。 |
| |
我昨天才发现,其实我自己早就弄明白了,但我觉得值得和大家分享,教大家如何拟合这些非线性模型,尤其是在剂量反应领域。 |
| |
这些不同的生物制剂都是药品,尤其是在最近大家都在讨论新冠肺炎疫情的情况下,而且这个领域也正在开展大量研究。因此, |
| |
我想说声谢谢。最后,我还有一些联系方式。我在JMP论坛上的用户名是Martin,我经常在那里发帖。 |
| |
我的邮箱地址也列在下面,如果您有任何问题,欢迎随时联系我。非常感谢您的时间,我很乐意回答任何问题。谢谢! |