Após a instalação do pacote é preciso ativa-lo. Para isso, deve-se utilizar a função library
ou require
library(MultivariateAnalysis)
Posteriormente, deve-se carregar no R o conjunto de dados a serem analizados. Isso pode ser feito de diferentes formas.
Uma possibilidade é utilizando a função read.table
. Neste exemplo vamos trabalhar com o banco de dados do pacote, o qual pode ser carregado com a função data
.
Este exemplo trata-se de dados binarios vindo do uso de marcadores moleculares em cinco individuos.
data("Dados.BIN")
Dados.BIN#> M1 M2 M3 M4 M5 M6 M7 M8 M9
#> 1 1 1 1 0 0 1 0 1 1
#> 2 0 1 0 1 0 0 1 0 0
#> 3 1 0 1 1 1 1 0 0 1
#> 4 0 1 1 0 0 1 0 1 0
#> 5 1 1 0 1 1 0 1 0 1
Muitas são as opções que este pacote oferece de medidas de dissimilaridade. Convidamos os usuários a ler o manual da funcao Distancia
(?Distancia
).
Para se ter diferentes medidas de dissimilaridade basta colocar o respectivo numero no argumento Metodo
dentro da função Distancia
:
9 = Frequencia de coincidencia.
10 = Frequencia de discordancia.
11 = indice Inverso de 1+coincidencia = 1/(1+c)
12 = Dissimilaridade de Jacard: 1-a/(a+b+c).
13 = Dissimilaridade de Sorensen Dice: 1-2a/(2a+b+c).
14 = Dissimilaridade de Sokal e Sneath: 1-2(a+d)/(2(a+d)+b+c)
15 = Dissimilaridade de Roger e Tanimoto: 1-(a+d)/(a+2(b+c)+d)
16 = Dissimilaridade de Russel e Rao: 1-a/(a+b+c+d).
17 = Dissimilaridade de Ochiai: 1-a/sqrt((a+b)(a+c)).
18 = Dissimilaridade de Ochiai II: 1-ab/sqrt((a+b)(a+c)(b+d)(c+d)).
19 = Dissimilaridade de Haman: 1-((a+d)-(b+c))/(a+b+c+d).
20 = Dissimilaridade de Yule: 1-(ad-bc)/(ad+bc).
#colocando nome nos individuos
rownames(Dados.BIN)=paste0("Indiv_",1:nrow(Dados.BIN))
=Distancia(Dados.BIN,Metodo = 12)
Dist
Dist#> Medida de dissimilaridade: 12 = Dissimilaridade de Jacard: 1-a/(a+b+c).
#>
#> Menor Distancia: 0.3333333
#> Maior Distancia: 0.8888889
#> Media das Distancias: 0.6722222
#> Amplitude das Distancias: 0.5555556
#> Desvio Padrao das Distancias: 0.2013969
#> Coeficiente de variacao das Distancias: 29.95987
#> Individuos mais proximos: Indiv_1 Indiv_4
#> Individuos mais distantes: Indiv_4 Indiv_5
Informações importantes podem ser obtidas dessa matriz com a função SummaryDistancia
:
=SummaryDistancia(Dist) resumo
resumo#> _________________________________________________________________________
#> Tabela com o resumo da matriz dissimilaridade
#> Medio Minimo Maximo sd MaisProximo MaisDistante
#> Indiv_1 0.59 0.33 0.88 0.23 Indiv_4 Indiv_2
#> Indiv_2 0.77 0.50 0.88 0.18 Indiv_5 Indiv_1
#> Indiv_3 0.66 0.50 0.88 0.19 Indiv_1 Indiv_2
#> Indiv_4 0.70 0.33 0.89 0.25 Indiv_1 Indiv_5
#> Indiv_5 0.64 0.50 0.89 0.18 Indiv_2 Indiv_4
#>
#> Menor Distancia: 0.3333333
#> Maior Distancia: 0.8888889
#> Media das Distancias: 0.6722222
#> Amplitude das Distancias: 0.5555556
#> Desvio Padrao das Distancias: 0.2013969
#> Coeficiente de variacao das Distancias: 29.95987
#> Individuos mais proximos: Indiv_1 Indiv_4
#> Individuos mais distantes: Indiv_4 Indiv_5
#> _________________________________________________________________________
A fim de resumir as informações da matriz de dissimilaridade a fim de melhorar a visualização da dissimilaridade, pode-se fazer um Dendrograma com o auxilio da função Dendrograma
. Varios algoritimos podem ser utilizados para a construção deste Dendrograma. Para isso, deve-se indicar no argumento Metodo
:
1 = Ligacao simples (Metodo do vizinho mais proximo).
2 = Ligacao completa (Metodo do vizinho distante).
3 = Ligacao media entre grupo (UPGMA).
4 = Metodo de Ward.
5 = Metodo de ward (d2).
6= Metodo da mediana (WPGMC).
7= Metodo do centroide (UPGMC).
8 = Metodo mcquitty (WPGMA).
Dendrograma(Dist,Metodo=3)
#> _________________________________________________________________________
#> Estimativa de correlacao cofenetica:
#> [1] 0.7586138
#> Significancia da correlacao cofenetica pelo teste Mantel
#> pvalor: 0.032
#> Hipotese alternativa: A correlacao e maior que 0
#>
#> Ponto de corte pelo metodo Mojena
#> k=1.25 k=2
#> 0.7912968 0.9313527
#> _________________________________________________________________________
Adcionalmente, pode-se fazer o agrupamento Tocher com o auxilio da função Tocher
:
Tocher(Dist)
#> _________________________________________________________________________
#> Agrupamento Tocher
#> Cluster1:
#> Indiv_1 Indiv_4
#>
#> Cluster2:
#> Indiv_2 Indiv_5
#>
#> Cluster3:
#> Indiv_3
#>
#> Distancia intra e intercluster:
#> Cluster1 Cluster2 Cluster3
#> Cluster1 0.3333333 0.8159722 0.6250
#> Cluster2 0.8159722 0.5000000 0.6875
#> Cluster3 0.6250000 0.6875000 0.0000
#>
#>
#> Correlacao Cofenetica: 0.7973581
#> pvalor: 0.045 baseado no teste Mantel
#> Hipotese alternativa: A correlacao e maior que 0
#> _________________________________________________________________________
Outra possibilidade é o estudo da dispersão da matriz de dissimilaridade pelas técnica de coordenadas principais:
CoordenadasPrincipais(Dist)
#> $correction
#> [1] "none" "1"
#>
#> $note
#> [1] "No correction was applied to the negative eigenvalues"
#>
#> $values
#> Eigenvalues Relative_eig Rel_corr_eig Broken_stick Cum_corr_eig
#> 1 0.59349015 0.60760190 0.56957476 0.6111111 0.5695748
#> 2 0.36699792 0.37572423 0.36235480 0.2777778 0.9319296
#> 3 0.04534394 0.04642211 0.06807044 0.1111111 1.0000000
#> 4 0.00000000 0.00000000 0.00000000 0.0000000 1.0000000
#> 5 -0.02905732 -0.02974823 0.00000000 0.0000000 1.0000000
#> Cumul_br_stick
#> 1 0.6111111
#> 2 0.8888889
#> 3 1.0000000
#> 4 1.0000000
#> 5 1.0000000
#>
#> $vectors
#> Axis.1 Axis.2 Axis.3
#> Indiv_1 0.33281033 0.03368527 0.12273425
#> Indiv_2 -0.45603577 -0.30691140 -0.04434396
#> Indiv_3 0.07364825 0.38570107 -0.12894680
#> Indiv_4 0.39092094 -0.29766861 -0.04686257
#> Indiv_5 -0.34134376 0.18519367 0.09741908
#>
#> $trace
#> [1] 0.9767747
#>
#> attr(,"class")
#> [1] "pcoa"