介绍
稳定性分析最近成为热门话题。老实说,我不知道为什么,但我收到的电子邮件数量之多令人难以置信。稳定性分析问题的一个共同点是随机批次稳定性分析的问题。这些问题往往是这样的:“我们能否在 JMP 中研究产品的稳定性(或保质期),并在研究中考虑多个随机选择的批次的影响?”
简短的回答是可以的,我们可以,不过要借助一点数学的帮助。
通过 GIPHY
但不要害怕!所讨论的数学问题可能看起来很可怕,但事实并非如此。我很友善地将其制作成插件来提供帮助。因此,如果您愿意,您可以直接跳到最后,我会向您展示插件,并继续了解我们使用的数学知识已在此处记录。现在这是一个令人高兴的想法,不是吗?
所以,让我们给我们的数学焦虑一块饼干,然后把它赶到床上,同时我们看看如何处理这个非常有趣的问题。
为什么这是必要的?
首先让我们考虑一下我们所说的内容。稳定性或保质期分析基本上是对有机分子(如药物或食品)随时间降解趋势的一种对冲。它处理的问题是:“在产品失去预期的功效水平或变得无法出售之前,我可以接受多少降解?”(旁注:我将在制药开发的背景下阐述这一点,但这些概念适用于许多不同的领域。)挑战来自于这样一种想法,即我们通常认为我们必须在产品开发的不同阶段以不同的方式处理这个问题。(事实比这更微妙一些,但让我们暂时将其用作工作假设。)
当产品是新产品时,我们可能没有很多批次的材料,因此我们必须从同一批次中抽取多个样品并进行长期跟踪,以确定对产品稳定性的初步猜测是否有效。在产品从开发阶段转向生产阶段时,我们有更多机会从不同批次中抽样。这很好,因为它可以更真实地反映材料的行为,但会以批次间或批次间差异的形式引入复杂性。因此,我们需要在产品生命周期的不同阶段采用不同的方法来处理问题。
对于第一种情况,我们有一个工具(目前位于降解平台中),该工具遵循 ICH 指南( 链接)进行单批次稳定性研究。
对于第二种情况,批次间差异意味着我们必须使用 JMP 中一种称为混合模型的特殊模型。如果这听起来很可怕,请深呼吸,没关系。混合模型可能是您遇到的最直观的模型类型(概念上)。数学有点复杂,但从概念上讲,人类天生就以接近混合模型的方式看待世界。
批次稳定性混合模型
让我们从一个简单的例子开始:如果我们有 10 袋来自同一生产设施但不同时间点的饼干,我们会期望这些饼干在一定范围内具有一致的属性。最后一点就是混合模型的用武之地。如果我们不关心总体趋势变化的原因,我们可以将它们归为一类,并期望一些饼干会比其他饼干好一点。但是,如果我们想研究这些变化来源(例如,使用了哪种烤箱、配料供应商等),我们可以将它们作为固定效应包含在模型中。就饼干袋本身而言,我们不关心我们抽出的 10 个特定袋子,但我们确实想用它们来估计生产中所有袋子的变化,因此我们使用一个模型组件来表示这种随机效应。
让我们转到一个生物技术示例。如果我们批量生产一些材料或药物,并且这些批次的原料存在差异,我们预计批次之间会存在一些细微差异需要处理。
在传统模型中,我们将该变化集中到模型的误差项 (ϵ) 中:

对于混合模型,我们试图找出这些随机效应的贡献,以便更好地了解变异性的来源。您可能之前已经看到过这些想法,因为它们在设计实验中显示为使用 REML(限制最大似然)拟合方法的随机因素;错误地定义变异性会导致不准确的统计测试,从而导致糟糕的业务决策。

保质期和混合模型
那么这一切与保质期计算有什么关系呢?好吧,为了确定保质期,我们收集样品中活性成分的降解或杂质随时间增加的数据,并使用这些数据开发一个简单的线性模型。(旁注:在研究非线性模型时,这个领域还有另一组问题,但这次我们不讨论这个问题)。然后,我们使用线性模型来推断感兴趣的参数何时超过预定的规格限值,例如,当活性成分太少或杂质太多时。
对于我们监测活性成分的单批次情况,我们只需从该批次中挑选表现最差的样品,并使用其拟合线上的较低置信区间来设置保质期。对于那些不熟悉 ICH 指南的人来说,协议中还内置了一些关于样品相似性的额外统计检查,我在这里就不讨论了。
对于多批次的情况,我们将做一些类似的事情。但我们将使用混合模型来跟踪批次之间的差异,并使用单个模型来处理整个数据集。我们将假设批次间差异通常围绕某个平均行为分布。如果我们使用该假设,我们可以使用一些偏移量来访问计算保质期所需的方程,同时考虑批次间差异。让我们开始吧(或者如果你想跳过数学,你可以直接跳过下一部分 - 你自己决定)。
警告!这里有...数学!!
建立决策线
我们将首先在 JMP Pro 中运行混合模型来构建决策线。混合模型是“拟合模型”(分析 > 拟合模型)中可用的模型之一。

一旦我们完成设置,模型效果区域将变为有三个选项卡。我们只关心前两个。我们将通过将感兴趣的变量添加到 Y 字段来开始设置。接下来,我们将时间变量添加到“固定效果”选项卡,就像您之前可能构建的传统模型一样。

最后,我们将转到“随机效应”选项卡,并将批次或批号变量添加到随机效应中。通过这样做,我们通过引入随机截距来消除批次间差异。我们还将考虑批次可能随时间以不同速率降解的可能性(即,时间测量的斜率不同),因此我们将允许随机斜率。为了解决这个问题,我们将在“列”列表中选择时间和批次变量,然后单击“随机效应”选项卡中的“交叉”。我们要做的最后一件事是设置模型的 alpha 级别,该级别在红色三角形菜单下设置。如果您想要 75 百分位数,则将 alpha 设置为 0.25。完成后(如果您正在关注),它应该看起来像这样:

然后我们点击运行。在切换到“即插即用”模式之前,我们需要做的最后一件事是转到红色三角形菜单并选择 LRT > 协方差和相关矩阵 > 所有参数的协方差。
好消息是,我们现在已经完成了“繁重的计算”,我们需要的所有值都在混合模型报告中。我们可以提取它们来创建决策线。决策线只是均值模型的 n 分位数线的置信区间(即基于模型设置对话框中设置的 alpha 水平的 75 百分位数线)。因此,我们从拟合的均值模型开始:

β 估计值可以在报告中的“估计值”栏中找到:

然后,我们修改该线并进行偏移,以考虑随机效应所代表的批次间差异,以及我们想要作为保质期依据的分位数。我们将分两步进行,以便您了解所有内容的来源:
首先,让我们取均值线并展开误差项(ϵ):

请注意,我们所做的只是提取几个术语(
) 从第一个方程中的 ϵ 中得出。第一个新项 (
) 是随机截距,第二项 (
)表示随机斜率。关于我在这里使用的符号,有一点需要注意:固定效应(我们可以控制的事物)将使用希腊字母(例如,
)和随机效应将使用拉丁字母(例如,
)。
第 2 步是通过每个变异源的贡献来抵消均值线(
下式中的项)并根据所需分位数的 z 分数进行缩放(
)。它使方程式看起来稍微复杂一些,但这些都只是您在报告中查找的估计值(位置可以在下面的屏幕截图中看到)或 JMP 可以为您计算的估计值:

我们发现这些 sigma 平方项(
) 在报告的方差成分部分的估计列中:

最后,我们需要在该线上建立一个置信区间。当它以符号形式呈现时,看起来有点复杂:

方差项:

通过 GIPHY
但所有这些偏导数都会分解为常数或简单的线性项。每个 sigma (
)或 psi(
) 只是我们在报告中打开的协方差矩阵中找到的方差或协方差。通过替换和合并项,方差项如下所示:

所以当你把所有这些加起来并放回到
,你得到的基本上是一个带有大量常数的简单多项式。
如果您想尝试用手写方式完成这项工作,那就很烦人了,但如果您想编写分析代码,那就很方便了。所有这些都可以分段完成,最后再加起来。
在 JMP 中构建一切
如果您已经了解过数学,欢迎回来!
好消息是,正如我多次说过的那样,JMP 混合模型报告中提供了为特定研究制定决策线所需的每个数字。只需将它们拉出来、插入,然后查看决策线与感兴趣的规格限值相交的位置即可。您可以手写,但就像我在开始时说的那样,现在有一个插件。您可以在这里找到它: 随机批次保质期/稳定性分析。我没有加密代码,以便您可以四处查看并了解我在其中所做的事情。
