如何忽略optim中函数执行中的错误?

时间:2016-10-05 08:53:12

标签: r optimization

我正在使用optim来估算自定义函数的参数。此自定义函数包括在无效参数输入的情况下生成错误消息的函数(它包含多个分布,但假设例如,如果发生正态分布的负标准偏差则会产生错误。因此与{{1}不同NaN函数的值和警告,此函数停止并返回错误消息。)

现在,如果我在dnorm中使用BFGS选项,那么optim可能会在某些时候尝试无效的参数输入,这会在评估自定义函数时导致错误并停止优化程序。如果我使用optim选项,这不是问题。

所以,我的问题是:有没有办法将Nelder-Mead函数与optim选项一起使用,以便在发生优化的自定义函数出错时它不会停止?

当然,理论上我可以重新编写自定义函数,但这不是一个选项,因为它是更大的包的一部分,在其他情况下需要错误消息。我也知道BFGS选项,但是,在许多情况下,选择合适的参数边界并不简单(导致错误的实际值可能是训练数据的复杂变换)。

这是一个例子(标准正态分布的参数的最大似然估计)

L-BFGS-B

0 个答案:

没有答案