Statistics.MDScaleStress Method

function MDScaleStress(const D: TMtx; const DHat: TMtx): Double;

The stress factor for multidimensional scaling.

#NameDescription
1DData distance matrix.
2DHatEstimated distance matrix.

Returns: Double - The stress factor.

Remarks:

Calculates the GOF statistics for multidimensional scaling. The stress factor is defined as:

stress=(di,jd^i,j)2di,j2\text{stress} = \sqrt{\cfrac{\sum (d_{i,j}-\hat{d}_{i,j})^2}{\sum d_{i,j} ^2} }

where hat(d(i,j)) is the predicted distance based on the MDS model. In his original paper on multi dimensional scaling, Kruskal (1964) gave following advise about stress values based on his experience:

  • Stress | Goodness-of-fit
  • 0.2 — poor
  • 0.1 — fair
  • 0.05 — good
  • 0.025 — excellent
  • 0.000 — perfect

More recent articles caution against using a table like this since acceptable values of stress depends on the quality of the distance matrix and the number of objects in that matrix.

Examples
Uses MtxExpr, Statistics, Math387;
procedure Example;
var D,DHat: Matrix;
stress: double;
begin
    D.Size(2,2,false,[0,1,2,3]);
    DHat.Size(2,2,false,[0.1,1.2,2.5,3]);
    // Calculate stress value - measure for GOF
    // Smaller stress value means better GOF.
    stress := MDScaleStress(D,DHat);
end;
See Also: Statistics.MDScaleMetric