ill-conditioned Jacobian using nlinfit
조회 수: 10 (최근 30일)
이전 댓글 표시
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
Daniel Vasilaky
2016년 2월 19일
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.
채택된 답변
Star Strider
2014년 3월 23일
편집: Star Strider
2014년 3월 23일
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.
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Regression에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!