ill-conditioned Jacobian using nlinfit

16 views (last 30 days)
When I use nlinfit function I get the warning:
Warning: The Jacobian at the
solution is ill-conditioned,
and some model parameters
may not be estimated well
(they are not identifiable).
Use caution in making
predictions.
Because I am working with the medical images, I cannot guess my starting values at each of the pixel, because there are more than 10k of them. In that case, I'm using automated selection of these values. For the most of them it works fine. However, in some cases I get the warnings like that, but the fitted curve looks also fine. How can I know if these estimated parameters are good? Fitted curve looks good, but I'm wondering if there are only these possible values for the parameters. How can I overcome this? Is there any other function to use for a non-linear fitting without getting this warning?
Thanks.
Donatas
  1 Comment
Daniel Vasilaky
Daniel Vasilaky on 19 Feb 2016
When the Jacobian is ill-conditioned you may try regularization. Specifically instead of the normal equations J'Jdb = J'dy where J is the Jacobian db is the parameter increment and dy is the change in the residual use the regularized normal equations. The normal equations above correspond to the last squares min||Jdb - dy|| but with regularization you will have min||Jdb - dy|| + c||db|| and the normal equations become (J'J + cI)db = J'dy where c>0 constant. This will give you a unique solution without the Ill-conditioned Jacobian. How to choose c>0 and solve the regularized least squares? A quick and easy way is to use l_curve.m and l_corner.m to choose parameter c and tikhonov.m to solve the modified least squares. See Hansen Per Christian, Regularization Tools, A Matlab Package for Analysis and Solution of Discrete Ill-Posed Problems, Version 4.0 for Matlab 7.3, http://www.mathworks.com/matlabcentral/fileexchange I have developed an iterative method with regularization parameters with usually better results but that’s probably more than you want know. Search for Tikhonov regularization MatLab Central.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 23 Mar 2014
Edited: Star Strider on 23 Mar 2014
You may have too many parameters. Expand the outputs from nlinfit so that you can use nlparci. If any of the 95% confidence intervals for your parameters include zero (confidence bounds of opposite signs for the same parameter), that parameter is probably not necessary in the model, especially if you are getting a good fit to your data. If you decide to change your model to eliminate those parameters, do so one parameter at a time. If all of your parameters are significant (95% confidence intervals do not include zero), then just ignore the warning.
I do not have sufficient expertise in image processing to suggest any specific changes to your model.

More Answers (1)

Donatas
Donatas on 23 Mar 2014
I assume that my non-linear model has lots of different parameters' values with which I get the same result, yes? Because non-linear model can have more than one set of parameters which can minimize the least-square method. I have tried lots of different starting values and I still get the same warning. Sometimes I get an error and it cannot estimate the parameters, but in most cases it is evaluated with different values of parameters, but I still get good approximation with these different estimations. But these values are really important and I need uniqueness... Is it possible to reach it somehow?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!