Please enable JavaScript to view this site.

为什么需要初始值?

在执行非线性回归之前,Prism 必须为方程中的每个参数设定初始值(估计值)。随后,它会通过迭代调整这些值,以改善模型对数据的拟合效果。初始值必须合理,这样由这些初始值定义的曲线才能大致符合数据的形状,且不会严重偏离数据点。如果初始值非常不合理,Prism 可能无法拟合模型。

对初始值的需求并非 Prism 独有,而是非线性回归固有的特性。

为何需要初始值规则?

Prism 可以存储规则(算法),用于根据您的数据范围计算初始值。如果您选择内置方程,系统会自动处理这些规则。如果您输入自己的(用户定义)方程,也可以输入规则来定义每个参数的初始值。如果您输入了一套良好的规则,那么您的方程将来就能正常工作,无需再考虑初始值。

如果您未输入初始值规则,则每次拟合数据时,都需要为每个变量、每个数据集输入初始值。

若输入的规则不合理,则初始值生成的曲线将无法贴近数据点,Prism 很可能无法将模型拟合到数据上。

如何输入规则?

在输入或编辑用户自定义方程时,点击标有“初始值规则”的选项卡。对于每个参数,在第一列中输入一个数字,并选择一个乘数或除数。

通常,您会使用基于 YMIN、YMID 或 YMAX 的选项,即数据集中的最小、中间(最小值与最大值的平均值)和最大 Y 值,或者相应的 XMIN、XMID 或 XMAX。

您还可以要求 Prism 进行插值,例如将初始值基于 X 在最小值与最大值中间的 Y 值(XatYmid)及其相关值处的插值结果。

 

待拟合的初始值

下拉列表中的第一个选项是“(待拟合的初始值)”。这意味着您在左侧框中输入的值将成为所有数据集的初始值。该初始值不依赖于数据范围(不会进行计算);它就是您实际输入的值。

基于数据范围的初始值

大多数规则基于 X 和 Y 值的范围。

缩写 YMIN 表示 Y 的最小值;YMAX 表示最大值;YMID 则是 YMIN 和 YMAX 的平均值。例如,如果您在第一列输入“0.5”,并在第二列选择“YMAX”,Prism 会将初始值设置为 YMAX 的二分之一(该值在每个数据集上各不相同)。

短语“X at YMID”指与最高和最低 Y 值平均值相对应的 X 值。计算详情。

SIGN(YatXmax - YatXmin)

若曲线从左向右总体呈上升趋势,则结果为 +1:/

若曲线从左向右总体呈下降趋势,则结果为 -1:\

该值用作剂量反应曲线中Hill斜率的初始值。

以下是数学原理的说明。SIGN() 函数在输入正数时返回 +1,输入负数时返回 -1。YatXMax 是最大 X 值处的 Y 值。YatXmin 是最小 X 值处的 Y 值。当曲线向上时,(YatXmax - YatXmin) 为正;当曲线向下时,(YatXmax - YatXmin) 为负。

列标题值的均值(或该均值的对数)

对于某些类型的数据,采用数字标注数据集是合理的。每个列标题都有一个数值。

对于此类数据,您可以通过两种方式获取列标题的数值:

使用“约束”选项卡并选择“数据集常量(=列标题)”。此时模型中的该参数成为常量,但其数值会因数据集列而异,并从列标题中获取值。

在定义方程的对话框中,于“初始值规则”选项卡中,将参数的初始值设置为这些列标题的均值,或该均值的对数。

通过示例来理解这一点最为直观。打开竞争性酶抑制作用的示例 XY 数据集,按照说明操作,并检查对话框设置。

初始、中间和最终斜率

Prism 7 新增功能:初始值可基于初始、中间或最终斜率(X 值最小、中间或最大时的 dY/dX)或其倒数。

示例

 Y = Vmax*X/(Km + X)

上述方程是 Prism 内置的米氏-门捷列夫酶动力学模型。若选择此方程作为内置方程,初始值的规则将自动提供。但若将其作为新的用户自定义方程输入,制定规则便十分简单。

Vmax 是 X(底物)处于极高值时的 Y 值(酶速率)。因此,一个合理的初始值是将 Vmax 设为数据集中最大的 Y 值。要实现这一点,请输入数值 1.0 并选择乘数 *Ymax。这意味着 Prism 将通过将最大的 Y 值乘以 1.0 来计算初始值。 您可能会认为 Vmax 通常高于最大的 Y 值,因此应将 1.25 倍的 Ymax 作为初始值。通常存在多种可被论证的规则。这些规则仅用于计算初始值,因此存在很大的调整空间。

Km 是对应于 Y 值(酶速率)为 Vmax 一半时的 X 值(底物浓度)。通过将 1.0 乘以“Ymid 处的 X 值”来计算其初始值。Prism 随后取最大和最小 Y 值的平均值来计算 Ymid,然后通过直线插值来找到对应的 X 值。

XMIN、XMID 或 XMAX 处的斜率

这些是图表左侧、中间或右侧的斜率(Y值的变化量除以X值的变化量)。若数据点数≥30,Prism将根据前10%、中间10%或后10%的数据点计算斜率;若数据点数<30,则根据前两个、中间两个或后两个数据点计算斜率。

若数据点超过 30 个,斜率将通过对前 10%、中 10% 或后 10% 的数据点进行线性回归计算得出(取整向下),并取最小值。若数据点少于 30 个,斜率将由前两个或后两个数据点确定。对于数据点少于 30 个的 slopeAtYmid 函数,若数据点为偶数,Prism 将使用两个中间点;否则将使用三个中间点。

如果未输入任何规则会发生什么?

若未为每个参数输入规则,Prism 将在每次将数据拟合到方程时强制要求您输入初始值。

如何覆盖规则定义的初始值

规则与每个方程一同存储,并可在定义和编辑方程的对话框中进行编辑。

规则定义的值显示在非线性回归对话框的“初始值”选项卡中。要覆盖初始值:

1.在对话框顶部选择一个或多个数据集。或单击“全选”以选中所有数据集。

2.取消勾选“自动选择”选项。

3.输入初始值(作为数值,即数字,而非规则)。

若要检查初始值的合理性,请转至“诊断”选项卡并勾选以下选项:

(*) 不要拟合曲线。而是绘制由参数初始值定义的曲线。

如果生成的曲线与数据点相距甚远,请在要求 Prism 将模型拟合到数据之前,修改初始值(或生成这些值的规则)。