非线性回归采用迭代方式进行。在每次迭代中,它会调整参数的值以减小平方和。
在全局拟合中,Prism 不会分别拟合每个数据集,然后将结果求平均。相反,它会一次性将所有数据拟合到全局模型中。每次迭代时,它都会最小化(跨数据集)的(跨数据点)平方和之和。 任何特定方程中的任何特定参数都没有特殊之处。它并不了解 EC50、平台期或速率常数。它只是利用非线性回归算法,一步步优化平方和的总和。
具体细节如下:
假设我们有四个数据集和一个包含三个参数的方程。一种表示方式是方程 y=f(X, A, B, C),换言之,您的模型“y”是由 X 以及三个变量 A、B 和 C 定义的函数。在此情况下,假设 A 在四个数据集中共享,而 B 和 C 则针对每个数据集分别计算。
以上是对实验设计(或拟合引擎所解决的问题)的通俗描述。从数学角度来看,Prism实际上是将以下函数拟合到所有数据(来自所有数据集)上:
F(X, A, B1, B2, B3, B4, C1, C2, C3, C4) =
{ IF (X 来自数据集 1) THEN f(X, A, B1, C1) { IF (X 来自数据集 2)
则 f(X, A, B2, C2) { 若 (X 来自数据集 3)
则 f(X, A, B3, C3) { 若 (X 来自数据集 4) 则 f(X, A, B4, C4)
请注意,参数 A(共享)看起来像是一个“通用”参数,而参数 B 和 C(非共享)则分别拆分为“独立”参数 B1、B2、B3、B4 以及 C1、C2、C3、C4。
以下是编写此函数的另一种方法:
F(X, A, B1, B2, B3, C1, C2, C3) = f(X, A, B1*DummyB_1 + B2* DummyB_2 + B3* DummyB_3
+ B4* DummyB_4, C1* DummyC_1 + C2* DummyC_2 + C3* DummyC_3 + C4* DummyC_4)
在此版本的方程中,若 X 属于第 i 个数据集,则 DummyB_i = DummyC_i = 1;若 X 不属于第 i 个数据集,则 DummyB_i = DummyC_i = 0
方程的这两种形式(它们是等价的)都会利用参数的当前值,针对数据中的每个 X 值计算每条曲线的 Y 值。随后,Prism 可以计算实际 Y 值(针对每个数据集的每个点)与预测 Y 值之间的差值。将所有这些点的平方和相加,即可得到非线性回归所最小化的平方和。因此,非线性回归的工作原理与通常情况相同。 它只是采用了更复杂的模型,该模型能区分哪些参数对所有数据集都采用同一数值,哪些参数对所有数据集都采用同一数值(共享)。