Learn R Programming

abdiv (version 0.2.0)

euclidean: Euclidean and related distances

Description

These distance and diversity measures are mathematically similar to the Euclidean distance between two vectors.

Usage

euclidean(x, y)

rms_distance(x, y)

chord(x, y)

hellinger(x, y)

geodesic_metric(x, y)

Arguments

x, y

Numeric vectors

Value

The distance between x and y. The chord distance, Hellinger distance, and geodesic metric are not defined if all elements of either vector are zero. We return NaN in this case.

Details

For vectors x and y, the Euclidean distance is defined as $$d(x, y) = \sqrt{\sum_i (x_i - y_i) ^ 2}.$$ Relation of euclidean() to other definitions:

  • Equivalent to R's built-in dist() function with method = "euclidean".

  • Equivalent to vegdist() with method = "euclidean".

  • Equivalent to the euclidean() function in scipy.spatial.distance.

  • Equivalent to the structeuclidean calculator in Mothur, to speciesprofile if x and y are transformed to relative abundance, and to memeuclidean if x and y are transformed to presence/absence.

  • Equivalent to \(D_1\) in Legendre & Legendre.

  • Equivalent to the distance between species profiles, \(D_{18}\) in Legendre & Legendre if x and y are transformed to relative abundance.

The root-mean-square distance or average distance is similar to Euclidean distance. As the name implies, it is computed as the square root of the mean of the squared differences between elements of x and y: $$d(x, y) = \sqrt{\frac{1}{n} \sum_i^n (x_i - y_i) ^ 2}.$$ Relation of rms_distance() to other definitions:

  • Equivalent to \(D_2\) in Legendre & Legendre.

The chord distance is the Euclidean distance after scaling each vector by its root sum of squares, \(\sqrt{\sum_i x_i^2}\). The chord distance between any two vectors ranges from 0 to \(\sqrt{2}\). Relation of chord() to other definitions:

  • Equivalent to \(D_3\) in Legendre & Legendre.

The Hellinger distance is equal to the chord distance computed after a square-root transformation. Relation of hellinger() to other definitions:

  • Equivalent to \(D_{17}\) in Legendre & Legendre.

  • Equivalent to the hellinger calculator in Mothur.

The geodesic metric is a transformed version of the chord distance. $$d(x, y) = \textrm{arccos} \left(1 - \frac{d_c^2(x, y)}{2} \right),$$ where \(d_c\) is the chord distance. It gives the length of the arc on a hypersphere between the vectors, if the vectors are normalized to unit length. Relation of geodesic_metric() to other definitions:

  • Equivalent to \(D_4\) in Legendre & Legendre.

Examples

Run this code
# NOT RUN {
x <- c(15, 6, 4, 0, 3, 0)
y <- c(10, 2, 0, 1, 1, 0)
euclidean(x, y)
# The "distance between species profiles"
euclidean(x / sum(x), y / sum(y))
rms_distance(x, y)
chord(x, y)
hellinger(x, y)
# Hellinger is chord distance after square root transform
chord(sqrt(x), sqrt(y))
geodesic_metric(x, y)

# No species in common with x
v <- c(0, 0, 0, 5, 0, 5)
chord(v, x)
sqrt(2)
# }

Run the code above in your browser using DataLab