Learn R Programming

bigmds (version 3.0.0)

pivot_mds: Pivot MDS

Description

Pivot MDS, introduced in the literature of graph layout algorithms, is similar to Landmark MDS (landmark_mds()) but it uses the distance information between landmark and non-landmark points to improve the initial low dimensional configuration, as more relations than just those between landmark points are taken into account.

Usage

pivot_mds(x, num_pivots, r)

Value

Returns a list containing the following elements:

points

A matrix that consists of \(n\) individuals (rows) and r variables (columns) corresponding to the principal coordinates. Since we are performing a dimensionality reduction, r\(<<k\)

eigen

The first r largest eigenvalues: \(\lambda_i, i \in \{1, \dots, r\} \), where each \(\lambda_i\) is obtained from applying classical MDS to the first data subset.

Arguments

x

A matrix with \(n\) individuals (rows) and \(k\) variables (columns).

num_pivots

Number of pivot points to obtain an initial MDS configuration. It is equivalent to l parameter used in interpolation_mds(), divide_conquer_mds() and fast_mds(). Therefore, it is the size for which classical MDS can be computed efficiently (using cmdscale function). It means that if \(\bar{l}\) is the limit size for which classical MDS is applicable, then l\(\leq \bar{l}\).

r

Number of principal coordinates to be extracted.

References

Delicado P. and C. Pachón-García (2021). Multidimensional Scaling for Big Data. https://arxiv.org/abs/2007.11919.

Brandes U. and C. Pich (2007). Eigensolver Methods for Progressive Multidimensional Scaling of Large Data. Graph Drawing.

Borg, I. and P. Groenen (2005). Modern Multidimensional Scaling: Theory and Applications. Springer.

Gower JC. (1968). Adding a point to vector diagrams in multivariate analysis. Biometrika.

Examples

Run this code
set.seed(42)
x <- matrix(data = rnorm(4 * 10000), nrow = 10000) %*% diag(c(9, 4, 1, 1))
mds <- pivot_mds(x = x, num_pivots = 200, r = 2)
head(mds$points)
mds$eigen

Run the code above in your browser using DataLab