Exemplo: Experimento em DBC com dados Mistos

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
#> Trat       9  1.42080007707336 2.69908842404249     27     81
#> Bloco      3 0.850965245237817 3.56378005994039      9     81
#> Residuals 27                                                 
#>                         Pr(>F)
#> Trat      0.000319509414350262
#> Bloco     0.000902575136153418
#> Residuals                     
#>   
#> MANOVA com o teste Wilks 
#>           Df              Wilks         approx F num Df           den Df
#> Trat       9 0.0955012834922687 3.36866086165212     27 73.6552121942445
#> Bloco      3   0.35647163286373 3.57701543314339      9 60.9940366951145
#> Residuals 27                                                            
#>                         Pr(>F)
#> Trat      1.93403537406567e-05
#> Bloco       0.0012660522907648
#> Residuals                     
#>   
#> MANOVA com o teste Hotelling 
#>           Df Hotelling-Lawley         approx F num Df den Df
#> Trat       9 4.85767878020045 4.25796535054607     27     71
#> Bloco      3 1.27524841232468 3.35343101018712      9     71
#> Residuals 27                                                
#>                         Pr(>F)
#> Trat      5.17749339202821e-07
#> Bloco      0.00179807124388821
#> Residuals                     
#>   
#> MANOVA com o teste Roy 
#>           Df               Roy         approx F num Df den Df
#> Trat       9  3.93880792222087 11.8164237666626      9     27
#> Bloco      3 0.694133101322298 6.24719791190068      3     27
#> Residuals 27                                                 
#>                         Pr(>F)
#> Trat      2.76081734174697e-07
#> Bloco      0.00231769557967963
#> Residuals                     
#>   
#> 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)

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)

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 Dendrograma 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 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 com o metodo UPGMA
Dendrograma(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 
#> 
#> Criterio de Corte 
#>   k=1.25 
#> 9.215353 
#> 
#> Agrupamentos 
#>                Cluster
#> Arruba               1
#> Cambraia             1
#> Cariruvermelha       1
#> Coquinha             2
#> Espanhola            1
#> Licuri               1
#> Palmas               1
#> Princesa             1
#> TCarro1              1
#> TCarro2              2
#> _________________________________________________________________________
Dendrograma(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 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.9039087 
#> 
#> Agrupamentos 
#>                Cluster
#> Arruba               1
#> Cambraia             1
#> Cariruvermelha       1
#> Coquinha             1
#> Espanhola            1
#> Licuri               1
#> Palmas               1
#> Princesa             2
#> TCarro1              1
#> TCarro2              1
#> _________________________________________________________________________
Dendrograma(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 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.6697798 
#> 
#> Agrupamentos 
#>                Cluster
#> Arruba               1
#> Cambraia             2
#> Cariruvermelha       2
#> Coquinha             1
#> Espanhola            1
#> Licuri               2
#> Palmas               1
#> Princesa             2
#> TCarro1              2
#> TCarro2              1
#> _________________________________________________________________________

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.374 
#> Hipotese alternativa:  bilateral
CorrelacaoMantel(Distquali,DistMisto)

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