Exemplo: Experimento em em DIC

Alcinei Mistico Azevedo (ICA-UFMG)

2024-04-08

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.DIC")
Dados.DIC
#>     trat rep X1Contagem Germ SemAnormais SemMortas Retencao75 Retencao55
#> 1  Trat1   1         82   90    3.316625  1.000000   16.49242   5.567764
#> 2  Trat2   1         80   98    1.732051  1.732051   15.96872   5.000000
#> 3  Trat3   1         66   96    2.236068  1.000000   16.27882   4.898979
#> 4  Trat4   1         80   96    2.236068  1.000000   15.96872   3.872983
#> 5  Trat5   1         86   92    3.000000  1.000000   16.55295  11.532563
#> 6  Trat1   2         84   96    2.236068  1.000000   16.58312   6.403124
#> 7  Trat2   2         86   94    2.645751  1.000000   16.55295   4.690416
#> 8  Trat3   2         62   76    5.000000  1.000000   16.85230   5.744563
#> 9  Trat4   2         82   94    2.645751  1.000000   16.06238   8.062258
#> 10 Trat5   2         88   92    3.000000  1.000000   16.18641   4.795832
#> 11 Trat1   3         92   92    2.236068  2.236068   16.40122   4.582576
#> 12 Trat2   3         84   92    3.000000  1.000000   17.00000   4.898979
#> 13 Trat3   3        100   92    2.645751  1.732051   15.45962   4.795832
#> 14 Trat4   3         82   94    2.645751  1.000000   16.09348   6.324555
#> 15 Trat5   3         94   94    2.645751  1.000000   16.12452   6.928203
#> 16 Trat1   4         84   88    3.000000  2.236068   16.82260   7.681146
#> 17 Trat2   4         84   86    3.000000  2.645751   16.09348   9.949874
#> 18 Trat3   4         86   94    2.645751  1.000000   17.29162   5.291503
#> 19 Trat4   4         92   92    2.645751  1.732051   16.18641   7.874008
#> 20 Trat5   4         92   96    2.236068  1.000000   16.52271   6.708204
#> 21 Trat1   5         86   94    2.645751  1.000000   15.77973   5.000000
#> 22 Trat2   5         90   98    1.732051  1.000000   16.12452   5.291503
#> 23 Trat3   5         90   96    2.236068  1.000000   15.81139   5.385165
#> 24 Trat4   5         98   98    1.000000  1.732051   16.12452   6.928203
#> 25 Trat5   5         94   94    2.645751  1.000000   16.79286   4.795832
#> 26 Trat1   6         66   66    4.123106  4.358899   16.91153   7.681146
#> 27 Trat2   6         92   96    2.236068  1.000000   16.88194   6.633250
#> 28 Trat3   6         92   94    2.645751  1.000000   16.61325   5.830952
#> 29 Trat4   6         86   88    2.645751  2.645751   16.49242   6.928203
#> 30 Trat5   6         88  100    6.605551 11.000000   15.42725  15.164414
#>    RetencaoFundo
#> 1       1.732051
#> 2       1.414214
#> 3       1.000000
#> 4       1.414214
#> 5       2.828427
#> 6       1.000000
#> 7       1.414214
#> 8       1.414214
#> 9       1.000000
#> 10      1.414214
#> 11      1.732051
#> 12      1.000000
#> 13      1.000000
#> 14      1.000000
#> 15      1.414214
#> 16      1.000000
#> 17      1.000000
#> 18      1.000000
#> 19      1.732051
#> 20      2.000000
#> 21      1.000000
#> 22      1.000000
#> 23      1.000000
#> 24      1.000000
#> 25      1.000000
#> 26      1.000000
#> 27      1.000000
#> 28      1.000000
#> 29      1.000000
#> 30      2.414214

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.DIC,Modelo=1)
Res
#> __________________________________________________________________________ 
#> MANOVA com o teste Pillai 
#>           Df            Pillai          approx F num Df den Df
#> Trat       4 0.923557138089452 0.943494899326211     28     88
#> Residuals 25                                                  
#>                      Pr(>F)
#> Trat      0.553532575460337
#> Residuals                  
#>   
#> MANOVA com o teste Wilks 
#>           Df             Wilks          approx F num Df           den Df
#> Trat       4 0.320682382551752 0.926168578503273     28 69.9276793356718
#> Residuals 25                                                            
#>                      Pr(>F)
#> Trat      0.577118761177976
#> Residuals                  
#>   
#> MANOVA com o teste Hotelling 
#>           Df Hotelling-Lawley         approx F num Df den Df           Pr(>F)
#> Trat       4 1.44731832078461 0.90457395049038     28     70 0.60555702095796
#> Residuals 25                                                                 
#>   
#> MANOVA com o teste Roy 
#>           Df              Roy         approx F num Df den Df             Pr(>F)
#> Trat       4 0.89501778044243 2.81291302424764      7     22 0.0298030163187348
#> Residuals 25                                                                   
#>   
#> 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.

#colocando nome nos individuos
DadosMed=Res$Med
Dist=Distancia(DadosMed,Metodo = 7,Cov = Res$CovarianciaResidual)
round(Dist$Distancia,3)
#>       Trat1 Trat2 Trat3 Trat4
#> Trat2 1.323                  
#> Trat3 1.746 1.340            
#> Trat4 1.891 0.721 2.232      
#> Trat5 5.149 4.836 5.743 5.172

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
#> Trat1  2.53   1.32   5.15 1.76       Trat2        Trat5
#> Trat2  2.05   0.72   4.84 1.88       Trat4        Trat5
#> Trat3  2.77   1.34   5.74 2.02       Trat2        Trat5
#> Trat4  2.50   0.72   5.17 1.89       Trat2        Trat5
#> Trat5  5.22   4.84   5.74 0.38       Trat2        Trat3
#> 
#> Menor Distancia: 0.7210422 
#> Maior Distancia: 5.742836 
#> Media das Distancias: 3.015247 
#> Amplitude das Distancias: 5.021794 
#> Desvio Padrao das Distancias: 1.954571 
#> Coeficiente de variacao das Distancias: 64.82292 
#> Individuos mais proximos: Trat2 Trat4 
#> Individuos mais distantes: Trat3 Trat5 
#> _________________________________________________________________________

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

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.9855215
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.015 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>   k=1.25 
#> 4.810794 
#> 
#> Agrupamentos 
#>       Cluster
#> Trat1       1
#> Trat2       1
#> Trat3       1
#> Trat4       1
#> Trat5       2
#> _________________________________________________________________________

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

#Dendrograma com o metodo UPGMA
Tocher(Dist)

#> _________________________________________________________________________ 
#> Agrupamento Tocher 
#> Cluster1: 
#> Trat2 Trat4 Trat1 Trat3 
#> 
#> Cluster2: 
#> Trat5 
#> 
#> Distancia intra e intercluster: 
#>          Cluster1 Cluster2
#> Cluster1 1.542090 5.224981
#> Cluster2 5.224981 0.000000
#> 
#> 
#> Correlacao Cofenetica: 0.97302 
#> pvalor: 0.203 baseado no teste Mantel 
#> Hipotese alternativa: A correlacao e maior que 0 
#> _________________________________________________________________________

###Outra possibilidade é o estudo dos componentes principais:

ComponentesPrincipais(DadosMed,padronizar = TRUE)

#> $`Autovalor da matriz de covariancia`
#> [1] 4.3965 1.9234 0.3852 0.2949 0.0000 0.0000 0.0000
#> 
#> $`Autovetor da matriz de covariancia`
#>         [,1]    [,2]    [,3]    [,4]    [,5]    [,6]    [,7]
#> [1,] -0.4415  0.2430 -0.2619  0.1019  0.0000  0.1718  0.7985
#> [2,] -0.2825  0.5132 -0.5489 -0.2999 -0.2546 -0.0344 -0.4467
#> [3,] -0.2526 -0.5369  0.0050 -0.7481 -0.1848 -0.1710  0.1576
#> [4,] -0.4082 -0.3299  0.1136  0.4248 -0.6387  0.2859 -0.2038
#> [5,]  0.2554 -0.4878 -0.7800  0.2679  0.0754 -0.1023  0.0216
#> [6,] -0.4697 -0.0278  0.0860  0.2944  0.1966 -0.7987 -0.0888
#> [7,] -0.4571 -0.2045 -0.0363 -0.0319  0.6699  0.4582 -0.2969
#> 
#> $`Escores dos componentes principais`
#>          [,1]    [,2]    [,3]    [,4] [,5] [,6] [,7]
#> Trat1  1.1515 -1.8718  0.3181  0.4900    0    0    0
#> Trat2  0.8063  0.8045 -0.9488  0.3342    0    0    0
#> Trat3  1.7241 -0.1561  0.0309 -0.8601    0    0    0
#> Trat4 -0.1294  1.7885  0.7234  0.2270    0    0    0
#> Trat5 -3.5525 -0.5651 -0.1236 -0.1910    0    0    0
#> 
#> $`Correlacao entre as variaveis e os comp. principais`
#>                  [,1]    [,2]    [,3]    [,4]    [,5]   [,6]    [,7]
#> X1Contagem    -0.9257  0.3370 -0.1625  0.0553  0.2185 0.2059 -0.6101
#> Germ          -0.5923  0.7117 -0.3407 -0.1629 -0.3004 0.2325 -0.8598
#> SemAnormais   -0.5297 -0.7446  0.0031 -0.4063  0.8781 0.7195 -0.0778
#> SemMortas     -0.8559 -0.4575  0.0705  0.2307  0.8679 0.1968  0.0110
#> Retencao75     0.5355 -0.6765 -0.4842  0.1455  0.2629 0.1323  0.3047
#> Retencao55    -0.9849 -0.0386  0.0534  0.1599  0.5821 0.1689 -0.2791
#> RetencaoFundo -0.9585 -0.2836 -0.0225 -0.0173  0.7551 0.4100 -0.2902
#> 
#> $`Explicacao dos componentes principais`
#>                           [,1]    [,2]    [,3]     [,4] [,5] [,6] [,7]
#> Autovalor               4.3965  1.9234  0.3852   0.2949    0    0    0
#> % Explicacao           62.8072 27.4765  5.5036   4.2128    0    0    0
#> % Explicacao Acumulada 62.8072 90.2837 95.7872 100.0000  100  100  100
#> 
#> attr(,"class")
#> [1] "ComponentesPrincipais"

###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.DIC,Modelo = 1)

#> [1] "a"