Author: Alcinei Mistico Azevedo (ICA-UFMG)
Date: 2025-07-25

# Exemplo: Experimento em DBC com dados Mistos

#### Alcinei Mistico Azevedo (ICA-UFMG)

#### 2025-07-25

# 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.850965245237816 3.56378005994039      9     81
    #> Residuals 27
    #>                         Pr(>F)
    #> Trat      0.000319509414350256
    #> Bloco     0.000902575136153422
    #> Residuals
    #>
    #> MANOVA com o teste Wilks
    #>           Df              Wilks         approx F num Df           den Df
    #> Trat       9 0.0955012834922686 3.36866086165213     27 73.6552121942445
    #> Bloco      3   0.35647163286373 3.57701543314339      9 60.9940366951145
    #> Residuals 27
    #>                         Pr(>F)
    #> Trat      1.93403537406565e-05
    #> Bloco      0.00126605229076481
    #> Residuals
    #>
    #> MANOVA com o teste Hotelling
    #>           Df Hotelling-Lawley         approx F num Df den Df
    #> Trat       9 4.85767878020045 4.25796535054608     27     71
    #> Bloco      3 1.27524841232468 3.35343101018712      9     71
    #> Residuals 27
    #>                         Pr(>F)
    #> Trat      5.17749339202819e-07
    #> Bloco      0.00179807124388822
    #> 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.694133101322297 6.24719791190067      3     27
    #> Residuals 27
    #>                         Pr(>F)
    #> Trat      2.76081734174698e-07
    #> Bloco      0.00231769557967965
    #> 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.002
    #> Hipotese alternativa:  bilateral

    CorrelacaoMantel(DistMaha,Distquali)

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

    CorrelacaoMantel(Distquali,DistMisto)

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