void MDScaleMetric(TMtx *D, TMtx *Y, TVec *EigenValues, const int NumDim);
Classical multidimensional scaling.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | D | TMtx * | Distance matrix. |
| 2 | Y | TMtx * | Returns the coordinates of object in reduced space.> |
| 3 | EigenValues | TVec * | |
| 4 | NumDim | const int | Defines number of dimensions/variables to use in classical MD scaling algorithm. |
Examples
#include "MtxExpr.h"
#include "Statistics.h"
#include "Units.Statistics.h"
using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Stats;
using namespace Dew::Stats::Units::Statistics;
void Example()
{
Matrix X(0,0);
Matrix Y(0,0);
Matrix D(0,0);
Matrix DHat(0,0);
Vector eigen(0);
X.SetIt(5,2,false,DewArray<double>{1,2,3,4,3,11,7,8,9,4});
// Use all dimensions i.e. 2
PairwiseDistance(X,D,2,TPWDistMethod::pwdistEuclidian);
// Reduce to just one variable (1d subspace)
MDScaleMetric(D,Y,eigen,1);
// Calculate estimated distance matrix
PairwiseDistance(Y,DHat,1,TPWDistMethod::pwdistEuclidian);
// Calculate stress - measure of GOF
double stress = MDScaleStress(D,DHat);
// if stress > 0.2, the GOF is poor.
}
See Also: Statistics::MDScaleStress
Declared in Dew::Stats::Units::Statistics · Dew.Stats/Units.Statistics.h · Cross-compiler