JSim Optimization Report: Condition Number

What does the condition number on the optimization report mean?

Notation: Let the observed data be given as:                                        

condition number derivation

hence (nh-nx) represents the degrees of freedom.

The n x n correlation matrix is given by

Correlation(P) = Cov(k,l)/sqrt(Cov(k,k)*Cov(l,l)).

                                                                                        T

The condition number is calculated for the matrix [S * W * S].

What is a large versus small condition number?

Back when single precision was the standard for scientific programming

in FORTRAN, a real variable had approximately 6.5 digits of precision.

Matrices with condition numbers near 1 were said to be well-conditioned.

Matrices with condition numbers much greater than one (such as around

10^5 for a 5 x 5 Hilbert matrix) were said to be ill-conditioned.

 

If kappa(A), the condition number of A, equals 10^k, then you may lose

up to k digits of accuracy on top of what would be lost to the numerical

method due to loss of precision from arithmetic methods.

 

If a condition number equals 10^16, then you have lost 16 digits of

precision in your result.

 

What causes large condition numbers?

If two parameters are close to being highly dependent on each other

(defined as having a correlation value whose absolute value is greater

than 0.98 can cause a large condition number.

 

Having parameters that the fit is insensitive to can also result in a

large condition number. This may be manifested as confidence intervals

that are an order of magnitude or larger then the parameter value. In

this case the model fit tends to be insensitive to changes in that parameter.

 

What is the relationship between condition numbers and the probable

reliability of estimates of parameter confidence intervals or ranges quantitatively?

This question makes an unwarranted assumption, that there is an estimate

of confidence intervals which is independent of the numerical process used

to calculate them. The confidence intervals given by the JSim optimizers

are those derived by equations 18 and 19 in Chan et al. (1993).

 

The question is not "Are the confidence intervals

correct?", the question is "Are the confidence intervals

useful?" A large condition number implies that the

optimization problem you are doing is poorly formulated.

For example, if you optimize on a parameter which does

not affect the fit, you will probably get a NaN for

a condition number.

 

From the SENSOP paper, "Near the solution for small!

residuals, the right hand side of Eq. 18 below is an

approximation! to the covariance matrix.

 

Cov(theta) =SSR(theta)/(m-p)* (S(theta)^T W S(theta))^-1.

 

The matrix (S(theta) transpose *W* S*(theta))

is the matrix whose condition number is calculated.

Reference

Chan IS, Goldstein AA, Bassingthwaighte JB. SENSOP: a derivative-free 
solver for non-linear least squares with sensitivity scaling. Ann. 
Biomed. Eng. 21: 621-631, 1993.

Comments or Questions?

Give feedback

Model development and archiving support at https://www.imagwiki.nibib.nih.gov/physiome provided by the following grants: NIH U01HL122199 Analyzing the Cardiac Power Grid, 09/15/2015 - 05/31/2020, NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/09-5/31/13; NIH/NHLBI T15 HL88516-01 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/07-3/31/11; NSF BES-0506477 Adaptive Multi-Scale Model Simulation, 8/15/05-7/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/04-8/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/1980-11/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/02-2/28/07.