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
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
| Name | Type | Description |
|---|---|---|
| AutoUpdate | Boolean | If true then changing any of the TMtxPCA properties will trigger the TMtxMDScaling.Recalc method. |
| BlockAssign | Boolean | Block streaming of specific properties when storing only a "template". |
| D | TMtx | Used dissimilarities matrix. |
| Data | TMtx | Data to be analyzed by MDS. |
| DataFormat | TMDDataFormat | Data format. |
| DHat | TMtx | Estimated dissimilarities matrix. |
| Dimensions | Integer | Reduced dimension size. |
| Dirty | Boolean | When any of the TMtxMDScaling properties changes, this property is automatically set to true. |
| DistanceMethod | TPWDistMethod | Metric for distance calculation. |
| EditorActive | Boolean | Returns True, if the component editor is displayed. |
| EigenValues | TVec | Reduced space eigenvalues. |
| Reference | TReferenceList | Stores a list of components that have to be notified, when this component is destroyed. |
| ScalingMethod | TMDScalingMethod | Defines multidimensional scaling algorithm. |
| Stress | Double | Returns multidimensional scaling stress value which is an estimate for GOF. |
| Y | TMtx | Reduced space point coordinates. |
Methods
| Name | Description |
|---|---|
| AllowStreaming | Returns the negatated value of BlockAssign. |
| Assign | Assign values of all published properties from Source. |
| AssignTemplate | Assign values of "template-like" published properties from Source. |
| EditorClass | To be overriden in descendanr classses. |
| LoadFromStream | Load the component from Src stream. |
| LoadTemplateFromFile | Load a template from file. |
| LoadTemplateFromStream | Load a template from stream. |
| Recalc | Triggers MDScalling recalculation. |
| Reset | Reset is called after loading the data from stream or file. |
| SaveTemplateToFile | Save template to file. |
| SaveTemplateToStream | Save template to stream. |
| SaveToStream | Save the component to Dst stream. |