R: Transformation to make Euclidean a distance matrix

cailliez {ade4} | R Documentation

## Transformation to make Euclidean a distance matrix

### Description

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

### Usage

    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

    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

[Package ade4 version 1.7-17 Index]