Re: How does "fit_counts" use the initial parameter values?

From: John Houck <houck_at_email.domain.hidden>
Date: Wed, 19 Nov 2008 06:15:15 -0500
On Wed, Nov 19, 2008 at 11:03 +0100, Michael Smith wrote:
> This is a question regarding how "fit_counts" uses the initial parameter
> values given by "list_par".
[...]
> - fit with "gaussian" using Cash statistic
> - use "conf" to find the 68% confidence limit for "gaussian(1).LineE"
>
> - ISIS tells me an improved fit has been found
>
> - "list_par" shows the new best fit parameters
> - and "eval_counts" shows that these parameters indeed give a better fit
>
> so far so good
>
> - but, running "fit_counts", the result is a *worse* fit than before
> (reverting
>   to parameter values similar to those *before* running "conf"
>
> My question is: does "fit_counts" use the parameter values shown by
> "list_par"
> as starting values for the fit process?

Yes.

> If so, how can "fit_counts" find best fit values which give a
> worse fit than the starting values?

I assume you're using the default optimization method, lmdif,
which an implementation of the Levenberg-Marquardt method.  It
makes use of derivative information derived by assuming that
that the fit-statistic has the same form as the chi-square
statistic (a sum of squared differences between model and
data).  As a result, the method always changes the parameters
so as to improve the chi-square statistic (because the
derivatives of the statistic are hard-coded in lmdif).  In many
cases (e.g. when starting with a poor fit), a parameter change
that improves the chi-square statistic will also improve the
cash statistic, so the L-M method will usually be effective in
getting "close" to minimum of the cash statistic.

However, the chi-square minimum and the cash minimum are not in
exactly the same place, so if the algorithm is started very
close to the cash minimum, L-M might move away from it a little
bit.

To get the best estimate of the cash statistic minimum, it may
be necessary to switch to "subplex", a variant of the simplex
method:

   set_fit_method ("subplex");

subplex optimizes the statistic value without making use of
derivative information, so it will do a better job of finding
the cash minimum.  On the other hand, lmdif usually converges
faster, so it's usually the best method for finding the
neighborhood of the minimum.

Thanks,
-John
----
You received this message because you are
subscribed to the isis-users list.
To unsubscribe, send a message to
isis-users-request_at_email.domain.hiddenwith the first line of the message as:
unsubscribe
Received on Wed Nov 19 2008 - 06:15:19 EST

This archive was generated by hypermail 2.2.0 : Mon Dec 01 2008 - 12:34:58 EST