MATLAB: Log likelihood is initially high in FOCE but as the iteration proceeds to greater than 3500 the log likelihood reduces and finally ends with error that maximum iteration has been achieved.


I am trying to develop a population pharmacokinetic model using Simbiology,
My settings are
Estimation method: Estimating mixed effects model with nlmefit
Error model is proportional
Method to approximate non-linear mixed effect model likelihood is FOCE.
The FOCE model fitting progress shows a loglikelihood of around -200 (that is good) till iteration of 3500 but after that suddenly the loglikelihood goes to around -900.
Then it keeps on proceeding, untill finally a error comes that the maximum iteration has been obtained. Now the final model has loglikelihood of around -900.
But initially till 3500 iteration, it had a loglikelihood of -200. So finally should i take loglikelihood as -200 or -900?

Best Answer

  • Dear Praveen,
    Generally, parameter estimation is a complicated topic that inherently has a lot of ambiguity. This makes it difficult to answer your question. However, I have posted guidance and steps to help you with parameter estimation in our discussion section:
    I cannot answer your question, other than that aim an optimization is to minimize the value of the objective function. SimBiology's progress plots reports the log-likelihood (log of your objective function) and aims to maximize the log-likelihood (actually, it minimizes the value of the negative log-likelihood. So you are right in saying that -200 would be the function value you are looking for. What might happen during your optimization is that your algorithm gets stuck in a local minimum of the objective function - NLME algorithms are local optimization algorithms and don't guarantee termination in a global minimum.
    What I recommend to solve this problem is (if you haven't already done so):
    • that you follow the steps I describe in the link above to make sure your optimization problem is correctly set up
    • start with a regular non-linear regression estimation (no NLME/random effects) and use a global optimization algorithm to find the global minimum
    • Once you have found that minimum (and the associated parameter estimates), you can use these estimates as inital estimates for your NLME algorithm
    Hope that helps,