Exemplo: Experimento sem repetições

Alcinei Mistico Azevedo (ICA-UFMG)

2021-08-04

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.MED")
Dados.MED
#>    X1Contagem Germ SemAnormais SemMortas Retencao75 Retencao55 RetencaoFundo
#> 1        87.0 91.5    2.711049  1.618034   16.19171   4.933229      1.728398
#> 2        86.0 94.5    2.277463  1.492030   16.34301   6.626048      1.103553
#> 3        84.5 95.0    2.212485  1.366025   15.96484   5.019994      1.103553
#> 4        86.0 94.5    2.220455  1.366025   16.22250   6.217927      1.103553
#> 5        89.5 91.0    3.103652  1.000000   16.47550   6.903874      1.743673
#> 6        82.0 86.0    3.089793  2.331754   16.61819   8.003092      1.000000
#> 7        87.0 92.0    2.529472  1.594451   16.52787   7.286887      1.103553
#> 8        82.0 88.0    3.322876  1.309017   16.94664   5.948805      1.207107
#> 9        86.0 91.0    2.813470  1.594451   16.38352   6.966117      1.286566
#> 10       90.0 92.5    2.460405  1.309017   16.34252   6.254230      1.640119

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 quantitativos

1 = Distancia euclidiana.

2= Distancia euclidiana media.

3 = Quadrado da distancia euclidiana media.

4 = Distancia euclidiana padronizada.

5 = Distancia euclidiana padronizada media.

6 = Quadrado da distancia euclidiana padronizada media.

7 = Distancia de Mahalanobis.

8 = Distancia de Cole Rodgers.

#colocando nome nos individuos
rownames(Dados.MED)=paste0("T",1:nrow(Dados.MED))
Dist=Distancia(Dados.MED,Metodo = 5)
round(Dist,3)
#>        T1    T2    T3    T4    T5    T6    T7    T8    T9
#> T2  1.234                                                
#> T3  1.187 0.871                                          
#> T4  1.180 0.277 0.637                                    
#> T5  1.218 1.450 1.849 1.488                              
#> T6  2.119 1.860 2.361 2.044 2.199                        
#> T7  1.338 0.577 1.366 0.800 1.260 1.470                  
#> T8  1.712 1.699 2.041 1.795 1.586 1.518 1.443            
#> T9  1.041 0.748 1.305 0.885 1.056 1.372 0.474 1.269      
#> T10 0.834 0.987 1.337 0.983 0.804 2.221 1.007 1.833 0.929

Informações importantes podem ser obtidas dessa matriz com a função SummaryDistancia:

resumo=SummaryDistancia(Dist)

resumo
#>     Medio Minimo Maximo   sd MaisProximo MaisDistante
#> T1   1.32   0.83   2.12 0.38         T10           T6
#> T2   1.08   0.28   1.86 0.53          T4           T6
#> T3   1.44   0.64   2.36 0.55          T4           T6
#> T4   1.12   0.28   2.04 0.57          T2           T6
#> T5   1.43   0.80   2.20 0.42         T10           T6
#> T6   1.91   1.37   2.36 0.37          T9           T3
#> T7   1.08   0.47   1.47 0.38          T9           T6
#> T8   1.65   1.27   2.04 0.23          T9           T3
#> T9   1.01   0.47   1.37 0.29          T7           T6
#> T10  1.21   0.80   2.22 0.49          T5           T6

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 com o metodo UPGMA
Dendograma(Dist,Metodo=3)

#> $DistanciaFenetica
#>            T1        T2        T3        T4        T5        T6        T7
#> T2  1.2216672                                                            
#> T3  1.2216672 1.0446407                                                  
#> T4  1.2216672 0.2770865 1.0446407                                        
#> T5  1.0262424 1.2216672 1.2216672 1.2216672                              
#> T6  1.8138799 1.8138799 1.8138799 1.8138799 1.8138799                    
#> T7  1.2216672 0.7525492 1.0446407 0.7525492 1.2216672 1.8138799          
#> T8  1.8138799 1.8138799 1.8138799 1.8138799 1.8138799 1.5181267 1.8138799
#> T9  1.2216672 0.7525492 1.0446407 0.7525492 1.2216672 1.8138799 0.4737757
#> T10 1.0262424 1.2216672 1.2216672 1.2216672 0.8035212 1.8138799 1.2216672
#>            T8        T9
#> T2                     
#> T3                     
#> T4                     
#> T5                     
#> T6                     
#> T7                     
#> T8                     
#> T9  1.8138799          
#> T10 1.8138799 1.2216672
#> 
#> $CorrelacaoCofenetica
#> [1] 0.8523306
#> 
#> $SigCorrelCofenetica
#> 
#>             Mantel's permutation test
#> 
#> Correlation: 0.8523306
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0 
#> 
#> $MojenaCorte
#>   k=1.25      k=2 
#> 1.598590 1.962311 
#> 
#> $Ordem
#>  [1]  1  5 10  3  2  4  7  9  6  8

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

#Dendograma com o metodo UPGMA
Tocher(Dist)

#> $Tocher
#> $Tocher[[1]]
#> $Tocher[[1]]$`cluster 1`
#> [1] T2  T4  T7  T9  T10 T1  T3  T5 
#> 
#> $Tocher[[1]]$`cluster 2`
#> [1] T6 T8
#> 
#> 
#> 
#> $DistanciaCofenetica
#>           T1       T2       T3       T4       T5       T6       T7       T8
#> T2  1.926346                                                               
#> T3  1.926346 1.926346                                                      
#> T4  1.926346 1.926346 1.926346                                             
#> T5  1.926346 1.926346 1.926346 1.926346                                    
#> T6  3.488061 3.488061 3.488061 3.488061 3.488061                           
#> T7  1.926346 1.926346 1.926346 1.926346 1.926346 3.488061                  
#> T8  3.488061 3.488061 3.488061 3.488061 3.488061 2.346173 3.488061         
#> T9  1.926346 1.926346 1.926346 1.926346 1.926346 3.488061 1.926346 3.488061
#> T10 1.926346 1.926346 1.926346 1.926346 1.926346 3.488061 1.926346 3.488061
#>           T9
#> T2          
#> T3          
#> T4          
#> T5          
#> T6          
#> T7          
#> T8          
#> T9          
#> T10 1.926346
#> 
#> $DistanciaIntraInterCluster
#>           cluster 1 cluster 2
#> cluster 1  1.926346  3.488061
#> cluster 2  3.488061  2.346173
#> 
#> $CorrelacaoCofenetica
#> 
#>             Mantel's permutation test
#> 
#> Correlation: 0.8249442
#> p-value: 0.0234, 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, mas veja que ela é correspondente aos componentes principais quando se utiliza a distancia euclidiana:


COp=CoordenadasPrincipais(Dist,main = "")

CoordenadasPrincipais(Dist,Dados = Dados.MED,Padronizar = TRUE,main="")

#> $correction
#> [1] "none" "1"   
#> 
#> $note
#> [1] "There were no negative eigenvalues. No correction was applied"
#> 
#> $values
#>   Eigenvalues Relative_eig Broken_stick Cumul_eig Cumul_br_stick
#> 1 4.491717782 0.4990797535   0.37040816 0.4990798      0.3704082
#> 2 2.366598461 0.2629553846   0.22755102 0.7620351      0.5979592
#> 3 1.151193547 0.1279103941   0.15612245 0.8899455      0.7540816
#> 4 0.818745739 0.0909717488   0.10850340 0.9809173      0.8625850
#> 5 0.145976484 0.0162196093   0.07278912 0.9971369      0.9353741
#> 6 0.018079464 0.0020088294   0.04421769 0.9991457      0.9795918
#> 7 0.007688523 0.0008542803   0.02040816 1.0000000      1.0000000
#> 
#> $vectors
#>         Axis.1       Axis.2      Axis.3      Axis.4      Axis.5       Axis.6
#> T1   0.4282280 -0.313698426  0.34387831  0.60651615  0.09961776  0.043611731
#> T2   0.2992957  0.432394896 -0.16829809 -0.21951305  0.07415144  0.086655414
#> T3   0.7775888  0.627978568  0.42763702  0.03956147 -0.15250258 -0.041340385
#> T4   0.4969843  0.444673656 -0.03374901 -0.20128506 -0.01235869 -0.021123670
#> T5   0.1589410 -0.978031491 -0.22014316 -0.14050902 -0.20519743  0.009485604
#> T6  -1.4572936  0.416471042 -0.21839937  0.36505527 -0.05149491 -0.023475614
#> T7  -0.1504424  0.182350974 -0.38773011 -0.21099132  0.12143018 -0.009930074
#> T8  -0.9187556 -0.360689094  0.68880938 -0.38888233  0.08489360 -0.006029379
#> T9  -0.1945219 -0.009058457 -0.15971681  0.05763115 -0.11993801  0.031176053
#> T10  0.5599754 -0.442391668 -0.27228816  0.09241674  0.16139864 -0.069029679
#>           Axis.7
#> T1  -0.012349853
#> T2   0.030811467
#> T3  -0.015928941
#> T4   0.027760268
#> T5   0.005315811
#> T6   0.021420458
#> T7  -0.063343703
#> T8   0.002664980
#> T9  -0.021077355
#> T10  0.024726868
#> 
#> $trace
#> [1] 9
#> 
#> attr(,"class")
#> [1] "pcoa"
ComponentesPrincipais(Dados.MED)

#> $`Autovalor da matriz de covariancia`
#> [1] 3.4936 1.8407 0.8954 0.6368 0.1135 0.0141 0.0060
#> 
#> $`Autovetor da matriz de covariancia`
#>         [,1]    [,2]    [,3]    [,4]    [,5]    [,6]    [,7]
#> [1,] -0.3587  0.3871 -0.5429  0.0533 -0.2356  0.2281  0.5624
#> [2,] -0.4930 -0.2190 -0.0680 -0.2797 -0.0202 -0.7838  0.1067
#> [3,]  0.4091  0.4345  0.2058  0.0466  0.4720 -0.3574  0.4988
#> [4,]  0.3344 -0.3781 -0.2023  0.6802 -0.3444 -0.2953  0.1892
#> [5,]  0.4385  0.2653  0.0478 -0.4712 -0.6944 -0.1725 -0.0330
#> [6,]  0.3411 -0.0281 -0.7842 -0.2093  0.3362 -0.1151 -0.3127
#> [7,] -0.2012  0.6319 -0.0085  0.4338 -0.0868 -0.2750 -0.5374
#> 
#> $`Escores dos componentes principais`
#>        [,1]    [,2]    [,3]    [,4]    [,5]    [,6]    [,7]
#> T1  -1.1330  0.8300  0.9098  1.6047 -0.2636 -0.1154  0.0327
#> T2  -0.7919 -1.1440 -0.4453 -0.5808 -0.1962 -0.2293 -0.0815
#> T3  -2.0573 -1.6615  1.1314  0.1047  0.4035  0.1094  0.0421
#> T4  -1.3149 -1.1765 -0.0893 -0.5326  0.0327  0.0559 -0.0734
#> T5  -0.4205  2.5876 -0.5824 -0.3718  0.5429 -0.0251 -0.0141
#> T6   3.8556 -1.1019 -0.5778  0.9658  0.1362  0.0621 -0.0567
#> T7   0.3980 -0.4825 -1.0258 -0.5582 -0.3213  0.0263  0.1676
#> T8   2.4308  0.9543  1.8224 -1.0289 -0.2246  0.0160 -0.0071
#> T9   0.5147  0.0240 -0.4226  0.1525  0.3173 -0.0825  0.0558
#> T10 -1.4816  1.1705 -0.7204  0.2445 -0.4270  0.1826 -0.0654
#> 
#> $`Correlacao entre as variaveis e os comp. principais`
#>                  [,1]    [,2]    [,3]    [,4]    [,5]    [,6]    [,7]
#> X1Contagem    -0.6705  0.5252 -0.5137  0.0426 -0.0794  0.0270  0.0435
#> Germ          -0.9214 -0.2972 -0.0643 -0.2232 -0.0068 -0.0929  0.0083
#> SemAnormais    0.7646  0.5894  0.1947  0.0372  0.1590 -0.0424  0.0386
#> SemMortas      0.6250 -0.5129 -0.1914  0.5428 -0.1160 -0.0350  0.0146
#> Retencao75     0.8197  0.3599  0.0452 -0.3760 -0.2340 -0.0205 -0.0025
#> Retencao55     0.6375 -0.0381 -0.7421 -0.1670  0.1133 -0.0137 -0.0242
#> RetencaoFundo -0.3761  0.8573 -0.0080  0.3461 -0.0292 -0.0326 -0.0416
#> 
#> $`Explicacao dos componentes principais`
#>                           [,1]    [,2]    [,3]    [,4]    [,5]    [,6]     [,7]
#> Autovalor               3.4936  1.8407  0.8954  0.6368  0.1135  0.0141   0.0060
#> % Explicacao           49.9080 26.2955 12.7910  9.0972  1.6220  0.2009   0.0854
#> % Explicacao Acumulada 49.9080 76.2035 88.9946 98.0917 99.7137 99.9146 100.0000

Logo, quando se tem dados quantitativos faz mais sentido utilizar os componentes principais que coordenadas principais em situações quando irá se considerar a distância euclidiana padronizada.