Dear MathGroup,
I have recently written a function that involves minimizing a
log-likelihood function. The function to be minimised is the log of an ugly
high-order polynomial in three variables.
It works as expected for some data, but for other data sets, the
FindMinimum function ends up going to parameters that give complex-number
values of the objective function, and I get an error. (This also happens in
Gauss so it's not just a Mathematica problem).
Is there some way of telling the FindMinimum function that if it hits
parameter values that give complex-valued results, it should move to some
other initial guesses for the FindMinimum and try again?
eg, something like: If[FindMinimum[expr,{a,a0},{b,b0}]==Message[whatever
the name of the message that comes up
is],FindMinimum[expr,{a,a0+1},{b,b0+1}],FindMinimum[expr,{a,a0},{b,b0}]]
And presumably put it in a While Loop, to keep progressively trying
starting values until it stops falling off the real line.
I was hoping to write a generalised function to minimise the log-likelihood
function for any appropriate data vector, so I don't know what the "right"
starting values are in any given case, though they are likely to be "small"
(eg between -10 and 10).
Failing this, if anyone has written a function to estimate the parameters
of a GARCH model (which involves minimising this log-likelihood function),
please let me know how you managed it!
Please send any replies to my work address ellisl at rba.gov.au as well as my
home address elisha at dot.net.au
Thanks in anticipation,
Luci Ellis.
--------------
Luci Ellis: elisha at dot.net.au
http://www.dot.net.au/~elisha