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#> Indiv_1 Indiv_2 Indiv_3 Indiv_4
#> Indiv_2 0.8750000
#> Indiv_3 0.5000000 0.8750000
#> Indiv_4 0.3333333 0.8333333 0.7500000
#> Indiv_5 0.6666667 0.5000000 0.5000000 0.8888889
Informações importantes podem ser obtidas dessa matriz com a função SummaryDistancia
:
=SummaryDistancia(Dist) resumo
resumo#> 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
A fim de resumir as informações da matriz de dissimilaridade a fim de melhorar a visualização da dissimilaridade, pode-se fazer um dendograma com o auxilio da função dendograma
. Varios algoritimos podem ser utilizados para a construção deste dendograma. 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).
Dendograma(Dist,Metodo=3)
#> $DistanciaFenetica
#> Indiv_1 Indiv_2 Indiv_3 Indiv_4
#> Indiv_2 0.7731481
#> Indiv_3 0.6250000 0.7731481
#> Indiv_4 0.3333333 0.7731481 0.6250000
#> Indiv_5 0.7731481 0.5000000 0.7731481 0.7731481
#>
#> $CorrelacaoCofenetica
#> [1] 0.7586138
#>
#> $SigCorrelCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.7586138
#> p-value: 0.034, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> $MojenaCorte
#> k=1.25 k=2
#> 0.7912968 0.9313527
#>
#> $Ordem
#> [1] 2 5 3 1 4
Adcionalmente, pode-se fazer o agrupamento Tocher com o auxilio da função Tocher
:
Tocher(Dist)
#> $Tocher
#> $Tocher[[1]]
#> $Tocher[[1]]$`cluster 1`
#> [1] Indiv_1 Indiv_4
#>
#> $Tocher[[1]]$`cluster 2`
#> [1] Indiv_2 Indiv_5
#>
#> $Tocher[[1]]$`cluster 3`
#> [1] Indiv_3
#>
#>
#>
#> $DistanciaCofenetica
#> Indiv_1 Indiv_2 Indiv_3 Indiv_4
#> Indiv_2 1.3196401
#> Indiv_3 0.9900916 1.0624826
#> Indiv_4 0.5795179 1.3196401 0.9900916
#> Indiv_5 1.3196401 0.8289235 1.0624826 1.3196401
#>
#> $DistanciaIntraInterCluster
#> cluster 1 cluster 2 cluster 3
#> cluster 1 0.5795179 1.3196401 0.9900916
#> cluster 2 1.3196401 0.8289235 1.0624826
#> cluster 3 0.9900916 1.0624826 0.0000000
#>
#> $CorrelacaoCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.8632498
#> p-value: 0.0332, based on 9999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> attr(,"class")
#> [1] "Tocher"
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"