Prism 允许您将每个参数约束为一个常量值、约束为一个数值范围、在数据集之间共享(全局拟合),或将参数定义为列常量。这是一个重要的决定,并将影响结果。

您未必总是希望拟合模型中的所有参数。相反,您可以将一个或多个参数固定为固定值。 例如,如果您已将剂量反应曲线归一化为 0 到 100 的范围,则可将 Top 约束为 100,将 Bottom 约束为 0.0。同样地,如果您已减去基线,从而确定指数衰减曲线必须在 Y=0.0 处趋于平稳,则可将 Bottom 参数约束为 0.0。
决定将参数约束为常量值可能会对结果产生巨大影响。请记住,Prism 没有“常识”。除非您明确告知,否则它无法判断曲线是否必须在零处趋于平稳。
通过将参数限制在特定值范围内,可防止 Prism 让参数取不可能的值。例如,应将速率常数限制为仅取大于 0.0 的值,并将分数(如高亲和力结合位点的比例)限制在 0.0 到 1.0 之间。设置此类约束可能产生四种结果:
•约束无关紧要,因为参数本就不会取到被禁止范围内的值。
•约束有助于加快拟合速度。非线性回归通过迭代改变参数值来工作。对于某些复杂的拟合,非线性回归过程可能会“陷入混乱”,最终花费时间探索毫无意义的参数值。对一个或多个参数的值进行约束,可以防止非线性回归过程偏离正轨。当数据点数量庞大时,您可能会看到拟合过程明显加快。
•该约束条件有助于非线性回归从多个局部极小值中进行选择。非线性回归通过逐步调整参数值,直至微小变化不再影响平方和(该指标量化了拟合优度)。 对于某些模型,可能存在两组参数值会导致平方和达到局部极小值。应用约束条件可确保非线性回归找到具有科学意义的极小值,并忽略另一个虽然曲线拟合良好但参数值在科学上毫无意义(例如负浓度)的极小值。
•该约束条件会阻止非线性回归找到最小平方和。相反,程序在遵守约束的前提下所能达到的最佳结果,是将参数设置为受限范围的极限值。随后 Prism 会报告拟合结果“触及约束”。
在第一种情况下,该约束虽无害但毫无用处。
在接下来的两种情况下,约束条件有助于非线性回归得出合理的结果。本质上,约束条件能为非线性回归过程提供科学判断,指出哪些参数值根本不可能成立。这些情况才是约束条件真正存在的意义。
最后一种情况,当拟合结果导致参数被设定在约束范围的一端时,解读结果就变得棘手。
约束可以针对单个参数(例如 Kfast 必须大于零),也可以针对两个参数之间的关系(例如 Kfast 必须大于 Kslow)。但请注意,如果两个参数本身都已受约束,则无法在它们之间建立新的约束关系。 在两相指数方程中,您可能希望将两个参数都约束为大于零,同时定义一个速率常数大于另一个(Kfast > Kslow)。Prism 不允许这样做。 您需要做的,是定义一个约束条件,即 Kfast 大于零,并定义另一个约束条件,即 Kfast 大于 Kslow。但不要添加 Kslow 大于零的约束条件。因为 Kslow 大于 Kfast 这一条件已隐含了 Kslow 大于零。
如果您要拟制曲线族(而非单条曲线),可以选择在数据集之间共享某些参数。对于每个共享参数,Prism 会为所有数据集找到一个(全局)控制数据。对于每个非共享参数,程序会为每个数据集分别找到一个(局部)控制数据。全局拟合在以下两种情况下非常有用:
•您关注的参数由多个数据集之间的关系决定。了解更多。
•每个数据集虽不完整,但整个数据集族共同定义了参数。查看示例。
当您一次性拟合一组曲线族时,可以将其中一个参数设为数据集常量。Prism 提供两种数据集常量。
列标题。该值取自列标题,且每个数据集的列标题可能不同。该参数几乎相当于第二个自变量。它在任何单个数据集内保持恒定值,但在不同数据集间取不同值。例如,在存在不同浓度抑制剂的情况下拟合酶反应速率曲线族时,可将抑制剂浓度输入数据表的列标题中。查看示例。
平均 X。该值是该数据集中所有具有对应 Y 值之 X 值的平均值。此参数用于中心化多项式回归。
当您使用“约束”选项卡将参数设置为常量值时,该设置将适用于所有数据集。无法为每个数据集输入不同的常量值 (除非如前一节所述,将列标题用作常数值。若希望某个参数对每个数据集采用不同的常数值(而非列标题),则需编写用户自定义方程,并使用特殊符号为每个数据集分配不同值。此时需在用户自定义方程中硬编码常数,且无法在非线性回归参数对话框中选择这些常数。例如:
<A>Bottom=4.5
<B>底部=34.5
<C>Bottom=45.6
Y=Bottom + span*(1-exp(-1*K*X))
在本示例中,拟合数据集 A 时参数 Bottom 设为 4.5,拟合数据集 B 时设为 34.5,拟合数据集 C 时设为 45.6。