GlobalSearch的上下限

1次查看(最近30天)
史努比
史努比 2021年9月5日
评论道: 史努比2021年9月7日
在实证计量研究中,我将对数似然函数最大化,以估计混合logit模型。为此,我使用GlobalSearch,我试图找到参数向量的估计(非线性回归中的系数,使对数似然最大化)。在相当长的一段时间里,我使用theta_ig作为初始猜测向量,而没有意识到我能够指定向量的估计的下界和上界。我的想法是指定这些界限,以帮助减少最小化的时间。然而,当我使用边界时,GlobalSearch做了一些我不太理解的事情。当我在没有边界的情况下运行GlobalSearch时,它会返回一个估计的theta值,并提示“fmincon停止了,因为当前步长小于步长公差的值,并且约束满足到约束公差的值之内。”这很好。当我指定界限时,如下面的代码,然而,GlobalSearch (I)需要更多的时间来返回一个最小化的向量,(ii)它不会返回与我不使用界限时相同的最小化的向量,(iii)它说“所有38个本地解算器运行时收敛一个正的本地解算器退出标志”,当我不使用边界时,我不会得到这个标志。尽管我读了很多GlobalSearch是如何搜索最小值的,但我似乎不明白为什么会发生这三件事。
选择= optimset (“GradObj”“关闭”“MaxFunEvals”, 10000,“显示”“上”“DerivativeCheck”“关闭”“算法”“sqp”“TolFun”1 e-9“TolX”1 e-9“显示”“通路”);
问题= createOptimProblem (“fmincon”“目标”obj,“x0”theta_ig,“磅”theta_lb,乌兰巴托的theta_ub,“选项”、选择);
gs = GlobalSearch (“显示”“通路”);
[theta_hat, fval exitflag、输出解决方案金宝搏官方网站]=运行(gs、问题);
2的评论
史努比
史努比 2021年9月7日
谢谢你的回复。Display='on'实际上是不必要的。DerivateCheck='off',因为我没有为目标函数提供梯度,所以我不能将它设置为'on'。使用边界金宝搏官方网站和不使用边界时的解是不同的。我不明白界限是否包括无界限的解是什么意思。当我包含界限时,我如何确定目标函数是改善了还是恶化了?我会看一下链接。

登录评论。

答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

翻译的