Description Usage Arguments Details Value Author(s) Examples
Implements the HYDRA (hyperbolic distance recovery and approximation) method for embedding highdimensional data points (represented by their distance matrix D
) into lowdimensional hyperbolic space.
1 2 
D 
a square symmetric matrix of distances (or dissimiliarities) to be embdedded, can also be a 
dim 
embedding dimension 
curvature 
embedding curvature; if this argument is NULL, hydra tries to find the optimal curvature 
alpha 
real number greater one; adjusts the hyperbolic curvature. Values larger than one yield a more distorted embedding where points are pushed
to the outer boundary (i.e. the ideal points) of hyperblic space. The interaction between 
equi.adj 
equiangular adjustment; must be a real number between zero and one; only used if 
control 
a list which may contain the following boolean flags:

See https://arxiv.org/abs/1903.08977 for more details.
A ‘hydra’ object, which is a list with all or some of the following components:
a vector containing the radial coordinates of the embedded points
a matrix with dim
columns containing as rows the directional coordinates of the embedded points
a vector containing the angular coordinates of the embedded points (only returned if dim
is 2 and polar
flag is TRUE)
the curvature used for the returned embedding
the dimension used for the returned embedding
the stress (i.e. the meansquare difference) between distances supplied in D
and the hyperbolic distance matrix of the returned embedding
the hyperbolic distance matrix of the returned embedding (only returned if flag return.dist
is true. Computation may be time and memoryintensive.)
a vector containing the 'timelike' coordinate of the raw Lorentz embedding (only returned if flag return.lorentz
is true)
a matrix with dim
columns containing as rows the 'spacelike' coordinate of the raw Lorentz embedding (only returned if flag return.lorentz
is true)
Martin KellerRessel <martin.kellerressel@tudresden.de>
1 2 3 4 5 6 7 8  data(karate)
embedding < hydra(karate$distance)
plot(embedding,labels=karate$label,lab.col=karate$group,graph.adj=karate$adjacency)
## Compare with Multidimensional scaling (MDS):
mds < cmdscale(karate$distance) # Compute Euclidean embedding with MDS
mds.stress < sqrt(sum((as.matrix(dist(mds))  karate$distance)^2)) # Calculate embedding stress
c(embedding$stress,mds.stress) # Compare hyperbolic with Euclidean stress

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.