next up previous contents index
Next: Errors after [HESse]HESSE Up: Non-linearities: [MIGrad]MIGRAD versus Previous: Errors printed by

Errors after [MIGrad]MIGRAD (or [MINImize]MINIMIZE)

The minimizing technique currently implemented in [MIGrad]MIGRAD is a stable variation (the ``switching'' method) of the Davidon-Fletcher-Powell variable-metric algorithm. This algorithm converges to the correct error matrix as it converges to the function minimum.

This algorithm requires at each step a ``working approximation'' of the error matrix, and a rather good approximation to the gradient vector at the current best point. The starting approximation to the error matrix may be obtained in different ways, depending on the status of the error matrix before MIGRAD is called as well as the value of STRATEGY. Usually it is found to be advantageous to evaluate the error matrix rather carefully at the start point in order to avoid premature convergence, but in principle even the unit matrix can be used as a starting approximation. Usually the Minuit default is to start by calculating the full error matrix by calculating all the second derivatives and inverting the matrix. If the user wants to make sure this is done, he can call HESSE before MIGRAD.

If a unit matrix is taken to start, then the first step will be in a steepest descent direction, which is not bad, but the estimate of EDM, needed to judge convergence, will be poor. At each successive step, the information gathered from the change of gradient is used to improve the approximation to the error matrix, without the need to calculate any second derivatives or invert any matrices. The algorithm used for this updating is supposed to be the best known, but if there are a lot of highly correlated parameters, it may take many steps before the off-diagonal elements of the error matrix approach the correct values.

In practice, [MIGrad]MIGRAD usually yields good estimates of the error matrix, but it is not absolutely reliable for two reasons:

  1. Convergence to the minimum may occur ``too fast'' for [MIGrad]MIGRAD to have a good estimate of the error matrix. In the most flagrant of such cases, [MIGrad]MIGRAD realizes this and automatically introduces an additional call to [HESse]HESSE (described below), informing the user that the covariance matrix is being recalculated. Since, for n variable parameters, there are n(n+1)/2 elements in the error matrix, the number of FCN calls from [MIGrad]MIGRAD must be large compared with n2 in order for the [MIGrad]MIGRAD error matrix calculation to be reliable.
  2. [MIGrad]MIGRAD gathers information about the error matrix as it proceeds, based on function values calculated away from the minimum and assuming that the error matrix is nearly constant as a function of the parameters, as it would be if the problem were nearly linear. If the problem is highly non-linear, the error matrix will depend strongly on the parameters, [MIGrad]MIGRAD will converge more slowly, and the resulting error matrix will at best represent some average over the last part of the trajectory in parameter-space traversed by [MIGrad]MIGRAD.

If [MIGrad]MIGRAD errors are wrong because of (1), [HESse]HESSE should be commanded after [MIGrad]MIGRAD and will give the correct errors. If [MIGrad]MIGRAD errors are wrong because of (2), [HESse]HESSE will help, but only in an academic sense, since in this case the error matrix is not the whole story and for proper error calculation [MINos]MINOS must be used.

As a general rule, anyone seriously interested in the parameter errors should always put at least a [HESse]HESSE command after each [MIGrad]MIGRAD (or [MINImize]MINIMIZE) command.



next up previous contents index
Next: Errors after [HESse]HESSE Up: Non-linearities: [MIGrad]MIGRAD versus Previous: Errors printed by


Janne Saarela
Mon Apr 3 15:36:46 METDST 1995