Exemplo: esquema fatorial no DBC

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)

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.Fat2.DBC")
head(Dados.Fat2.DBC)
#>   FAemb. FBtemp Rep Germ9 Germ5pn GM9pn GM9pa  UMID   IVG
#> 1     E1     90   1    92      32    40    52 10.51 10.92
#> 2     E2     90   1    92      48    56    36 10.48 10.42
#> 3     E3     90   1    92      40    48    48 11.45 11.00
#> 4     E4     90   1    88      52    64    32 10.93 10.42
#> 5     E5     90   1    88      40    52    40 10.58 10.33
#> 6     E6     90   1    96      52    56    40 13.50 12.00

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.Fat2.DBC,Modelo=5)
Res
#> __________________________________________________________________________ 
#> MANOVA com o teste Pillai 
#>               Df    Pillai  approx F num Df den Df       Pr(>F)
#> FatorA         5 1.3856719  4.345007     30    340 7.695785e-12
#> FatorB         3 1.6150697 12.827915     18    198 1.440871e-24
#> Bloco          3 0.2837477  1.149092     18    198 3.077954e-01
#> FatorA:FatorB 15 2.6099717  3.541525     90    414 2.120667e-18
#> Residuals     69        NA        NA     NA     NA           NA
#>   
#> MANOVA com o teste Wilks 
#>               Df      Wilks  approx F num Df   den Df       Pr(>F)
#> FatorA         5 0.06607735  8.362322     30 258.0000 4.423186e-24
#> FatorB         3 0.03551055 22.736612     18 181.5046 2.839641e-37
#> Bloco          3 0.72951080  1.189443     18 181.5046 2.736809e-01
#> FatorA:FatorB 15 0.01122337  4.976291     90 366.5236 2.832261e-28
#> Residuals     69         NA        NA     NA       NA           NA
#>   
#> MANOVA com o teste Hotelling 
#>               Df Hotelling-Lawley  approx F num Df den Df       Pr(>F)
#> FatorA         5        7.7079243 16.032483     30    312 6.862823e-47
#> FatorB         3       11.8198790 41.150690     18    188 2.262202e-55
#> Bloco          3        0.3527784  1.228192     18    188 2.421321e-01
#> FatorA:FatorB 15       10.8012526  7.480868     90    374 4.631458e-45
#> Residuals     69               NA        NA     NA     NA           NA
#>   
#> MANOVA com o teste Roy 
#>               Df        Roy   approx F num Df den Df       Pr(>F)
#> FatorA         5  6.8354607  77.468555      6     68 1.932782e-28
#> FatorB         3 10.6896240 117.585864      6     66 2.896093e-33
#> Bloco          3  0.2941338   3.235472      6     66 7.559402e-03
#> FatorA:FatorB 15  7.3578864  33.846278     15     69 7.087334e-26
#> Residuals     69         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:

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.

#Carregando a média dos tratamentos
DadosMed=Res$Med
head(DadosMed)
#>        Germ9 Germ5pn GM9pn GM9pa    UMID     IVG
#> E1:90     88      33    45    41 10.5700 10.1750
#> E1:180    98      84    87    12 10.9650  9.9725
#> E1:270    88      43    50    43 10.7725 10.2375
#> E1:360    89       7    16    73 10.9250 10.4525
#> E2:90     90      50    60    34 10.4925 10.5650
#> E2:180    95      83    88    12 10.4175 10.0075
Dist=Distancia(DadosMed,Metodo = 7,Cov = Res$CovarianciaResidual)

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
#> E1:90   28.30   2.70 231.84 46.54       E3:90       E6:270
#> E1:180  36.66   2.06 182.27 43.45      E3:180       E6:270
#> E1:270  26.46   3.89 207.65 41.75       E3:90       E6:270
#> E1:360  44.89   8.21 244.36 47.79      E4:360       E6:270
#> E2:90   28.33   0.45 234.07 48.86       E4:90       E6:270
#> E2:180  37.96   0.67 211.56 49.22      E5:180       E6:270
#> E2:270  28.60   2.25 215.80 45.90      E5:270       E6:270
#> E2:360  49.13   3.88 311.70 61.54      E3:360       E6:270
#> E3:90   25.92   2.70 192.82 39.40       E1:90       E6:270
#> E3:180  31.27   2.06 155.45 38.32      E1:180       E6:270
#> E3:270  25.99   1.02 205.55 44.20       E5:90       E6:270
#> E3:360  35.08   3.88 273.13 54.47      E2:360       E6:270
#> E4:90   27.43   0.45 216.65 45.91       E2:90       E6:270
#> E4:180  37.06   6.78 121.63 31.44      E3:180       E6:360
#> E4:270  24.46   1.96 207.83 43.93      E3:270       E6:270
#> E4:360  65.57   8.21 252.15 48.05      E1:360       E6:270
#> E5:90   25.75   1.02 215.52 45.51      E3:270       E6:270
#> E5:180  35.49   0.67 210.98 48.70      E2:180       E6:270
#> E5:270  29.16   2.25 200.05 44.85      E2:270       E6:270
#> E5:360  38.99   7.96 297.82 60.16      E2:270       E6:270
#> E6:90   46.01  17.81 130.50 26.47       E3:90       E6:270
#> E6:180  51.39  11.56 161.08 35.11      E4:180       E6:360
#> E6:270 216.26  95.75 369.04 61.72      E6:180       E6:360
#> E6:360  95.70  34.05 369.04 67.72      E2:360       E6:270
#> 
#> Menor Distancia: 0.4476989 
#> Maior Distancia: 369.0362 
#> Media das Distancias: 45.49358 
#> Amplitude das Distancias: 368.5885 
#> Desvio Padrao das Distancias: 60.77122 
#> Coeficiente de variacao das Distancias: 133.582 
#> Individuos mais proximos: E2:90 E4:90 
#> Individuos mais distantes: E6:270 E6:360 
#> _________________________________________________________________________

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
Dendo=Dendograma(Dist,Metodo=3)

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

To=Tocher(Dist)

To$Tocher
#> $`cluster 1`
#>  [1] E2:90  E4:90  E4:270 E5:90  E3:270 E5:270 E2:270 E5:180 E2:180 E3:180
#> [11] E1:180 E1:270 E3:90  E1:90  E5:360 E3:360 E4:180 E2:360 E1:360 E6:90 
#> [21] E6:180 E4:360 E6:360
#> 
#> $`cluster 2`
#> [1] E6:270

Outra possibilidade é o estudo dos componentes principais:

CP=ComponentesPrincipais(DadosMed,padronizar = TRUE)

Porém, quando se tem repetições, o mais indicado é o estudo de variáveis canônicas:

Para isso, deve-se indicar qual é o Modelo referente ao delineamento:

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

VC=VariaveisCanonicas(Dados.Fat2.DBC,Modelo = 5,Fator = "A:B")

Se a interação tivesse sido não significativa, uma boa opção seria fazer a dispersão gráfica das variáveis canônicas apenas para os efeitos principais.

VC=VariaveisCanonicas(Dados.Fat2.DBC,Modelo = 5,Fator = "A")

VC=VariaveisCanonicas(Dados.Fat2.DBC,Modelo = 5,Fator = "B")