The Minuit processor [MINOs]MINOS was probably the first, and may still be the only, generally available program to calculate parameter errors taking into account both parameter correlations and non-linearities. The [MINOs]MINOS error intervals are in general assymmetric, and may be expensive to calculate, especially if there are a lot of free parameters and the problem is very non-linear.
[MINOs]MINOS can only operate after a good minimum has already been found, and
the error matrix has been calculated, so the [MINOs]MINOS command will
normally follow a [MIGrad]MIGRAD command.
The [MINOs]MINOS error for a given parameter is defined as the change in the
value of that parameter which causes
to increase by the amount
is the minimum of FCN with respect to all other
free parameters, and
UP is the ERRordef value specified by the
user (default = 1.).
The algorithm for finding the positive and negative [MINOs]MINOS errors for
N consists of varying parameter
N, each time minimizing
FCN with respect to all the other
NPAR-1 variable parameters,
to find numerically the two values of parameter
N for which the
minimum of FCN takes on the values
FMIN is the
minimum of FCN with respect to all
In order to make the procedure as fast as possible, [MINOs]MINOS uses the
error matrix to predict the values of all parameters at the
various sub-minima which it will have to find in the course of the
calculation, and in the limit that the problem is nearly linear,
the predictions of [MINOs]MINOS will be nearly exact, requiring very
few iterations. On the other hand, when the problem is very
non-linear (i.e., FCN is far from a quadratic function of its
parameters), that is precisely the situation when [MINOs]MINOS is needed
in order to indicate the correct parameter errors.
Minuit currently offers two very different procedures for finding FCN contours. They will be identified by the corresponding command names: CONtour and MNContour.
This procedure is designed for a lineprinter or alphanumeric terminal as output device, and gives a static picture of FCN as function of the two parameters specified by the user, that is, all the other variable parameters (if any) are considered as temporarily fixed at their current values. First a range is chosen, by default two current standard deviations on either side of the current best value of each of the two parameters, and a grid size n is chosen, by default 25 by 25 positions for the full range of each parameter. Contour zero is defined as the current best function value
(presumably the minimum), and then the
contour is defined as where FCN has the value . The procedure then simply evaluates FCN at the four corners of each of the grid positions (which makes evaluations) to determine whether the contour passes through it. The method, although not very efficient or precise, is very robust, and capable of revealing unexpected multiple valleys.
The contour calculated by MNContour is dynamic, in the sense
that it represents the minimum of FCN with respect to all the
NPAR-2 parameters (if any). In statistical terms, this
means that MNContour takes account of the correlations between
the two parameters being plotted, and all the other variable
parameters, using a procedure analogous to that of [MINOs]MINOS.
(If this feature is not wanted, then the other
parameters must be FIXed before calling MNContour.)
MNContour provides the actual coordinates of the points around
the contour, suitable for plotting with a graphics routine or
by hand. The points are given in counter-clockwise order
around the contour.
Only one contour is calculated per command (or Fortran call),
and the level is
UP is the
[SET ERRordef]ERRordef specified by the user, or 1.0 by default.
The number of points to be calculated is chosen by
the user (Default is 20 for the data-driven mode.).
As a by-product, MNContour provides the [MINOs]MINOS errors of the
two parameters in question, since these are just the extreme
points of the contour (Use SHOw MINos to see them).
In command-driven mode, a rough (alphanumeric, not graphic)
plot of the points is given
(if [SET PRIntout]PRIntlevel
and the numerical values of the coordinates are printed
(if [SET PRIntout]PRIntlevel
In Fortran-callable mode, the user gets Fortran
access to the vector of point coordinates through