Re: Error bars

From: Lorenzo Moneta <Lorenzo.Moneta_at_cern.ch>
Date: Wed, 26 Aug 2009 12:12:40 +0200


Hello Patrick,

  What do you mean that the error are not satisfying. Minuit calculates the errors using the approximation of a chi2 with a parabola, around the minimum.
So, if your chi2 function is not a parabola, you could have different errors. In this case you can run also Minos to get the right values.

Otherwise, it could be that your chi2 is not correctly normalized. This seems to me your case, since you are getting minimum chi2 values close to zero.
This could be due for an over-estimation of your input errors on the measured points, or for over-fitting (fitting with too many parameters). In principle you could re-normalize the errors by scaling them by the factor sqrt( chi2 / ndf).

   Best Regards

  Lorenzo

On Aug 25, 2009, at 5:25 PM, Patrick Dupre wrote:

> Hi Rene,
>
> It is also because I though that Minuit was the best package that I
> decided to use it for my minimization:
>
> THis is part of the calling code:
>
> fFCN = new HR_Chi2 ;
> strategy = 0 ;
> max_iter = 0 ;
> tolerance = 0.001 ;
> VariableMetricMinimizer fMinimizer ;
> MnStrategy stra (strategy) ;
> FunctionMinimum min = fMinimizer.Minimize (*fFCN, par, stra,
> max_iter, tolerance) ;
> MnHesse hesse ;
> hesse (*fFCN, min) ;
>
> with
> class HR_Chi2 : public FCNBase
>
> and this is the output:
>
>
> Minuit did successfully converge.
> # of function calls: 52
> minimum function Value: 7.380282915304e-12
> minimum edm: 1.022387156745e-12
> minimum internal state vector: LAVector parameters:
> 1.130820372004
> 1.130755643581
> -1.130820372004
> -1.130820372004
> 1.130820372004
> -1.130820372004
>
> minimum internal covariance matrix: LASymMatrix parameters:
> 3.7244149e+09 1.4745303e+10 8.4766235e+09 3.8898796e+09 1.538776e
> +10 1.786866e+10
> 1.4745303e+10 5.9703822e+10 3.4202785e+10 1.5570074e+10
> 6.2000624e+10 7.2026245e+10
> 8.4766235e+09 3.4202785e+10 2.0213537e+10 8.9461161e+09 3.565615e
> +10 4.1459199e+10
> 3.8898796e+09 1.5570074e+10 8.9461161e+09 4.1217198e+09
> 1.6237782e+10 1.8856511e+10
> 1.538776e+10 6.2000624e+10 3.565615e+10 1.6237782e+10
> 6.5079162e+10 7.5171784e+10
> 1.786866e+10 7.2026245e+10 4.1459199e+10 1.8856511e+10
> 7.5171784e+10 8.7494408e+10
>
>
> # ext. || Name || type || Value || Error +/-
>
> 0 || 0 || const || 0 ||
> 1 || 1 || const || 1.292617 ||
> 2 || 2 || const || 0.3213448 ||
> 3 || 3 || const || 0.285349 ||
> 4 || 4 || const || -2e-07 ||
> 5 || 5 || const || 0 ||
> 6 || 6 || const || -2.045e-05 ||
> 7 || 7 || const || 0 ||
> 8 || 8 || const || 0 ||
> 9 || 9 || const || 0.133 ||
> 10 || 10 || const || 4.34 ||
> 11 || 11 || const || 0.469 ||
> 12 || 12 || const || 1.51e-05 ||
> 13 || 13 || const || 0 ||
> 14 || 14 || const || 336 ||
> 15 || 15 || const || 0 ||
> 16 || 16 || limited || -0.0718 ||0.7460469970423
> 17 || 17 || limited || -0.008802420171572 ||0.1671432233427
> 18 || 18 || const || -0.000142 ||
> 19 || 19 || limited || 0.0116 ||0.1941376753559
> 20 || 20 || const || 7373.27682 ||
> 21 || 21 || const || 1.178074 ||
> 22 || 22 || const || 0.3274562 ||
> 23 || 23 || const || 0.2840688 ||
> 24 || 24 || const || 0 ||
> 25 || 25 || const || 0 ||
> 26 || 26 || const || 0 ||
> 27 || 27 || const || 0 ||
> 28 || 28 || const || 0 ||
> 29 || 29 || const || 0.168 ||
> 30 || 30 || const || 4.1 ||
> 31 || 31 || const || 0.42 ||
> 32 || 32 || const || 0 ||
> 33 || 33 || const || 0 ||
> 34 || 34 || const || 1298 ||
> 35 || 35 || const || 0 ||
> 36 || 36 || limited || 0.069835 ||0.9546138133324
> 37 || 37 || const || 0.0109 ||
> 38 || 38 || limited || -0.00254 ||
> 0.04935933170717
> 39 || 39 || limited || 0.02241 ||0.2312611134156
> 40 || 40 || const || 0.0135 ||
> 41 || 41 || const || 0 ||
> 42 || 42 || const || 0 ||
> 43 || 43 || const || 3.6 ||
> 44 || 44 || const || 15.71 ||
> 45 || 45 || const || 0.0045 ||
> 46 || 46 || const || 0.0069 ||
> 47 || 47 || const || 3.45e-08 ||
>
> Usually strategy = 1 does not allow a correct convergence.
> I can provide more information, but I need to know which ones are
> relevant.
>
>
>> Hi Patrick,
>>
>> This is a very strange report. What do you expect that we can do
>> with it?
>> Minuit is a very serious algorithm. If you find something better,
>> let us know.
>> Our experience is that a wrong output from Minuit is typically
>> coming from a badly expressed minimization function. If you can
>> extract what is relevant from us from the complexity of your stuff,
>> let us know, we are willing to help once you send some concrete
>> material that we can use to investigate your problem.
>>
>> Rene Brun
>>
>> Patrick Dupre wrote:
>>> Hello,
>>> I already mentioned in the past that the error bars issued from
>>> Minuit2
>>> were not satisfying.
>>> I would like to know how we can make progress, but one point is
>>> that I
>>> cannot easy give my application because Minuit calls are
>>> integrated inside
>>> a big application, and the fitting part requires a call to a perl
>>> subroutine. However, I can run some tests (and recompile the Minuit2
>>> code) if somebody has the willing to take it seriously.
>>> My present concern is that I am publishing the fitted data,
>>> mentioning
>>> Minuit package, but I also have to say that I am not able to
>>> publish the
>>> error bars issued from Minuit.
>>> Thank
>>
>>
>
> --
> ---
> =
> =
> =
> =
> ======================================================================
> Patrick DUPRÉ | |
> Department of Chemistry | | Phone: (44)-
> (0)-1904-434384
> The University of York | | Fax: (44)-
> (0)-1904-432516
> Heslington | |
> York YO10 5DD United Kingdom | | email: pd520_at_york.ac.uk
> =
> =
> =
> =
> ======================================================================
Received on Wed Aug 26 2009 - 12:12:44 CEST

This archive was generated by hypermail 2.2.0 : Wed Aug 26 2009 - 17:50:02 CEST