Exemplo: dados binários

Alcinei Mistico Azevedo (ICA-UFMG)

2024-04-08

Ativando o pacote

Após a instalação do pacote é preciso ativa-lo. Para isso, deve-se utilizar a função library ou require

library(MultivariateAnalysis)

Abrindo o conjunto de dados

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

Obtenção de medidas de dissimilaridade

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:

Dados qualitativos (binários ou multicategóricos)

9 = Frequencia de coincidencia.

10 = Frequencia de discordancia.

11 = indice Inverso de 1+coincidencia = 1/(1+c)

Dados qualitativos binarios

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))
Dist=Distancia(Dados.BIN,Metodo = 12)
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:

resumo=SummaryDistancia(Dist)

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.034 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.7912968 
#> 
#> Agrupamentos 
#>         Cluster
#> Indiv_1       1
#> Indiv_2       1
#> Indiv_3       1
#> Indiv_4       1
#> Indiv_5       1
#> _________________________________________________________________________

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.031 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)
#> [1] 1

#> $values
#> [1] 0.59349015 0.36699792 0.04534394 0.00000000 0.00000000
#> 
#> $vectors
#>                  X1          X2          X3 X4 X5
#> Indiv_1  0.33281033  0.03368527  0.12273425  0  0
#> Indiv_2 -0.45603577 -0.30691140 -0.04434396  0  0
#> Indiv_3  0.07364825  0.38570107 -0.12894680  0  0
#> Indiv_4  0.39092094 -0.29766861 -0.04686257  0  0
#> Indiv_5 -0.34134376  0.18519367  0.09741908  0  0
#> 
#> attr(,"class")
#> [1] "pcoa"