制药公司必须通过测量产品在不同储存温度下的性能随时间的变化来证明其保质期。为了加快测试速度,通常还会进行高温测试。尽管阿伦尼乌斯早在1889年就证明了如何将不同温度下的结果整合到一个模型中,但许多公司仍然分别分析每个温度下的结果。将数据分层到不同的模型中并不经济高效。
此外,还必须对保质期进行持续验证,通常要求所有观测值均在规格范围内。但由于测量噪声,这一标准往往无法满足。因此,应改为要求测量值在初始保质期研究的预测区间内,这是一个较为宽松的要求。
JMP 的“降解/非线性路径/恒定速率”平台中包含了阿伦尼乌斯方程。然而,该平台缺少“拟合模型”平台的一些优秀功能,例如学生化残差图、Box-Cox 变换、随机因子和预测区间。
感谢您给我这个机会来谈谈我们作为 JMP 合作伙伴如何帮助客户降低成本,尤其是在智能保质期计算和保质期验证过程中避免不合格情况。
首先,我将介绍我们在客户进行保质期研究时遇到的一些问题,特别是持续验证过程中遇到的问题。先来看保质期研究,在设定保质期时,我们可以看到它是基于若干批次(通常是3-4个批次)来测量随时间推移的变化。当然,最终水平取决于初始水平和变化斜率。理想情况下,所有批次的变化斜率应该相同。
但我们经常发现不同批次的起始液位不同。这可能会带来挑战,因为后续批次在进行持续验证时,起始液位可能也会不同。如果起始液位较低,读取保质期时可能会出现超出规格的情况。
我们建议的做法是,将保质期转化为批次放行时的要求,也就是说,在时间 0 时,保质期值应该是多少,才能确保产品在保质期内符合规格。当然,我稍后会详细解释这一点。
我们还经常看到线性回归是基于绝对值进行的,但退化是相对的。如果退化程度很大,你实际上描述的并不是退化速率。解决方法很简单:在进行回归之前,只需对数据取自然对数(Ln)即可。
抱歉打断一下,皮埃尔。我看到一个按钮,上面写着“Zoom正在共享您的屏幕”。
我觉得它已经不在了。
有什么办法可以隐藏任务栏吗?因为它太大了,底部好像有两个任务栏。
好的,我们试试别的办法。我觉得如果我喜欢这个,那这个会不会更好一些?
是的,好多了。
因为我现在是以演示模式显示的,所以也许我应该继续以演示模式显示它。
是的,看起来不错。
我先试一下看看效果,因为之后我分享 JMP 文件时会这样做。这样一来,我恐怕您在使用 JMP 时会看到任务栏。
嗯,还行吧。
我们应该那样做吗?
就这么办吧。
我做PPT的时候会用演示模式。我觉得这样效果更好。
当然可以。完美。谢谢。
看来我们只能从头开始了。
重新开始吧。抱歉。
大概两分钟,所以不算什么大灾难。
感谢您给我这个机会来谈谈我们作为 NNE 的 JMP 合作伙伴,如何帮助我们的客户进行更好的保质期研究,尤其是在验证过程中最大限度地减少不合格项的数量。
首先,我将简要介绍一下我们在保质期研究,特别是持续验证方面遇到的问题。我们将确保您所说的保质期仍然有效。我们会定期抽取一些批次进行测试。如果您查看第一项研究,即保质期估算研究,其中您设定了保质期,通常会选取3-4个批次,让它们随时间推移进行衰减。我们会测量这四个批次随时间的变化,观察它们的衰减程度,然后计算出保质期。
当然,随着时间的推移,浓度水平取决于衰减斜率,而衰减斜率正是保质期研究的主要目的。当然,浓度水平也取决于初始浓度。由于您的保质期估算研究中只有三到四个批次,并且您打算用后续批次进行验证,如果后续批次的初始浓度低于您保质期研究中的批次,即使初始浓度较低并不意味着衰减速度更快,验证结果也可能出现问题。
我们的解决方案实际上是将保质期方程转换为一个可节省时间的起始值,也就是一个放行限值。当然,这个值应该优于您在保质期内的要求,因此留有调整的空间。这样,您就不必对未来的批次过于敏感,因为您可以确保它们的起始值足够高。我们还经常看到人们在进行时间回归时采用绝对值,但降解是相对的。我们强烈建议您在进行回归之前对数据取自然对数 (Ln)。
我们也看到许多公司在测量结果的重复性方面面临巨大挑战,而保质期是最难测量的指标,因为显而易见,您必须在非常不同的时间点对不同批次的产品进行测量,通常间隔数年。当然,情况瞬息万变,如果您的测量系统不够稳定,回归曲线就会出现大量噪声。您可以通过将测量时间点作为随机因子纳入模型来降低噪声。
我们也经常看到一些公司在多种不同温度下测试保质期,这很好,因为这样可以加快测试速度。但不知何故,通常情况下,温度模型都是单独建立的。我们很少看到有人对温度进行跨温度建模。我们得到的通常是一个描述所有温度的模型。当然,我们强烈建议对温度进行跨温度建模,因为这样可以提供更多温度范围的数据来估计残差。
在同一领域,我们还发现,当人们要对温度进行建模时,当然需要所有不同温度下的初始测量值(时间 0)。但实际上,你使用的是同一个测量值,因为时间 0 只是一个初始值。因此,在构建跨温度的模型时必须格外小心,例如,如果存在错误温度值,就不应该出现四次相同的观测值。
在不同温度下进行建模时,非常重要的一点是,你只需要在一个温度下进行一次记录。这样一来,具体是哪个温度点其实并不重要,因为它代表的是时间 0。这就是我们在设置保质期时经常遇到的问题。以下是我们针对此问题提出的一些解决方案。
然后,在进行保质期验证时(也就是说,既然您已经确定了某个保质期,那么就需要定期进行验证,以证明该保质期仍然有效,ICH 对此有相关指南。JMP 中也包含了这部分内容,您稍后会看到。具体操作是,您通常会生产三到四个批次的产品,然后计算最差批次的斜率的置信限,并以此来确定保质期。
但这有点棘手,因为这样就假定你已经看到了前三批中的第一批,而通常情况下并非如此。这实际上也是我们不建议使用ICH方法的原因,因为它常常会导致验证问题。
我们也经常看到,人们对斜率标准误差的估计过于乐观,因为他们假设观测值是独立的,自由度仅为 n-1。然而,很多时候,一次分析中会进行多次测量。如果分析结果之间存在一对一的差异,则这些测量并非独立测量,需要通过计算有效自由度来校正。仅仅将测量日期作为随机因子是无法做到这一点的。
这样一来,标准误差通常会稍大一些,这看似是个问题。但实际上,它提高了对初始值的要求,从而最大限度地降低了验证失败的风险。
最后但同样重要的是,我们仍然看到许多公司声称,在验证阶段,所有测量结果都应该在规格范围内。但是,如果确实存在测量问题(而且测量问题总是存在的),那么由于测量问题,产品在保质期内实际上可能超出规格范围。我们建议的做法是,构建一个具有合适自由度的模型。对于这个模型,实际上应该使用与设定保质期时相同的数据,并基于此建立一个预测区间,用于预测未来的观测值。该区间通常会略宽于规格区间,从而最大限度地降低失效风险。
接下来我会简要介绍一下公式、平台以及它们在 JMP 中的位置,但我会尽量快速地讲解,因为我相信您之后可以在演示材料中找到这些公式,而且我认为在 JMP 中演示它们更有意思。不过,我们先从发布限制开始。
如何将斜率和斜率标准转化为初始释放限值?假设某种物质的含量会随时间下降,并且我们有一个下限规格。那么,我们参考VSO关于稳定性、评估和最大科学性的指导原则,只需用下限规格减去估计的斜率(即保质期),就能得出保质期内的含量下降量。此外,还需要考虑一些不确定性,包括斜率的标准误差以及初始值的测量标准偏差。
实际上,我们只是用了这个公式,只是因为标准差未知,所以需要将正态分位数转换为t分位数。为了估计测量重复性,我们使用了模型中的IMC值。除此之外,其他步骤都与VSO指南中的描述完全一致。当然,在构建模型时,您需要从建模JMP中获得斜率,根据下面的公式从建模JMP中获得有效角度,获得斜率的标准误差,以及残差误差。
基于此,你可以将此值代入公式,即可得到下限发布量。如果瓶颈之一实际上是初始值的测量噪声,你可以在初始阶段进行多次测量并取平均值,从而将其抑制N的平方根。当然,这些测量在分析上会比较困难。
接下来,当我们要建立重量随时间变化的模型时,可以直接点击“拟合模型”。当然,你可以在那里进行回归分析。我们强烈建议你对结果进行锁定,因为这样对于恒定速率的反应,结果将与时间呈线性正比关系。当然,如果衰减很小,你也可以不锁定结果。但为什么要纠结于衰减的大小呢?只要锁定结果,无论衰减大小,它都能正常工作。
如果你想建立跨温度的模型,就必须使用阿伦尼乌斯方程,它能用活化能描述不同温度下的衰减过程。如果你使用非线性路径的降解平台,JMP 可以很好地描述这种情况,并且你可以在那里构建跨所有温度的模型。如果你找到了这个平台,其实很容易做到。我猜你找到的是正确的平台,但你最好还是自己找找,我稍后会在 JMP 中演示一下。
基于以上信息,您将得到模型系数。您将获得截距、斜率、活化能,以及相应的标准误差和协方差。将这些数据结合起来,您可以计算出每个温度下的斜率及其标准误差。然后,您可以将这些数据代入下限释放量计算公式,从而确定下限释放量。
所有这些模型参数、标准误差和相关性,你都可以直接从 JMP 中得到。但你必须把它们代入我在这里展示的这个方程式中。实际上,这并不像看起来那么简单。
因此,我们建议对阿伦尼乌斯方程进行泰勒展开,因为泰勒展开可以将其拟合成多项式。通常情况下,三阶多项式就足够了,这需要四个不同的温度。在进行泰勒展开后,使用“拟合模型”功能的好处在于可以引入随机因子。正如我之前提到的,您需要将测量时间作为随机因子。但通常您也希望将批次作为随机因子,因为我们不仅要预测当前研究批次的情况,还要预测未来批次的情况。当然,这样做也能获得更好的模型诊断结果。
如果你正确地调整阿伦尼乌斯温度,使其在目标时刻为 0,那么这里的所有项都会消失,因为它们都为 0。这样就很容易得到斜率和标准误差,因为它们就是模型中时间参数前的系数和标准误差。这比我在上一张幻灯片中展示的要简单得多。
然后,除了三阶数据展开式之外,你还可以加入批次乘以时间的项,以及批次和时间的交互项,看看是否存在批次相关的斜率。希望不会出现这种情况,但确实有可能出现,甚至更糟糕的是,我们可能还会加入阿伦尼乌斯温度-时间乘以批次的项,看看活化能是否与批次相关。这种情况很少发生,当然也不应该发生。但我认为在做出假设之前进行检查是件好事。
现在,我们进入 JMP 看看它是如何工作的。我现在切换到 JMP。这里有一个案例,我研究了一些不同温度和不同时间段的批次。我们先来看结果。这里您可以看到启用了 Ln 函数的结果。在 15、25、30 和 40 摄氏度这三个不同温度下,从 0 个月到 36 个月,结果应该是线性的。
正如您所见,正如预期的那样,温度越高,斜率越大。这可以用阿伦尼乌斯方程轻松描述。每个批次在每个时间点都进行两次测量。您还可以看到,我们每天的测量值都会有一些波动。例如,您可以看到三个月时的所有测量值都高于回归方程,这表明那天我们测量的值偏高;而例如,在第九个月时,测量值通常偏低。显然,这条曲线受到了……或者说这些数值受到了测量噪声的影响。这种情况很常见,因为测量时间点非常不同,很容易出现某些天的测量值高于其他天的情况。稍后您就会看到这会造成什么影响。
我们开始建模。您可以在 JMP 中进入降解分析。在那里,您不能合并温度数据,但可以按温度进行分析。这实际上遵循了 ICH 指南。我刚刚打开了 15 度的模型。它的工作原理是,在显著性水平为 0.25 的情况下,您可以假设斜率和截距相同。如果 P 值低于 25,则必须使用不同的截距和斜率。例如,您可以看到,对于 15 度,根据 ICH 指南和此显著性标准,您可以假设斜率相同,但截距会不同。
然后,利用这些不同的截距和共同的斜率,你在每条回归线上都建立了一个共同的区间,然后你取“批次”这个词,在本例中是批次 B。然后你指出,这个区间对应的是规格限值、下限规格限值、Ln 尺度,这就是你的保质期,在本例中是 55 个月。
这种方法虽然简单易行,但存在一些问题。首先,0.25 的显著性水平很容易导致出现假阳性结果,即需要不同的斜率,但实际上可能并不需要。更糟糕的是,这种方法只考虑了前三个批次中最差的那一个。我的意思是,你最终得到的最差批次不太可能出现在前三个批次中。这可能会在后续的验证过程中造成严重的问题。尽管这种方法简单易行,但我们并不推荐使用。
当然,你可以在“拟合模型”中创建完全相同的模型,这就是我在这里展示的。同样,首先按温度建模,稍后我们会将它们结合起来。你可以看到,你可以输入时间、批次和时间乘以批次,在本例中是 15 度。时间乘以批次这一项可以考虑到斜率可能与批次有关,因此不能使用相同的斜率。你可以看到它的 P 值很高,但我不太喜欢使用 P 值,因为它们对样本量、信噪比等因素非常敏感。我更倾向于使用信息准则,它对不同的样本量和噪声水平等因素更加稳健。我更喜欢 Akaike 信息准则,它是负对数似然值,所以值越低越好。
如果我把时间乘以批次去掉,结果是 188 - ... 实际上会降到 -193,这意味着模型更好了。现在我已经证明可以使用共同斜率。接下来我可以考虑批次数。它的 P 值比较接近临界值,仍然偏高,但我不用 P 值,我用的是信息准则。如果我把它去掉,结果从 100 - 3 降到 -195。还在下降。这样一来,我也证明了可以使用共同截距。
但是,正如我之前提到的,这里要小心,因为这些数字并非相互独立。我暂时不会告诉 JMP 这一点。你可以通过“拟合模型”并建立相同的模型来更好地解决这个问题。唯一的区别是,我现在将测量日期作为随机因子。现在我可以校正这些测量值是分组的,同一天的数据来自同一个分析。现在你可以看到得到了不同的 P 值。再次查看信息准则,你可以看到批号乘以时间 -207,它下降到 -239。更好的模型,合理的共同斜率。但是现在看看当我移除批号时会发生什么。结果与之前相同,只是增加了测量日期。它是 -239。现在它实际上增加到 -236。我不应该移除它,这意味着我不能假设共同截距。
这正是为什么需要输入测量日期的一个很好的例子,否则你可能会被数据并非相互独立的事实所误导。如果你想建立跨温度的模型,正如我之前提到的,这很容易做到。只需进入降解数据分析,输入这段非线性部分即可。实际上,你已经内置了阿伦尼乌斯方程,在四个温度下,你会得到相同的截距、相同的斜率和相同的活化能。
然而,我已经证明,斜率相同没问题,但截距相同值得商榷。我们需要的是截距和斜率都不同,而在这里无法做到这一点。你可以做的是,为每个批次指定不同的参数。这样一来,截距和斜率就都不同了,而在这个例子中,活化能却相同,我认为这是合理的。
但在这里,你无法真正同时拥有相同的斜率和不同的截距。不过,JMP 提供了一个解决方案。如果你进入非线性平台,就可以构建自己的拟合方程。在那里,你可以利用阿伦尼乌斯方程,像你在这里看到的那样,拥有相同的活化能和斜率,但截距不同。所以,这是可以实现的。
但这里的难点在于你不能引入随机因素。你很难进行校正,因为这些测量并非独立测量。你也不能将批次作为随机因素纳入考虑。你很难建立一个描述批次的通用模型,而这通常正是你需要的。
为此,我们通常会选择“拟合模型”,并代入阿伦尼乌斯方程的泰勒展开式,就像您在这里看到的那样。当然,要展开到一阶、二阶和三阶,还要代入批次号以调整截距,代入批次号乘以时间,这样才能处理斜率可能不同的情况(希望不会)。更糟糕的是,您还可以代入阿伦尼乌斯方程的时间乘以批次号,以校正可能存在的批次依赖性活化能,这可能会很奇怪。
但观察AICc,你会发现它没有先扣除时间,而是达到了-730。真是太幸运了!随着时间推移,它降到了-67。这是一个更好的模型。现在我已经证明,我可以拥有一个共同的活化能。相同的批次数乘以时间,它的P值接近临界值。但是,再次观察Akaike信息准则,你会发现它实际上仍在下降。现在我也可以证明,我也可以拥有一个共同的斜率,这当然是一件好事。你也可以在这个模型中做到这一点。
如您所见,我已将测量日作为随机效应加入模型,因为在拟合模型中可以轻松实现这一点。但在退化平台中则无法做到。
希望您已经看到,计算斜率的方法有很多种。我在这里尝试看看它们对您的下限释放量有何影响。如果您运行这个小脚本,您实际上可以看到有很多不同的方法……我可以按温度计算,也可以按随机时间的温度计算。这个退化平台涵盖了所有方面,包括非线性退化、不带随机时间的泰勒退化以及带随机时间的泰勒退化等等。
在这里,我只需输入从这些模型中得到的斜率和标准斜率即可。在这里,您可以实际看到,如果您只进行一次测量批次放行,那么最低放行限值是多少。您可以看到,我们推荐的方法,即随机时间泰勒展开法,可以得出最高的放行限值之一。当然,放行限值越高,后续持续验证中出现问题的风险就越低。在这种情况下,我们要求所有批次的起始值都应在 10.09 左右。否则,我们无法确保它们在保质期内仍然有效。
您可以看到,如果我们随机选择一个时间点,并且只针对 15 度进行测试(这里我们要求的是 15 度温度不进行组合),您会得到更高的释放限值。但这是因为通过建立单独的模型,自由度会减少。实际上,我们可以通过构建跨温度的模型来获得更低的释放限值,并且该限值仍然可靠。正如您在右侧看到的,如果您在开始时进行两次测量,批量释放以抑制测量噪声,则可以进一步降低释放限值。如果您进行 10 次测量,则可以进一步降低释放限值。您希望在开始时进行多少次测量?
当然,批量放行取决于您的测量噪声,而这些噪声分布在瓶颈环节。但您使用的方法确实至关重要。如果您没有对非独立测量进行校正,则很容易得到过低的放行限值,这会在后续的验证过程中引发问题。
如果您想对批次进行总体描述,例如设定保质期,那么您还需要将批次作为随机因素添加进去。现在我将批次和测量日期都作为随机因素。现在我不仅描述了我用于研究的三个批次,而且还描述了批次的总体情况。然后您可以直接进入分析器。我将其设置为阿伦尼乌斯温度 40.272,对应于 15 摄氏度。您可以看到这里的保质期状态。他们希望证明他们的产品保质期为 24 个月。如果您查看所有批次的总体曲线,可以发现它很好地保持在限值范围内。这家公司完全可以证明他们的产品在 15 摄氏度下至少有 24 个月的保质期。
你可以看到我使用了 5% 的单侧 Alpha 值,因为只有偏向一侧才会有问题。但是,如果我想预测单个测量值的具体位置(因为这里只显示了两条线的位置),我可以再次运行相同的模型,并精确地执行相同的模型。我只是将 Alpha 值改为 0.135% 的单侧值,就像 ±3σ 范围内的误差一样。然后,你在这里仍然可以看到相同的结果。当然,通过调整 Alpha 值,结果会稍微变宽一些。接下来,我想在这里展示预测范围。
遗憾的是,在 17 版本中,您无法在分析器上显示预测限值。我稍后会切换到 18 版本早期试用版。它尚未正式发布,但即将推出。我会在 18 版本中运行相同的模型,因为 18 版本最大的优点在于,您可以在分析器上同时查看置信限值(这是个比较隐蔽的方法)。此外,您还可以查看预测限值或单个置信限值。这可以帮助您了解在给定批次的保存期限内,单个观测值的预期范围。您可以看到,预期值可能会略低于下限规格。
为了持续验证,我们建议将要求设定为预测区间内的值略大于规格限值。这样可以避免因测量问题导致的不合格情况。
希望您已经意识到,在进行保质期和验证时存在许多陷阱,但 JMP 提供了一套完善的工具来规避这些陷阱,并确保正确完成验证工作。最后,我将回到我的演示文稿,再次展示我最初提出的问题,因为我们现在已经讨论过这些问题了。当我们为客户进行保质期评估时,我们强烈建议将其转换为发布限值,因为这样可以确保您未来生产的所有批次都能达到保质期要求,因为您为它们的起始期限设定了一个明确的标准。
当然,所有模型都要基于自然对数(Ln)数据。只需在模型对话框窗口中锁定,即可得到线性回归模型。将时间作为模型中的随机因子。这样可以校正每天测量值可能不完全相同的情况。当然,使用阿伦尼乌斯方程的泰勒展开式构建跨温度的模型也很容易。记住,不要进行多次注册。时间 0 点只能在一个温度下输入。
然后,在进行持续的保质期验证时,我们不建议使用ICH方法,因为它实际上假设您看到的是前三次检测中最差的结果,而实际情况可能并非如此。计算放行限度时,获得正确的斜率标准和自由度也至关重要。如果没有独立的测量数据,自由度不能简单地用n-1表示。您通常需要将分析值作为随机因子纳入考虑。
最后,但同样重要的是,请提供您正在进行的验证的规范。这些规范应与您之前基于用于设定保质期的批次所做的预测区间相符。感谢您的关注。希望您能从本文中获得启发,了解如何使用 JMP 有效地进行保质期管理。非常感谢。