cailliez: Transformation to make Euclidean a distance matrix

Description Usage Arguments Value Author(s) References Examples

Description

This function computes the smallest positive constant that makes Euclidean a distance matrix and applies it.

Usage

1
cailliez(distmat, print = FALSE, tol = 1e-07, cor.zero = TRUE)

Arguments

distmat

an object of class dist

print

if TRUE, prints the eigenvalues of the matrix

tol

a tolerance threshold for zero

cor.zero

if TRUE, zero distances are not modified

Value

an object of class dist containing a Euclidean distance matrix.

Author(s)

Daniel Chessel
Stéphane Dray stephane.dray@univ-lyon1.fr

References

Cailliez, F. (1983) The analytical solution of the additive constant problem. Psychometrika, 48, 305–310.

Legendre, P. and Anderson, M.J. (1999) Distance-based redundancy analysis: testing multispecies responses in multifactorial ecological experiments. Ecological Monographs, 69, 1–24.

Legendre, P., and Legendre, L. (1998) Numerical ecology, 2nd English edition edition. Elsevier Science BV, Amsterdam.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
data(capitales)
d0 <- capitales$dist
is.euclid(d0) # FALSE
d1 <- cailliez(d0, TRUE)
# Cailliez constant = 2429.87867 
is.euclid(d1) # TRUE
plot(d0, d1)
abline(lm(unclass(d1)~unclass(d0)))
print(coefficients(lm(unclass(d1)~unclass(d0))), dig = 8) # d1 = d + Cte
is.euclid(d0 + 2428) # FALSE
is.euclid(d0 + 2430) # TRUE the smallest constant

Example output

[1] FALSE
Cailliez constant = 2429.87867 
[1] TRUE
(Intercept) unclass(d0) 
  2429.8787      1.0000 
[1] FALSE
[1] TRUE

ade4 documentation built on June 17, 2021, 5:14 p.m.

Related to cailliez in ade4...