TMtxMDScaling Class

ComponentTMtxComponentTMtxMDScaling

type TMtxMDScaling = class(TMtxComponent);

Performs multidimensional scaling.

Use TMtxMDScaling component to perform multidimensional scaling on dataset.

How to use TMtxMDScaling component?
1. Drop a TMtxMDScaling component on the form. 2. Set TMtxMDScaling.DataFormat property to define how data will be interpreted. Data can be interpreted as dissimilarities matrix, similarities matrix or raw data matrix. 3. Define TMtxMDScaling.Data, the matrix representing dissimilarities matrix, similarities matrix or raw data.
4. Set TMtxMDScaling.Dimensions to define number of variables in reduced space. 5. Set TMtxMDScaling.DistanceMethod to define how pairwise distance will be calculated. 6. Set TMtxMDScaling.ScalingMethod to define scaling algorithm. Currently only metric (classical) multidimensional scaling algorithm is supported. 7. Call the TMtxMDScaling.Recalc method to trigger calculation.

Results:
1. TMtxMDScaling.Y : Point coordinates in reduced space. 2. TMtxMDScaling.EigenValues : Eigenvalues in reduced space, sorted in descending order. 3. TMtxMDScaling.DHat : Estimated dissimilarities matrix. 4. TMtxMDScaling.Stress : Calculated stress factor.

Examples

delphi
Uses StatTools, Statistics, MtxExpr;
procedure Example(mds: TMtxMDScaling);
begin
    // similarities matrix (symmetric with 1.0 on diagonal)
    mds.Data.SetIt(5,5,false,
    [ 1.00, 0.3, 0.2, 0.25, 0.33,
    0.30, 1.0, 0.11, 0.21, 0.8,
    0.20, 0.11, 1.0, 0.40, 0.5,
    0.25, 0.21, 1.0, 0.10, 0.05,
    0.33, 0.80, 0.5, 0.05, 1.00]);
    mds.DataFormat := mdFormatSimilarities;
    // use "standard" Euclidian metric
    mds.DistanceMethod := pwdistEuclidian;
    // define number of desired dimensions (1)
    mds.Dimensions := 1;
    // Do the math
    mds.Recalc;
    // check Stress, DHat, EigeValues to evaluate GOF if (1) dimension is used
end;

Properties

NameTypeDescription
AutoUpdateBooleanIf true then changing any of the TMtxPCA properties will trigger the TMtxMDScaling.Recalc method.
BlockAssignBooleanBlock streaming of specific properties when storing only a "template".
DTMtxUsed dissimilarities matrix.
DataTMtxData to be analyzed by MDS.
DataFormatTMDDataFormatData format.
DHatTMtxEstimated dissimilarities matrix.
DimensionsIntegerReduced dimension size.
DirtyBooleanWhen any of the TMtxMDScaling properties changes, this property is automatically set to true.
DistanceMethodTPWDistMethodMetric for distance calculation.
EditorActiveBooleanReturns True, if the component editor is displayed.
EigenValuesTVecReduced space eigenvalues.
ReferenceTReferenceListStores a list of components that have to be notified, when this component is destroyed.
ScalingMethodTMDScalingMethodDefines multidimensional scaling algorithm.
StressDoubleReturns multidimensional scaling stress value which is an estimate for GOF.
YTMtxReduced space point coordinates.

Methods

NameDescription
AllowStreamingReturns the negatated value of BlockAssign.
AssignAssign values of all published properties from Source.
AssignTemplateAssign values of "template-like" published properties from Source.
EditorClassTo be overriden in descendanr classses.
LoadFromStreamLoad the component from Src stream.
LoadTemplateFromFileLoad a template from file.
LoadTemplateFromStreamLoad a template from stream.
RecalcTriggers MDScalling recalculation.
ResetReset is called after loading the data from stream or file.
SaveTemplateToFileSave template to file.
SaveTemplateToStreamSave template to stream.
SaveToStreamSave the component to Dst stream.