TIP 1 - What to do when the NONMEM covariance step fails

What it means

The covariance step calculates the standard errors for each of your parameters (THETAs, OMEGAs and SIGMAs) and also the correlations between the estimates for each parameter. NONMEM does this by calculating the value of the objective function at numerous parameter values close to your final parameters estimates. The covariance step performs this calculation for each and every pair of parameters, creating a huge "precision matrix". It then inverts this matrix, to obtain a covariance matrix, from which your standard errors are calculated. This message means that somewhere during this process something went wrong.

Why it happens

Typically this error occurs because the precision matrix could not be inverted by NONMEM. It is a very common and not necessarily serious error - don't throw away your model just because of this error!

Not all covariance matrices can actually be inverted - those that can't are termed "singular". Singular matrices have at least two elements that move perfectly together - they have a correlation of 1. Due to rounding errors, computers can often mistake very high correlations (correlation coefficient >0.99) for singularity. Perversely, redundant parameters that have no effect on predictions, for example an unfixed theta or omega that isn't used, can also cause the covariance step to fail.

What to do

We suggest the following procedure when confronted with this error.

  1. Look at the estimates for your parameters at this minima - do they make sense? Has one of the variance components (OMEGA or SIGMAs) gone to value close to zero? If so, deleting this variance parameter may solve the problem.
  2. Check for unused parameters. NONMEM will normally warn you about unused parameters at the start of the estimation step.
  3. Check the dataset for very high leverage points (e.g. subjects with an age of 10000, or any other extreme covariate or data value). These extreme points can dominate the rest of the data, and make your parameters highly correlated as they try to explain the extreme outlier.
  4. Check for unidentifiable parameters. Unidentifiablity occurs when two parameters are indistinguishable in terms of their effect on model predictions, thus making the two parameters perfectly negatively correlated. Check that you haven't included two parameters that are trying to model the same thing e.g.


    Of course the above coding error is fairly obvious, but some items of code might collapse to a similar expression e.g.


    would be unidentifiable if all subjects have the same non-zero APS value.

Matrix inversion is difficult for computers because they round very small numbers to zero, thus the covariance step will sometimes fail even in an identifiable model. This may be because your model is very complex, or two of your parameters are in fact very highly correlated. Think about whether it is possible to make your model simpler, or if two of your parameters have ended up modelling the same pattern in the data. For example, if you included linear and nonlinear elimination in a pharmacokinetic model, but the nonlinear component had a vary high C50, then VMAX and the linear component could both be modelling the same thing.