openpharma/mmrm

Once default optimizer fails, try all optimizers but with increased number of iterations

Opened this issue · 2 comments

This is a first step towards improving convergence behavior on difficult data sets.
See #380 for a motivating example.

To do:

  • Define optimizer_control lists to use for the second try optimization
    • e.g. eval.max = 1000, iter.max = 1000 for nlminb
    • e.g. maxit = 50000 for optim
  • For refit_multiple_optimizers default to standard optimizer_control if not provided otherwise by the user

idea: provide additional default optimizers that has larger maxit or eval.max, if needed they will be executed after the first failure. or, provide batches of optimizer?

with this it can be a bit cleaner, and we don't need to mess up the defaults and user control (e.g. what if a user already provides a optimizer with maxeval set to a larger number? shall we retry with a even larger max eval?)

thanks @clarkliming , yeah additional optimizers with higher thresholds would also be fine