R中optimx/Synth中的Convcode

R中optimx/Synth中的Convcode,r,convergence,R,Convergence,我一直在使用Synth包(它使用optimx进行优化),但我找不到Synth在不收敛时是否会出现非收敛错误的答案。我可以在optimx的帮助文件中看到,默认情况下,它不会保存失败(即那些不收敛的答案),因此我猜默认情况下它不会将这些失败传递给Synth;然而,我想确保我得到的答案是一致的。有没有办法通过convcode()设置或其他方法来确保这一点?我查看了代码,它没有为保存失败设置控制值,因此它应该使用默认行为optimx,正如您所知,它是FALSE。下面是对synth()代码中的optimx

我一直在使用Synth包(它使用optimx进行优化),但我找不到Synth在不收敛时是否会出现非收敛错误的答案。我可以在optimx的帮助文件中看到,默认情况下,它不会保存失败(即那些不收敛的答案),因此我猜默认情况下它不会将这些失败传递给Synth;然而,我想确保我得到的答案是一致的。有没有办法通过convcode()设置或其他方法来确保这一点?

我查看了代码,它没有为
保存失败设置控制值,因此它应该使用默认行为
optimx
,正如您所知,它是FALSE。下面是对
synth()
代码中的
optimx
的相关调用

rgV.optim.1 <- optimx(par = SV1, fn = fn.V, gr = NULL, 
    hess = NULL, method = optimxmethod, itnmax = NULL, 
    hessian = FALSE, control = list(kkt = FALSE, starttests = FALSE, 
        dowarn = FALSE, all.methods = all.methods), X0.scaled = X0.scaled, 
    X1.scaled = X1.scaled, Z0 = Z0, Z1 = Z1, quadopt = quadopt, 
    margin.ipop = Margin.ipop, sigf.ipop = Sigf.ipop, 
    bound.ipop = Bound.ipop)

....

rgV.optim.2 <- optimx(par = SV2, fn = fn.V, gr = NULL, 
    hess = NULL, method = optimxmethod, itnmax = NULL, 
    hessian = FALSE, control = list(kkt = FALSE, 
      starttests = FALSE, dowarn = FALSE, all.methods = all.methods), 
    X0.scaled = X0.scaled, X1.scaled = X1.scaled, 
    Z0 = Z0, Z1 = Z1, quadopt = quadopt, margin.ipop = Margin.ipop, 
    sigf.ipop = Sigf.ipop, bound.ipop = Bound.ipop)

rgV.optim.1谢谢,我就是这么想的。