| kdisteuclid {ade4} | R Documentation |
a way to obtain Euclidean distance matrices
kdisteuclid(obj, method = c("lingoes", "cailliez", "quasi"))
obj |
an object of class kdist |
method |
a method to convert a distance matrix in a Euclidean one |
returns an object of class kdist with all distances Euclidean.
according to the program DistPCoa of P. Legendre and M.J. Anderson
http://www.fas.umontreal.ca/BIOL/Casgrain/en/labo/distpcoa.html
Daniel Chessel
Stéphane Dray dray@biomserv.univ-lyon1.fr
Gower, J.C. and Legendre, P. (1986) Metric and Euclidean properties of dissimilarity coefficients. Journal of Classification, 3, 5–48.
Cailliez, F. (1983) The analytical solution of the additive constant problem. Psychometrika, 48, 305–310.
Lingoes, J.C. (1971) Somme boundary conditions for a monotone analysis of symmetric matrices. Psychometrika, 36, 195–203.
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 L. Legendre. (1998) Numerical ecology, 2nd English edition edition. Elsevier Science BV, Amsterdam.
w <- c(0.8,0.8,0.377350269,0.8,0.377350269,0.377350269) # see ref.
w <- kdist(w)
w1 <- c(kdisteuclid(kdist(w), "lingoes"), kdisteuclid(kdist(w), "cailliez"),
kdisteuclid(kdist(w), "quasi"))
print(w, print = TRUE)
print(w1, print = TRUE)
data(eurodist)
par(mfrow = c(1, 3))
eu1 <- kdist(eurodist) # an object of class 'dist'
plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "quasi")))), asp = 1)
title(main = "Quasi") ; abline(0,1)
plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "lingoes")))), asp = 1)
title(main = "Lingoes") ; abline(0,1)
plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "cailliez")))), asp = 1)
title(main = "Cailliez") ; abline(0,1)
> library(ade4)
> ### Name: kdisteuclid
> ### Title: a way to obtain Euclidean distance matrices
> ### Aliases: kdisteuclid
> ### Keywords: multivariate utilities
>
> ### ** Examples
>
> w <- c(0.8,0.8,0.377350269,0.8,0.377350269,0.377350269) # see ref.
> w <- kdist(w)
> w1 <- c(kdisteuclid(kdist(w), "lingoes"), kdisteuclid(kdist(w), "cailliez"),
+ kdisteuclid(kdist(w), "quasi"))
[1] "Lingoes constant = 0.0532050808642198"
[1] "Cailliez constant = 0.20000000044866"
[1] "First ev = 0.32 Last ev = -0.0532050808642198"
> print(w, print = TRUE)
List of distances matrices
call: kdist(w)
class: kdist
number of distances: 1
size: 4
labels:
[1] "1" "2" "3" "4"
w: non euclidean distance
1 2 3 4
1
2 0.8000000
3 0.8000000 0.8000000
4 0.3773503 0.3773503 0.3773503
> print(w1, print = TRUE)
List of distances matrices
call: c.kdist(kdisteuclid(kdist(w), "lingoes"), kdisteuclid(kdist(w),
"cailliez"), kdisteuclid(kdist(w), "quasi"))
class: kdist
number of distances: 3
size: 4
labels:
[1] "1" "2" "3" "4"
kdisteuclid(kdist(w), "lingoes").w: euclidean distance
1 2 3 4
1
2 0.8639503
3 0.8639503 0.8639503
4 0.4988020 0.4988020 0.4988020
kdisteuclid(kdist(w), "cailliez").w: euclidean distance
1 2 3 4
1
2 1.0000000
3 1.0000000 1.0000000
4 0.5773503 0.5773503 0.5773503
kdisteuclid(kdist(w), "quasi").w: euclidean distance
1 2 3 4
1
2 0.8000000
3 0.8000000 0.8000000
4 0.4618802 0.4618802 0.4618802
>
> data(eurodist)
> par(mfrow = c(1, 3))
> eu1 <- kdist(eurodist) # an object of class 'dist'
> plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "quasi")))), asp = 1)
[1] "First ev = 19538377.0895428 Last ev = -2251844.33173616"

> title(main = "Quasi") ; abline(0,1)

> plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "lingoes")))), asp = 1) [1] "Lingoes constant = 2251844.33173616"

> title(main = "Lingoes") ; abline(0,1)

> plot(data.frame(unclass(c(eu1, kdisteuclid(eu1, "cailliez")))), asp = 1) [1] "Cailliez constant = 2132.67849519794"

> title(main = "Cailliez") ; abline(0,1)

> > > >