insysbio / LikelihoodProfiler.jl

LikelihoodProfiler is a Julia package for practical identifiability analysis and confidence intervals evaluation.
https://insysbio.github.io/LikelihoodProfiler.jl/latest
MIT License
16 stars 4 forks source link

Liklihood profile does not computed all the way to identifiability level. #9

Closed TorkelE closed 5 months ago

TorkelE commented 11 months ago

I am fitting a set of ODEs to data, minimizing a cost function to do so. After I have found a parameter set I want to use profile likelihood analysis to evaluate practical identifiability. However, I do not seem to get the complete evaluation?

# Getting these functions is quite convoluted, but in principle it is just the fitting of and ODE to data using l2 distance.
cost_func(p) # My cost function.
opt_parameterset The parameter set that minimises the cost function.
opt_val # The minimal value of the cost function

using LikelihoodProfiler

@time liklihood_profile = get_interval(
    opt_parameterset,                 # starting point
    1,                                                      # parameter component to analyze
    cost_func,                                              # profile function
    :LIN_EXTRAPOL;                                          # method
    loss_crit = 10*opt_val                     # critical level of loss function
)
plot(liklihood_profile)

image

The evaluation of the likelihood profile only takes like 20 second as well, so it feel it could have evaluate more of it?

Is there a way to extend the evaluation?

ivborissov commented 5 months ago

Apologies for getting back to you so late. In general LIN_EXTRAPOL is an experimental method tested on rather simple use-cases. It is recommended to use :CICO_ONE_PASS. If you can share the problem or a MWE we can work it out together.

TorkelE commented 5 months ago

Thank you, I will try :CICO_ONE_PASS once I have trouble. I restarted everything this week, and got it working now.