Exemplo: Experimento em DBC com dados Mistos

Alcinei Mistico Azevedo (ICA-UFMG)

2021-09-27

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)
#> ############################################################
#> Obrigado por utilizar o MultivariateAnalysis
#> Author: Alcinei Mistico Azevedo (ICA-UFMG)
#> Veja tutoriais sobre este e outros pacotes no youtube:
#> https://www.youtube.com/channel/UCDGyvLCJnv9RtTY1YMBMVNQ
#> Se inscreva e compartilhe para ajudar o canal a crescer.
#> ############################################################

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.DBC.Misto")
head(Dados.DBC.Misto)
#>           Acesso Bloco ProdCom ProdTot NumRaiz CorRama TamRama TipoLobulosFolha
#> 1         Arruba     1  20.042  32.500   2.500       1       6                5
#> 2       Cambraia     1  19.125  34.500   2.625       3       5                7
#> 3 Cariruvermelha     1  27.917  46.542   4.500       9       5                7
#> 4       Coquinha     1   6.875  10.625   3.000       1       6                5
#> 5      Espanhola     1  17.958  26.833   3.000       1       6                5
#> 6         Licuri     1  27.083  39.208   5.333       1       6                7
#>   FormatoLobulo PigmentacaoNervura CorFolha
#> 1             6                  7        3
#> 2             6                  7        4
#> 3             6                  5        9
#> 4             6                  7        1
#> 5             6                  6        3
#> 6             6                  4        4

Analise de variancia Multivariada

Quando se quer saber se há diferença entre os “Tratamentos” do ponto de vista multivariado, pode-se fazer a analise de variância multivariada. Para isso, deve-se utilizar a função MANOVA. Dessa função deve-se considerar o delineamento desejado no argumento Modelo:

1 = Delineamento inteiramente casualizado (DIC)

2 = Delineamento em blocos casualizados (DBC)

3 = Delineamento em quadrado latino (DQL)

4 = Esquema fatorial em DIC

5 = Esquema fatorial em DBC

Res=MANOVA(Dados.DBC.Misto[,1:5],Modelo=2)
Res
#> __________________________________________________________________________ 
#> MANOVA com o teste Pillai 
#>           Df    Pillai approx F num Df den Df       Pr(>F)
#> Trat       9 1.4208001 2.699088     27     81 0.0003195094
#> Bloco      3 0.8509652 3.563780      9     81 0.0009025751
#> Residuals 27        NA       NA     NA     NA           NA
#>   
#> MANOVA com o teste Wilks 
#>           Df      Wilks approx F num Df   den Df       Pr(>F)
#> Trat       9 0.09550128 3.368661     27 73.65521 1.934035e-05
#> Bloco      3 0.35647163 3.577015      9 60.99404 1.266052e-03
#> Residuals 27         NA       NA     NA       NA           NA
#>   
#> MANOVA com o teste Hotelling 
#>           Df Hotelling-Lawley approx F num Df den Df       Pr(>F)
#> Trat       9         4.857679 4.257965     27     71 5.177493e-07
#> Bloco      3         1.275248 3.353431      9     71 1.798071e-03
#> Residuals 27               NA       NA     NA     NA           NA
#>   
#> MANOVA com o teste Roy 
#>           Df       Roy  approx F num Df den Df       Pr(>F)
#> Trat       9 3.9388079 11.816424      9     27 2.760817e-07
#> Bloco      3 0.6941331  6.247198      3     27 2.317696e-03
#> Residuals 27        NA        NA     NA     NA           NA
#>   
#> As medias dos tratamentos podem ser acessados com o $Med 
#> Os Graus de liberdade do residuo podem ser acessados com o $GLres 
#> A matriz de (co)variancias residuais pode ser acessada com o $CovarianciaResidual 
#> __________________________________________________________________________

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:

Dissimilaridade para os 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.

DadosMed=Res$Med
DistMaha=Distancia(DadosMed,Metodo = 7,Cov = Res$CovarianciaResidual)
DistMaha
#> Medida de dissimilaridade: 7 = Distancia de Mahalanobis.
#>      
#> Menor Distancia: 0.08995549 
#> Maior Distancia: 30.70898 
#> Media das Distancias: 7.286518 
#> Amplitude das Distancias: 30.61903 
#> Desvio Padrao das Distancias: 7.265315 
#> Coeficiente de variacao das Distancias: 99.70901 
#> Individuos mais proximos: Arruba Palmas 
#> Individuos mais distantes: Coquinha TCarro1

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

resumo=SummaryDistancia(DistMaha)

resumo
#> _________________________________________________________________________ 
#> Tabela com o resumo da matriz dissimilaridade 
#>                Medio Minimo Maximo   sd    MaisProximo MaisDistante
#> Arruba          3.80   0.09   8.88 3.44         Palmas      TCarro1
#> Cambraia        4.06   0.26  11.16 3.71         Palmas     Coquinha
#> Cariruvermelha  8.79   0.95  25.92 8.85         Licuri     Coquinha
#> Coquinha       14.30   4.00  30.71 9.09        TCarro2      TCarro1
#> Espanhola       3.91   0.13   9.52 3.36         Arruba      TCarro1
#> Licuri          6.74   0.95  19.04 6.48 Cariruvermelha     Coquinha
#> Palmas          3.77   0.09   9.54 3.59         Arruba     Coquinha
#> Princesa        4.84   1.79  13.35 4.33      Espanhola     Coquinha
#> TCarro1        11.39   3.25  30.71 9.61 Cariruvermelha     Coquinha
#> TCarro2        11.27   4.00  24.68 7.94       Coquinha      TCarro1
#> 
#> Menor Distancia: 0.08995549 
#> Maior Distancia: 30.70898 
#> Media das Distancias: 7.286518 
#> Amplitude das Distancias: 30.61903 
#> Desvio Padrao das Distancias: 7.265315 
#> Coeficiente de variacao das Distancias: 99.70901 
#> Individuos mais proximos: Arruba Palmas 
#> Individuos mais distantes: Coquinha TCarro1 
#> _________________________________________________________________________

Dissimilaridade para os dados qualitativos:

Opções de medidas para dados qualitativos

Dados qualitativos: binarios ou multicategoricos

9 = Frequencia de coincidencia.

10 = Frequencia de discordancia.

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

Dadosquali=Dados.DBC.Misto[,6:11]

#Excluindo os valores NA
id=is.na(Dadosquali$CorFolha)==FALSE
Dadosquali2=Dadosquali[id,]
#Colocando o nome dos tratamentos na matriz
rownames(Dadosquali2)=Dados.DBC.Misto[id,1]


Distquali=Distancia(Dadosquali2,Metodo = 10)
round(Distquali$Distancia,3)
#>                Arruba Cambraia Cariruvermelha Coquinha Espanhola Licuri Palmas
#> Cambraia        0.667                                                         
#> Cariruvermelha  0.833    0.500                                                
#> Coquinha        0.167    0.667          0.833                                 
#> Espanhola       0.167    0.833          0.833    0.333                        
#> Licuri          0.500    0.500          0.667    0.500     0.500              
#> Palmas          0.667    1.000          1.000    0.833     0.667  0.833       
#> Princesa        1.000    1.000          0.667    1.000     0.833  1.000  1.000
#> TCarro1         0.833    0.500          0.667    0.833     1.000  0.833  1.000
#> TCarro2         0.667    1.000          1.000    0.833     0.667  0.833  0.000
#>                Princesa TCarro1
#> Cambraia                       
#> Cariruvermelha                 
#> Coquinha                       
#> Espanhola                      
#> Licuri                         
#> Palmas                         
#> Princesa                       
#> TCarro1           1.000        
#> TCarro2           1.000   1.000

Obtendo a média ponderada das matrizes de dissimilaridade


#Criando list com as matrizes
dissimilaridades=list(DistMaha,Distquali)
n=c(ncol(DadosMed),ncol(Dadosquali2))
#Calculando a media ponderada
DistMisto=MediaDistancia(dissimilaridades,n)
DistMisto
#>                    Arruba   Cambraia Cariruvermelha   Coquinha  Espanhola
#> Cambraia       0.44784038                                                
#> Cariruvermelha 0.62137298 0.38988736                                     
#> Coquinha       0.19938334 0.56561782     0.83692668                      
#> Espanhola      0.11251594 0.56437701     0.62767207 0.29614257           
#> Licuri         0.37228812 0.37048266     0.45478809 0.53998338 0.37638866
#> Palmas         0.44542087 0.66952651     0.71910793 0.65912197 0.44781930
#> Princesa       0.68704895 0.68766317     0.48901959 0.81153120 0.57494561
#> TCarro1        0.65189350 0.41233327     0.47974207 0.88888889 0.76997345
#> TCarro2        0.50042758 0.73296801     0.90727161 0.59893358 0.50091940
#>                    Licuri     Palmas   Princesa    TCarro1
#> Cambraia                                                  
#> Cariruvermelha                                            
#> Coquinha                                                  
#> Espanhola                                                 
#> Licuri                                                    
#> Palmas         0.58358742                                 
#> Princesa       0.70958440 0.68675915                      
#> TCarro1        0.62648640 0.75464494 0.70554673           
#> TCarro2        0.73598043 0.06915459 0.78707948 0.93454414

Obtendo dendograma para as 3 medidas de dissimilaridade

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(DistMaha,Metodo=3,Titulo="Dados quantiativos")

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.7302818
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.001 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Ponto de corte pelo metodo Mojena 
#>    k=1.25       k=2 
#>  9.215353 12.568870 
#> _________________________________________________________________________
Dendograma(Distquali,Metodo=3, Titulo="Dados qualitativos")

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.8915022
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.001 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Ponto de corte pelo metodo Mojena 
#>    k=1.25       k=2 
#> 0.9039087 1.1431675 
#> _________________________________________________________________________
Dendograma(DistMisto,Metodo=3,Titulo= "Qualitativos + Quantiativos")

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.788377
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.001 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Ponto de corte pelo metodo Mojena 
#>    k=1.25       k=2 
#> 0.6697798 0.8332634 
#> _________________________________________________________________________

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

Tocher(DistMisto)

#> _________________________________________________________________________ 
#> Agrupamento Tocher 
#> Cluster1: 
#> Palmas TCarro2 Arruba Espanhola Coquinha 
#> 
#> Cluster2: 
#> Cambraia Licuri Cariruvermelha 
#> 
#> Cluster3: 
#> Princesa 
#> 
#> Cluster4: 
#> TCarro1 
#> 
#> Distancia intra e intercluster: 
#>           Cluster1  Cluster2  Cluster3  Cluster4
#> Cluster1 0.3829839 0.6200606 0.7094729 0.7999890
#> Cluster2 0.6200606 0.4050527 0.6287557 0.5061872
#> Cluster3 0.7094729 0.6287557 0.0000000 0.7055467
#> Cluster4 0.7999890 0.5061872 0.7055467 0.0000000
#> 
#> 
#> Correlacao Cofenetica: 0.7114534 
#> pvalor: 0.001 baseado no teste Mantel 
#> Hipotese alternativa: A correlacao e maior que 0 
#> _________________________________________________________________________

Estimativas de correção entre as medidas de dissimilaridade

CorrelacaoMantel(DistMaha,DistMisto)

#> Estimativa de correlacao:  0.5400622 
#> P-valor obtido pelo teste Mantel:  0.001 
#> Hipotese alternativa:  bilateral
CorrelacaoMantel(DistMaha,Distquali)

#> Estimativa de correlacao:  0.1649969 
#> P-valor obtido pelo teste Mantel:  0.37 
#> Hipotese alternativa:  bilateral
CorrelacaoMantel(Distquali,DistMisto)

#> Estimativa de correlacao:  0.9191985 
#> P-valor obtido pelo teste Mantel:  0.001 
#> Hipotese alternativa:  bilateral