R: Transformation of a Distance Matrix for becoming Euclidean

lingoes {ade4} | R Documentation

## Transformation of a Distance Matrix for becoming Euclidean

### Description

transforms a distance matrix in a Euclidean one.

### Usage

    lingoes(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

### Details

The function uses the smaller positive constant k which transforms the matrix of sqrt(dij² + 2*k) in an Euclidean one

### Value

returns an object of class `dist` with a Euclidean distance

### Author(s)

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

### References

Lingoes, J.C. (1971) Some boundary conditions for a monotone analysis of symmetric matrices. Psychometrika, 36, 195–203.

### Examples

    data(capitales)
    d0 <- capitales$dist
    is.euclid(d0) # FALSE
    d1 <- lingoes(d0, TRUE)
    # Lingoes constant = 2120982
    is.euclid(d1) # TRUE
    plot(d0, d1)
    x0 <- sort(unclass(d0))
    lines(x0, sqrt(x0^2 + 2 * 2120982), lwd = 3)

    is.euclid(sqrt(d0^2 + 2 * 2120981), tol = 1e-10) # FALSE
    is.euclid(sqrt(d0^2 + 2 * 2120982), tol = 1e-10) # FALSE
    is.euclid(sqrt(d0^2 + 2 * 2120983), tol = 1e-10)
        # TRUE the smaller constant

[Package ade4 version 1.7-19 Index]