I've been using the Synth package (which uses optimx for the optimization) and I can't find the answer to whether Synth gives a non-convergence error when it doesn't converge. I can see in the help file for optimx that, by default, it does not save the failures (i.e. those answers that do not converge) so I am guessing that by default it does not pass those failures onto Synth; however, I want to be sure that the answers I am getting have converged. Is there a way to be sure of this through the convcode() setting or something else?
Asked
Active
Viewed 432 times
1 Answers
2
I took a look at the code and it does not set a control value for save.failures
so It should use the default behavior of optimx
whicho is FALSE as you already knew. Here are the relevant calls to optimx
in the synth()
code.
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)

MrFlick
- 195,160
- 17
- 277
- 295
-
1Thanks, that's what I figured. – Ainhoa May 31 '14 at 18:05