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 大于零的约束条件,因为这已由“大于 Kfast”这一条件隐含其中。
如果您要拟制一个曲线族(而非仅一条曲线),可以选择在数据集之间共享某些参数。对于每个共享参数,Prism 会找到一个适用于所有数据集的(全局)最佳拟合值;对于每个未共享的参数,程序会为每个数据集分别找到一个(局部)最佳拟合值。 全局拟合在以下两种情况下是非常有用的工具:
•您关注的参数是由多个数据集之间的关系决定的。了解更多。
•每个数据集虽不完整,但整个数据集族共同定义了参数。参见示例。
当您一次性拟合一组曲线族时,可以将其中一个参数设置为数据集常量。Prism 提供两种数据集常量。
列标题。该值来自列标题,每个数据集的列标题可能不同。该参数几乎相当于第二个自变量:在任何单个数据集内,其值保持恒定;但在不同数据集之间,其值各不相同。 例如,在存在不同浓度抑制剂的情况下拟合一组酶反应曲线族时,可将抑制剂浓度输入数据表的列标题中。查看示例。
平均X值。该值是该数据集中所有具有对应Y值之X值的平均值。此参数用于中心化多项式回归。
当您使用“约束”选项卡将参数设置为常数值时,该设置将适用于所有数据集。无法为每个数据集输入不同的常数值 (除非如上一节所述,将列标题用作常量值。若希望某个参数对每个数据集具有不同的常量值(而非列标题),则需要编写用户自定义方程,并使用特殊符号为每个数据集分配不同的值。 您需要在用户自定义方程中硬编码这些常数,而无法在非线性回归参数对话框中选择它们。例如:
<A>Bottom=4.5
<B>Bottom=34.5
<C>Bottom=45.6
Y=Bottom + span*(1-exp(-1*K*X))
在本示例中,拟合数据集 A 时,参数 Bottom 设置为 4.5;拟合数据集 B 时,设置为 34.5;拟合数据集 C 时,设置为 45.6。