Parameters optimization profiles

diffeq
optim

#1

Hi, has anyone solved the following optimization problem: I am estimating ODE parameters (using NLopt) like param1,param2,param3 and I want to create “profiles” of each parameter. It means estimate param2 and param3 for different fixed values of param1 and plot cost_value(param1) and the same for param2 and param3. Of course it seems quite easy to code but I am not sure how to implement adaptive stepsize control here etc. I guess the problem is called “partial likelihood”. Has anyone seen julia tools/articles on this problem?


#2

Let me see if I got this right. You’re optimizing param2 and param3 for given values of param1 and keeping (param1,param2,param3,cost) to make some kind of plot (presumably using NLopt on the DiffEq tools), and you want to find out the best algorithm for picking param1s efficiently such that you get a good graph out, calculating the values at least amount of param1s as possible? The baseline is to just make an even grid of param1s of course. But to get fancy, you might want to take some heuristics out of this:

https://github.com/JuliaPlots/Plots.jl/issues/621

and maybe those can help you identify the portions of the likelihood that are more prone to change and reduce the number of required param1s by focusing on specific areas.


#3

Chris, thanks for you response!
In general this method is called “Profile likelihood” and it is one of the approaches of identifiability analysis of ODE (or any Dynamical model) parameters.
The idea of the method is to re-optimize the problem fixing the values of one of the parameters (ex, param1) and to plot best_cost(param1) to say smth about sensitivity and identifiability of param1.
It is described in a number of articles:


And one of the algorithm used is described in the supplementary materials of this article.
The authors implemented this approach in the following matlab tool:

The main question as you have mentioned is the right choice of param1s because each optimization is computationally “expensive”.
I ll try to figure out if adaptive plotting can help here.
If our optimization pkgs have optimizers which include this functionality please let me know)


#4

@ChrisRackauckas thanks a lot for the link, adapted_grid from PlotUtils is a great solution here