MATLAB Answers

How does matlab do maximum likelihood on custom functions?

192 views (last 30 days)
sepideh on 5 Jul 2012
Commented: Jeff Miller on 20 Oct 2020
I am trying to fit a custom function ( generalized Normal distribution type II my data and i am using mle function. I wonder what is the method that Matlab uses, is it a search method?


Sign in to comment.

Accepted Answer

Peter Perkins
Peter Perkins on 6 Jul 2012
Ordinarily, the mle function minimizes the negative log-likelihood that you have defined (either as a PDF, or a log PDF, or as the LL) using fminsearch. If you have the Optimization Toolbox, you can tell mle to use fmincon. This is the 'OptimFun' parameter, explained in the help for the mle function.


sepideh on 31 Aug 2012
Thanks, using mle i find this warning :Warning: Maximum likelihood estimation did not converge. Iteration limit exceeded. How much i can trust the answers and how can i change the number of iterations?
Peter Perkins
Peter Perkins on 31 Aug 2012
Not at all if it didn't converge, and
>> help mle
mle Maximum likelihood estimation.
'options' A structure created by a call to STATSET, containing
numerical options for the fitting algorithm. Not
applicable to all distributions.

Sign in to comment.

More Answers (1)

gujax on 20 Oct 2020
I would like to explore the above question further...
If I use a standard distribution listed in Matlab document and not my custom, how is mle evaluated? For example if the distribution is Poisson, does mle evaluate minimum of log pdf i.e. does it convert to log pdf? So If i provide a pdf, do I have to state that its a log pdf?

  1 Comment

Jeff Miller
Jeff Miller on 20 Oct 2020
1) Just guessing here, but matlab probably obtains the mle's differently for different distributions, because: for some distributions the mle's are simple functions of the data values, and for other distributions you have to use numerical search.
2) When doing numerical search, matlab probably converts to log pdf to minimize numerical problems.
3) If you provide your own pdf, you definitely would have to provide the pdf or indicate that it is the log pdf (if the mle function has an option for that). The parameters that maximize the product of the pdf values are not necessarily the same as those that maximize the product of the log pdf values.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by