The function may be called by the names: g03fac, nag_mv_multidimscal_metric or nag_mv_prin_coord_analysis.
For a set of objects, a distance matrix can be calculated such that is a measure of how ‘far apart’ objects and are (see g03eac for example). Principal coordinate analysis or metric scaling starts with a distance matrix and finds points in Euclidean space such that those points have the same distance matrix. The aim is to find a small number of dimensions, , that provide an adequate representation of the distances.
The principal coordinates of the points are computed from the eigenvectors of the matrix where with denoting the average of over the suffix etc.. The eigenvectors are then scaled by multiplying by the square root of the value of the corresponding eigenvalue.
Provided that the ordered eigenvalues, , of the matrix are all positive, shows how well the data is represented in dimensions. The eigenvalues will be non-negative if is positive semidefinite. This will be true provided satisfies the inequality: for all . If this is not the case the size of the negative eigenvalue reflects the amount of deviation from this condition and the results should be treated cautiously in the presence of large negative eigenvalues. See Krzanowski (1990) for further discussion. g03fac provides the option for all eigenvalues to be computed so that the smallest eigenvalues can be checked.
Chatfield C and Collins A J (1980) Introduction to Multivariate Analysis Chapman and Hall
Gower J C (1966) Some distance properties of latent root and vector methods used in multivariate analysis Biometrika53 325–338
Krzanowski W J (1990) Principles of Multivariate Analysis Oxford University Press
1: – Nag_EigenvaluesInput
On entry: indicates if all the eigenvalues are to be computed or just the ndim largest.
On entry: the number of objects in the distance matrix, .
3: – const doubleInput
On entry: the lower triangle of the distance matrix stored packed by rows. That is, must contain , for and .
, for .
4: – IntegerInput
On entry: the number of dimensions used to represent the data, .
5: – doubleOutput
Note: the th element of the matrix is stored in .
On exit: the th row contains coordinates for the th point, .
6: – IntegerInput
On entry: the stride separating matrix column elements in the array x.
7: – doubleOutput
On exit: if , eval contains the scaled eigenvalues of the matrix . If , eval contains the largest scaled eigenvalues of the matrix . In both cases the eigenvalues are divided by the sum of the eigenvalues (that is, the trace of ).
8: – NagError *Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).