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?

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 `param1`

s efficiently such that you get a good graph out, calculating the values at least amount of `param1`

s as possible? The baseline is to just make an even grid of `param1`

s 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 `param1`

s by focusing on specific areas.

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)

@ChrisRackauckas thanks a lot for the link, `adapted_grid`

from PlotUtils is a great solution here