介绍
稳定性分析最近成了一个热门话题。说实话,我也不知道为什么,但我邮箱里收到的邮件数量之多,实在令人难以置信。关于稳定性分析的一个常见问题是随机批次稳定性分析。这些问题通常大致如下:“我们能否在 JMP 中研究产品的稳定性(或保质期),并在研究中考虑多个随机选择的批次的影响?”
简短的回答是可以的,我们可以,不过需要数学的一点帮助。
通过 GIPHY
不过别担心!这道数学题可能看起来很吓人,其实不然。我很好心地把它做成了一个插件来辅助解答。所以,如果你愿意,可以直接跳到最后我演示插件的部分,继续往下看,因为我们用到的数学知识都记录在这里了。想想就觉得很开心,不是吗?
因此,让我们给我们的数学焦虑一块饼干,然后把它赶到床上,同时我们看看如何处理这个非常有趣的问题。
为什么这是必要的?
首先,让我们思考一下我们所说的内容。稳定性,或者说保质期分析,本质上是对有机分子(如药物或食品)随时间降解趋势的一种防范。它处理的问题是:“在产品失去预期功效或变得无法销售之前,我能接受多大的降解程度?”(附注:我将以制药开发的视角来阐述这个问题,但这些概念适用于许多不同的领域。)挑战在于,我们通常认为在产品开发的不同阶段,我们必须以不同的方式处理这个问题。(事实可能比这更微妙,但我们暂时以此为假设。)
当产品是新产品时,我们可能没有很多批次的材料,因此我们必须从同一批次中取样并进行长期跟踪,以确定对产品稳定性的初步估计是否正确。随着产品从开发阶段进入生产阶段,我们有更多机会从不同批次中取样。这很好,因为它可以更真实地反映材料的行为,但也引入了批次间或批次间差异的复杂性。因此,我们需要在产品生命周期的不同阶段采用不同的方法来处理这个问题。
对于第一种情况,我们有一个工具(目前位于降解平台中),该工具遵循 ICH 指南( 链接)进行单批次稳定性研究。
对于第二种情况,批次间差异意味着我们必须在 JMP 中使用一种称为混合模型的特殊模型。如果这听起来有点吓人,那就深呼吸一下,没关系。混合模型可能是你遇到的最直观的模型类型(从概念上来说)。虽然数学上可能有点复杂,但从概念上来说,人类天生就以一种接近混合模型的方式来看待世界。
批次稳定性的混合模型
让我们从一个简单的例子开始:如果我们有 10 袋来自同一生产设施但不同时间点的饼干,我们预计这些饼干在一定的变异范围内具有一致的属性。最后一点就是混合模型的用武之地。如果我们不关心导致总体趋势变化的原因,我们可以将它们混为一谈,并预计一些饼干会比其他饼干好一些。但是,如果我们想研究这些变异来源(例如,使用了哪种烤箱、配料供应商等),我们可以将它们作为固定效应纳入模型。就饼干袋本身而言,我们并不关心我们抽出的 10 个特定袋子,但我们确实想用它们来估计生产中所有袋子的变异性,因此我们对这种随机效应采用了模型分量。
让我们换一个生物技术的例子。如果我们批量生产某种材料或药物,而这些批次的原料存在差异,我们预计批次之间会存在一些细微的差异。
在传统模型中,我们将该变化归入模型的误差项(数学
:(
在混合模型中,我们试图找出这些随机效应的贡献,以便更好地理解变异性的来源。您可能之前就见过这些想法,因为它们在设计实验中以使用 REML(限制最大似然法)拟合方法的随机因子形式出现;错误地定义变异性会导致统计检验不准确,从而导致糟糕的业务决策。

保质期和混合模型
那么,这一切与保质期计算有什么关系呢?为了确定保质期,我们收集样品中活性成分的降解数据或杂质随时间推移的增加数据,并利用这些数据建立一个简单的线性模型。(附注:在研究非线性模型时,这方面还有另一组问题,但这次我们不讨论这个问题)。然后,我们使用线性模型来推断目标参数何时超过预定的规格限值,例如,当活性成分过少或杂质过多时。
对于我们监测活性成分的单批次情况,我们会从该批次中挑选表现最差的样品,并使用其拟合线上的较低置信区间来设定保质期。对于不熟悉 ICH 指南的人士,方案中内置了一些关于样品相似性的额外统计检验,我在此不再赘述。
对于多批次的情况,我们将进行类似的操作。但我们将使用混合模型来追踪批次间的差异,并使用单一模型来处理整个数据集。我们假设批次间的差异通常呈正态分布,并遵循某个平均行为。如果采用该假设,我们可以使用一些偏移量来构建计算保质期所需的方程,同时考虑批次间的差异。让我们开始吧(或者,如果您想跳过数学部分,可以直接跳过下一部分——您自己决定)。
警告!这里有……数学!!
建立决策线
我们将首先在 JMP Pro 中运行混合模型来构建决策线。混合模型是“拟合模型”(分析 > 拟合模型)中的可用选项之一。

设置完成后,模型效应区域将变为包含三个选项卡。我们只关注前两个。首先,我们将目标变量添加到 Y 字段。接下来,我们将时间变量添加到“固定效应”选项卡,就像您之前可能构建过的传统模型一样。

最后,我们将进入“随机效应”选项卡,并将批次变量添加到随机效应中。这样,我们通过引入随机截距来消除批次间的差异。我们还将考虑批次随时间推移以不同速率降解的可能性(即,时间度量的斜率不同),因此我们将允许随机斜率。为了解决这个问题,我们将在“列”列表中选择时间和批次变量,然后点击“随机效应”选项卡中的“交叉”。最后一步是设置模型的 alpha 值,该值位于红色三角形菜单下。如果您想要 75% 的百分位数,则应将 alpha 设置为 0.25。完成后(如果您正在继续操作),它应该如下所示:

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

然后,我们通过偏移来修改这条线,以解释随机效应所代表的批次间差异,以及我们想要作为保质期依据的分位数。我们将分两步进行,以便您了解所有数据的来源:
首先,让我们取平均线并展开误差项(数学):(
请注意,我们所做的只是从第一个方程中抽取了几个项( 数学 )。第一个新项( 数学 )表示随机截距,第二个项( 数学 )表示随机斜率。关于我在这里使用的符号,需要注意一点:固定效应(我们可以控制的因素)将使用希腊字母(例如数学 ),而随机效应将使用拉丁字母(例如数学 )。
第二步是将均值线偏移各变异源(下方等式中的数学项)的贡献,然后根据所需分位数的 z 分数进行缩放( 数学)。这会使等式看起来稍微复杂一些,但这些只是您在报告中查找的估计值(位置可以在下面的屏幕截图中看到),或者 JMP 可以为您计算:
我们在报告的方差成分部分的估计列中找到了这些 sigma 平方项(数学):

最后,我们需要对这条线建立一个置信区间。用符号表示出来的话,看起来有点复杂:
方差项:
通过 GIPHY
但所有这些偏导数最终都会分解成常数或简单的线性项。每个 sigma ( 数学 ) 或 psi ( 数学 ) 都只是我们在报告中打开的协方差矩阵中的一个方差或协方差。通过代入并合并这些项,方差项看起来如下所示:
因此,当你把所有这些加起来并放回到 数学中时,你就会得到一个基本上相当于具有令人讨厌的常数数量的简单多项式。
如果你想尝试用手写的方式,这很烦人,但如果你想用代码来分析,这很方便。所有这些都可以分段完成,最后加起来就行了。
在 JMP 中构建一切
如果您已经完成数学计算,欢迎回来!
好消息是,正如我多次提到的,JMP 混合模型报告中提供了用于制定特定研究决策线所需的所有数据。只需将它们取出、代入,然后查看决策线与目标规格限的交叉点即可。您可以手动完成,但正如我在一开始所说的,现在有一个插件可以实现。您可以在这里找到它: 随机批次货架期/稳定性分析。我没有加密代码,以便您可以查看我在其中的操作。
