On Tue, Sep 23, 2008 at 16:47 +0400, Dmitry Svinkin wrote: > Hi! > I get underesimated single-parameter confidence limits when I try to compute > it by conf(). > > I use model "grbm(1)+0.0*constant(1)+0.0*constant(2)". And as a > fitting result I got such parameters: > > isis> list_par; > grbm(1)+0.0*constant(1)+0.0*constant(2) > idx param tie-to freeze value min max > 1 grbm(1).norm 0 1 0.03931449 0 1e+10 > #=> constant(1).factor/integrate_band(grbm(1).alpha,grbm(1).beta,grbm(1).tem,1.,20,7000,100.,1) > 2 grbm(1).alpha 0 0 -0.5793709 -3 2 > 3 grbm(1).beta 0 0 -3.515191 -10 1 > 4 grbm(1).tem 0 1 510.6869 50 1000 keV > #=> constant(2).factor/(grbm(1).alpha+2.) > 5 constant(1).factor 0 0 5.950865e-06 0 1e+10 > 6 constant(2).factor 0 0 725.4967 0 1e+10 > > Where integrate_band is a user defined function. > > Next step is to get confidence limits of parameters. Thereto I run, for > example, conf(2,1) to compue 68% conf limits. > > isis> conf(2,0); > **** Lower confidence limit didn't converge[2]: allow wider parameter ranges? > -0.534332 > -0.579371 > > Also you can see that lower confidence limit is much smaller than upper > one. When I use grbm model without any functions in parameters all is > ok. > > Can you explain, please, the root of such behavior? > > Thanks. > Dmitriy Hi Dmitriy, There are several reasons why conf might fail to converge. Essentially, conf is looking for a parameter value that will cause a specific increase in chi-square. If the underlying model is sufficiently nonlinear or is otherwise not smoothly varying (perhaps because of interpolation within a coarsely spaced table), it may not be possible to compute that parameter value to the default tolerance. If the chi-square space is sufficiently complicated, there might be local minima that confuse the search for the confidence limits. One solution might be to allow a larger convergence error, perhaps: (cmin, cmax) = conf(2, 1, 0.01); You might also consider providing narrower min/max values for constant(1).factor and constant(2).factor. When you define some parameters as functions of others, does that make the initial fit more difficult? You could test this by freezing parameter #2 at a value relatively near the best-fit, then fitting again, just to see how easy or hard it is to find the new best-fit chi-square. I'm wondering if those parameter functions introduce significant additional nonlinearity. If that's the trouble, maybe the optimization problem could be formulated in a slightly different way by using a suitably defined constraint function (see set_fit_constraint). 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: unsubscribeReceived on Tue Sep 23 2008 - 13:19:44 EDT
This archive was generated by hypermail 2.2.0 : Tue Oct 28 2008 - 15:50:37 EDT