Exemplo: dados multicategóricos

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.

data("Dados.CAT")
Dados.CAT
#>   Altura Diam Peso corFlor CorFolha CorCaule MargemFolha CorFruto Sabor Amargo
#> 1      1    2    3       4        1        2           3        1     2      1
#> 2      2    3    2       2        3        3           2        1     1      1
#> 3      3    1    1       2        4        2           3        1     2      3
#> 4      2    1    1       4        1        3           2        2     1      1
#> 5      3    2    2       1        2        2           3        1     2      2
#> 6      2    3    2       2        1        1           2        1     1      1
#> 7      2    3    2       4        2        2           3        2     2      2
#> 8      3    2    4       4        1        1           1        1     1      1
#> 9      1    2    3       4        2        2           3        1     2      1
#>   Docura Acidez Resistencia
#> 1      2      3           4
#> 2      1      3           4
#> 3      2      2           2
#> 4      1      3           4
#> 5      2      2           2
#> 6      1      3           3
#> 7      2      2           4
#> 8      1      3           1
#> 9      2      3           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)

#colocando nome nos individuos
rownames(Dados.CAT)=paste0("T",1:nrow(Dados.CAT))
Dist=Distancia(Dados.CAT,Metodo = 10)
round(Dist$Distancia,3)
#>       T1    T2    T3    T4    T5    T6    T7    T8
#> T2 0.692                                          
#> T3 0.615 0.846                                    
#> T4 0.615 0.385 0.846                              
#> T5 0.538 0.846 0.385 1.000                        
#> T6 0.692 0.231 0.846 0.462 0.846                  
#> T7 0.538 0.692 0.615 0.692 0.385 0.769            
#> T8 0.538 0.615 0.846 0.538 0.769 0.462 0.923      
#> T9 0.154 0.769 0.615 0.769 0.462 0.769 0.538 0.538

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
#> T1  0.55   0.15   0.69 0.17          T9           T2
#> T2  0.63   0.23   0.85 0.22          T6           T3
#> T3  0.70   0.38   0.85 0.17          T5           T2
#> T4  0.66   0.38   1.00 0.21          T2           T5
#> T5  0.65   0.38   1.00 0.24          T3           T4
#> T6  0.63   0.23   0.85 0.22          T2           T3
#> T7  0.64   0.38   0.92 0.16          T5           T8
#> T8  0.65   0.46   0.92 0.17          T6           T7
#> T9  0.58   0.15   0.77 0.21          T1           T2
#> 
#> Menor Distancia: 0.1538462 
#> Maior Distancia: 1 
#> Media das Distancias: 0.6346154 
#> Amplitude das Distancias: 0.8461538 
#> Desvio Padrao das Distancias: 0.194058 
#> Coeficiente de variacao das Distancias: 30.57883 
#> Individuos mais proximos: T1 T9 
#> Individuos mais distantes: T4 T5 
#> _________________________________________________________________________

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.7792194
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.001 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.7000256 
#> 
#> Agrupamentos 
#>    Cluster
#> T1       1
#> T2       2
#> T3       1
#> T4       2
#> T5       1
#> T6       2
#> T7       1
#> T8       1
#> T9       1
#> _________________________________________________________________________

Adcionalmente, pode-se fazer o agrupamento Tocher com o auxilio da função Tocher:

Tocher(Dist)

#> _________________________________________________________________________ 
#> Agrupamento Tocher 
#> Cluster1: 
#> T1 T9 
#> 
#> Cluster2: 
#> T2 T6 T4 
#> 
#> Cluster3: 
#> T3 T5 
#> 
#> Cluster4: 
#> T7 
#> 
#> Cluster5: 
#> T8 
#> 
#> Distancia intra e intercluster: 
#>           Cluster1  Cluster2  Cluster3  Cluster4  Cluster5
#> Cluster1 0.1538462 0.7179487 0.5576923 0.5384615 0.5384615
#> Cluster2 0.7179487 0.3589744 0.8717949 0.7179487 0.5384615
#> Cluster3 0.5576923 0.8717949 0.3846154 0.5000000 0.8076923
#> Cluster4 0.5384615 0.7179487 0.5000000 0.0000000 0.9230769
#> Cluster5 0.5384615 0.5384615 0.8076923 0.9230769 0.0000000
#> 
#> 
#> Correlacao Cofenetica: 0.9499247 
#> pvalor: 0.001 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] 9.962303e-01 4.061528e-01 2.498189e-01 1.764132e-01 3.306009e-02
#> [6] 1.212331e-02 1.110223e-16 0.000000e+00 0.000000e+00
#> 
#> $vectors
#>            X1          X2          X3           X4           X5           X6
#> T1 -0.1182268  0.18058233  0.19870590  0.036276834 -0.076259210  0.052287726
#> T2  0.3659021 -0.20430214 -0.05968898 -0.099539812 -0.097277781 -0.054587540
#> T3 -0.3605134 -0.10009657 -0.22573090  0.280049458 -0.028957970 -0.000213903
#> T4  0.4096876 -0.10690338  0.17368106  0.201707361  0.059779916 -0.010718830
#> T5 -0.4641318 -0.00906798 -0.15413366 -0.144476741  0.042281906 -0.008586722
#> T6  0.3892343 -0.06530542 -0.17322014 -0.111552237 -0.000828563  0.069440949
#> T7 -0.2574707 -0.31974735  0.19478200 -0.097739688  0.065580580  0.004498400
#> T8  0.2593281  0.37783258 -0.10547513 -0.008801214  0.075475742 -0.022873745
#> T9 -0.2238094  0.24700794  0.15107984 -0.055923961 -0.039794621 -0.029246335
#>              X7 X8 X9
#> T1 3.700743e-17  0  0
#> T2 3.700743e-17  0  0
#> T3 3.700743e-17  0  0
#> T4 3.700743e-17  0  0
#> T5 3.700743e-17  0  0
#> T6 3.700743e-17  0  0
#> T7 3.700743e-17  0  0
#> T8 3.700743e-17  0  0
#> T9 3.700743e-17  0  0
#> 
#> attr(,"class")
#> [1] "pcoa"