14.1 Matrizes de distância
Matrizes de distância ou dissimilaridade são muito usadas em AEDs multivariadas. Por exemplo, para estimar a similaridade entre diferentes comunidades vegetais segundo a presença ou ausência de espécies (ou um índice de similaridade que leva em conta as abundâncias relativas); para estimar a similaridade entre espécies ou a relação entre similaridade genética ou morfológica e distância geográfica etc.
A função dist() é a mais básica do R para calcular dissimilaridades entre objetos.
Ela calcula dissimilaridades segundo diferentes métodos (argumento method).
Há também a função vegdist() do pacote vegan (Oksanen et al. 2020) que faz a mesma coisa, mas tem índices de dissimilaridade que dist() não implementa, muito dos quais muito usados em ecologia de comunidades.
Busque ler o ? dessas duas funções (execute ?dist e ?vegdist no console), atentando para os diferentes índices de dissimilaridade.
Na função vegdist(), você encontra os principais índices de dissimilaridade usados em ecologia.
Para entender o que essas funções fazem, vamos ver um exemplo simples de cálculo de distância euclidiana, que é o método padrão de dist().
# usando o método euclidiano
# plota um gráfico vazio com coordenadas x e y de 1 a 10
plot(1:10, 1:10, type = "n")
# adiciona dois pontos:
# um na coordenada 4,4
points(4, 4, pch = 21, bg = "red")
# outro na coordenada x=8, y=8
points(8, 8, pch = 21, bg = "blue")
# a distancia euclidiana entre eles é dada por essa linha
segments(4, 4, 8, 8)
# essa linha é a hipotenusa do triângulo
polygon(x = c(4, 8, 8, 4), y = c(4, 8, 4, 4), density = 40)# portanto a distancia entre os pontos, por Pitágoras, é
# sqrt(hipotenusa) = sum(catetoA^2+catetoB^2)
d <- sqrt((8 - 4)^2 + (8 - 4)^2)
# agora usando a função dist
# coloco as coordenadas dos dois pontos acima num data.frame
pontos <- data.frame(X = c(4, 8), Y = c(4, 8))
pontos| X | Y |
|---|---|
| 4 | 4 |
| 8 | 8 |
## 1
## 2 5.656854
## [1] TRUE