该代码对于其他示例运行良好,但对于少数示例,它显示该图不收敛。
“考虑更宽松的收敛标准或在“迭代选项”下选择“接受当前估计”。 失败:无法降低目标函数
代码如下,我附上了它不能正常工作的示例。
Names Default To Here( 1 );
dt= currentdatatable();
New Column( "Model",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Parameter(
{p = 0.29, x0 = 15, m0 = 1.2, x1 = 30, m1 = 5},
p * (1 - Exp( -(X_mm / x0) ^ m0 )) + (1 - p) * (1
-Exp( -(X_mm / x1) ^ m1 ))
)
),
);
nlin = dt << Nonlinear(
SendToByGroup( Bygroup Default ),
Y( Ln_C ),
X( :Model ),
Iteration Limit( 1000 ),
Unthreaded( 1 ),
QuasiNewton BFGS,
//Newton,
Finish,
By( Sample_ID ),
);
感谢您提供示例。 这在诊断问题时很有用。
我以交互方式启动了非线性并拟合每个样本的模型。 我看到同样的通知。 它基于您用来确定收敛的标准。 没有一个标准得到满足。 另一方面,你也很适合! 上交所规模相对较小。
我不认为这是数据问题或模型不合适。 事实上,我单击了“重置”,然后单击“开始”。 每个样本均按梯度准则第二次收敛。
谢谢先生,通过单击“重置”和“执行”,数据将通过梯度准则进行收敛。 但是,如果我想在脚本中自动化它而不是重置图表,因为我想使用此输出进行进一步分析,该怎么办? 并且只有这些样本在第一次尝试中没有被收敛,那么如何使用脚本自动执行此操作。
如果收敛失败似乎需要一次 Reset 和 Go,那么您的脚本可以将消息连续发送到每个样本。 请参阅 Reset 和 Go 消息的脚本索引。
