非线性回归迭代工作。在每次迭代的情况下,其均会更改参数值,以降低平方和。
在整体拟合的情况下,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 from Data set 1) THEN f(X, A, B1, C1) { IF (X from Data set 2)
THEN f(X, A, B2, C2) { IF (X from Data set 3)
THEN f(X, A, B3, C3) { IF (X from Data set 4) THEN 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值之差。计算所有这些点的平方和,得到非线性回归最小化的平方和。因此非线性回归照常工作。其只是有一个更复杂的模型,说明哪些参数对所有数据集均有一个值,以及哪些参数对所有数据集均有一个值(共享)。