大家好,我叫艾比·柯林斯,是富士胶片生物技术公司的一名统计学家。今天,我将为大家介绍我们公司开发的用于统计分析的对比分析插件。开发这款插件的初衷是这样的:富士胶片是一家合同药物研发和生产机构。我们研发工作的一部分包括进行缩减模型分析或小规模模型分析。这种分析旨在确定我们的大规模生产数据与小规模生产数据的等效性,以便我们能够进一步开发和研究大规模生产工艺及关键质量属性。
我们确定这两个尺度等效性的一种方法是进行统计分析。此插件的目的和动机都源于这项分析。该插件使我们能够执行所有针对缩减模型进行的统计分析。
接下来我们来看背景信息。您可以看到这里有一张2000升生物反应器的图片,这是来自商业化大规模生产的数据。您可以看到它比这个小小的250毫升生物反应器大得多。我们将在实验室里用这个250毫升的反应器来开发我们的工艺。所以我们需要确定这两个规模之间的等效性。
为了实现这一点,从统计学角度来说,我们需要三个大规模数据点来进行分析。我们进行这项分析时,产品仍处于早期开发阶段,通常没有大型数据集。但我们至少需要三个数据点。随着开发和生产流程的推进,当有更多数据可用时,我们始终建议重新评估并重复使用此插件。
接下来是实际的插件。您可以在这里的数据结构图中看到,我截取了一个适合使用此插件的数据集的屏幕截图。运行此插件的唯一要求是:数据中必须包含一个运行标识或行标识列(图中以黄色高亮显示),以及一个分组标识列。因此,您的数据需要按这两个分组级别进行分组。除此之外,该插件对任何列名(包括分组级别名称)都具有很强的兼容性。运行 ID、分组名称、列名,这些都无关紧要。脚本能够很好地处理所有这些情况。它只需要确保您的数据正确堆叠,并且除了实际数据之外,至少包含这两个信息列即可。
接下来运行插件。首先会弹出 SSM 等效性测试窗口。这个窗口的作用是让您输入数据格式,以便脚本能够识别和分析数据。例如,行或运行标识列,在本例中是运行编号。运行类型或分组变量位于哪一列?这里是“规模”。它还会要求您在该分组变量中指定参考组,这里是我们的大规模数据。而我们要与之比较的测试组是缩小规模的小规模数据,所以这里是“小”。包含实际等效性测试第一个参数的列,也就是第一个数值列,这里是第 3 列。
接下来是下一个提示。弹出的下一个窗口会要求用户指定要对数据集中的哪些数值列进行分析。它会列出数据集中的所有数值列,您可以选择一个或多个。这样做的好处是,该插件实际上会生成一个仅包含所选列的子集。因此,即使您面对的是一个非常大的数据集,也不用担心如何对其进行子集化。您可以在这里完成这项工作。
实际上,插件运行时,它在后台执行什么操作呢?这个简单的流程图展示了插件在后台的运行过程。在用户输入部分之后的顶部方框中,我们可以看到它按比例提供了数据的汇总统计信息。这里我就不多赘述了,等到了输出部分再详细讲解。我还会详细讲解底部方框中显示的“六西格玛散点图”。我们会在输出部分进行讲解。不过,我想重点讲解的是中间这个流程图。
在后台,该插件会检验两组数据之间的方差是否相等。它通过检查布朗-福赛斯检验、莱文检验和F检验来实现这一点。如果这三个检验中有两个的P值大于0.05,则插件会假设两组数据之间的方差相等,并继续执行合并方差t检验、韦尔奇检验和TOST检验(即两个单侧合并方差t检验)。同样地,如果这三个检验中有两个不合格(即P值小于0.05),则插件会假设两组数据之间的方差不相等,并执行标准t检验、韦尔奇检验和假设方差不相等的TOST检验。
如果您曾经在 JMP 中运行过 TOST,您就会知道需要确定实际等效性并将其输入到等效性测试平台中。但是,对于此插件,它会自动生成 TOST 结果,并且使用的实际等效性是参考组标准差的三倍。对我们而言,这意味着对于分析中包含的每个参数,都将使用我们大规模数据的标准差的三倍。
就我们目前所处的早期开发阶段而言,大多数情况下我们还没有一个强有力的、基于科学依据的、实用的等效方法可供使用,尽管有时会有。但三倍标准差(SD)是一个很好的起点,因为我们通常无法获得此类信息,而这正是此插件的作用所在。它会利用该值自动生成 TOST 测试结果。之后,该插件还会生成一个汇总表,其中包含所有测试结果以及与这些测试相关的所有 JMP 输出。
接下来,我将演示该插件并介绍其效果。
这就是你在海报上看到的数据表。我要打开加载项,点击“比较分析”,然后填写第一个窗口。我的运行 ID 列是什么?就是运行编号。我的运行类型组是什么?就是规模。我的参考组是我的大规模数据。我的测试组是小规模数据。我想测试的第一列是第 3 列。输入时区分大小写,所以如果数据集中的字母是大写的,你也需要确保输入的字母也大写。我点击“确定”。也许我不想包含参数 5 和 6,所以我按住 Ctrl 键,选择除它们之外的所有内容。我点击“确定”。
现在,我们得到了 JMP 生成的报告,其中包含了此次对比分析的所有输出结果,这真是太棒了。报告顶部显示的是我在此次分析中选择的数据子集。除了参数 5 和 6 之外,其他所有参数都已列出,因为这两个参数缺失,而我没有选择它们。接下来,我们列出了按尺度划分的所选参数的汇总统计信息。因此,我们既有大尺度数据,也有小尺度数据。目前,该插件的默认设置是包含每个组的最小值、最大值、平均值、标准差和样本量。之后,您可以看到一个简洁的汇总表,其中包含了该插件执行的所有对比结果。您可以看到前三列:测试组、失败计数和通过率。这三列信息与您在此处看到的六西格玛散点图相对应。
从这张图中可以看出,绿色区域是六西格玛区域。如果您身处这个行业,可能对这个术语并不陌生。它指的是我们大规模数据(即参考组)上下三个标准差的范围,也就是这片绿色阴影区域。向下滚动可以看到一条红线,它代表小规模数据(即测试组)的平均值。蓝线代表大规模数据的平均值。图中还绘制了各个数据点,以及一条总体平均值的黑线。测试组指的是测试组中的数据点数量,也就是我的小规模数据。不合格计数指的是小规模数据中超出六西格玛范围的数据点数量。因此,合格率指的是位于六西格玛范围内的数据点所占的比例。由于8个数据点中有7个位于绿色阴影区域内,根据这张散点图,我们的合格率为88%。
接下来是下一列信息,这是我们的检验假设。后台插件会在这里运行方差齐性检验。如果三个方差齐性检验中有两个通过,则显示“方差齐性”。如果一个检验失败,则显示“方差不齐性”。这里会显示与该检验假设对应的 t 检验 P 值。如果方差齐性,则对应的 P 值是合并 t 检验的 P 值。如果方差不齐,则对应的 P 值是标准 t 检验的 P 值。然后,我们会将其转换为一列,显示检验结果的通过或失败。通过的判定标准是 P 值大于 0.05,表示两组之间的均值差异不为零。而 P 值小于 0.05 则判定为失败,因为两组之间的均值差异显著。同样,我们也有 Welch 检验的 P 值,并且也根据该 P 值判断是否通过/失败。
之后,我们可以看到 TOST 评估结果。结果分为等效和非等效两类。这是 JMP 默认生成的唯一选项。查看完汇总结果后,向下滚动页面,可以看到所有用于得出这些测试结果的 Y 对 X 拟合信息仍然保留在日志中。这里是带有均值菱形的标准图,以及 Tukey-Kramer 圆图。此外,还有 t 检验信息、方差检验信息和 Welch 检验信息。继续向下滚动,我们还可以看到等效性检验或 TOST 结果。这里有置信区间、蓝色阴影的等效区域、红色的失效区域,以及所有参数的相关信息,全部都包含在此报告中。
默认情况下,该插件会保持打开状态。如果我将其最小化,它会打开单独的 Y 轴和 X 轴拟合平台窗口。它还会打开创建这些散点图的单独平台,以便您可以将它们保存到数据表中。这里生成了一个 DT 子集,它是仅包含您选择的参数的数据子集。我选择保留它,并保持插件中的这些窗口打开,这样您就可以将这些数据保存到数据表中,并在需要返回或数据更新时保存数据表,而无需重新运行插件。所有数据都会保存在这里。我将最小化这些窗口,然后返回演示文稿。
关于我们的具体输出,还有一点我想说明。我们会创建最终结果表。您可以看到,我所做的只是创建了一个合并数据表,右键单击汇总结果,然后将其转换为数据表。之后您可以看到,我们得到了统计结论和科学结论。我们根据这些统计结果得出统计结论。如果所有纳入分析的测试都100%通过,则统计结论将显示为绿色。
现在,如果任何一项测试由于某种原因失败,从统计学角度来说,我们会将其标记为红色,并表示我们在某个方面存在问题。只有当我们所有测试都通过,唯独 TOST 结果不确定时,才会显示黄色。我们将 TOST 结果不确定定义为置信区间(例如本例中)在等效区域和非等效区域均存在重叠。因此,由于我们无法 100% 确定通过或 100% 确定失败,所以严格来说,我们将其定义为不确定结果。这就是它显示为黄色的原因。否则,如果我们有一项结果不确定,但其他任何一项测试都失败,那么这里就会显示红色。
您可以看到,在这个例子中,我们用红色标记,因为根据散点图信息,我们没有得到 100% 的合格结果,而且 TOST 的结果也不确定。这就是它被标记为红色的原因。之后,我们会将结果发送给我们的科学家。我们会与科学家一起审查所有输出结果。然后,他们会运用自身对所研究属性或过程的科学知识,结合统计数据和科学知识,最终得出我们缩比模型分析的等效性结论。
关于未来的工作以及插件目前的开发进度,我目前正在努力让用户能够为 TOST 输入一个实际等效值。正如我之前提到的,插件目前的默认设置是使用参考组数据标准差的三倍作为实际等效区域。但是,如果情况并非总是如此,例如您希望使用不同的标准差倍数,或者您确实有一个想要输入的实际等效值,我正在努力开发一个选项,让您可以在插件开始时直接输入该值,而无需手动逐个进行 TOST 计算。该选项目前正在开发中。
我还想补充一点,我希望能够解码汇总表,这样我们就可以直接在汇总表中显示不确定的TOST结果,而不是像现在这样默认显示“等效”和“不等效”,需要手动修改。这项功能目前也在开发中。此外,我还希望它能为使用该插件的科研人员提供更多自定义选项。如果他们希望添加其他测试,或者希望选择子集或使用不同的可视化效果,我希望能够采纳他们的反馈并将其融入到插件中。我们始终致力于让输出结果更加美观。
总之,这个插件对我们非常有用,它大大减少了我们进行统计分析所需的时间。如果您曾经在 JMP 中使用过 TOST,您就会知道,您必须手动输入实际等效值、选择方差类型、是否需要对照组,而且您需要对要分析的每个参数都执行这些操作。
有了自动 TOST(统计分析工具),只需单击一下即可自动生成汇总表和各种精美图表,这确实大大缩短了我们的分析时间,提高了分析效率。对于 JMP 新用户和科研人员来说,这也是一个非常棒的工具,让他们能够独立进行统计分析。他们可能不是 JMP 的资深用户,但经过培训后,他们就能学会如何使用这个插件,并解读输出结果。只需单击按钮,操作就非常简单。所以,这对我们来说意义非凡。希望未来我们能够继续改进,提高统计学的普及度,并开发更多类似的插件。谢谢。