Após a instalação do pacote é preciso ativa-lo. Para isso, deve-se utilizar a função library
ou require
library(MultivariateAnalysis)
#> Loading required package: corrplot
#> corrplot 0.88 loaded
#> Loading required package: crayon
#> Loading required package: ape
#> ############################################################
#> 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.
#> ############################################################
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
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
=MANOVA(Dados.DBC.Misto[,1:5],Modelo=2)
Res
Res#> $Manova
#> $Manova$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$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$Teste_HotellingL
#> 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$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
#>
#>
#> $CovarianciaResidual
#> ProdCom ProdTot NumRaiz
#> ProdCom 32.481303 30.11095 2.4012477
#> ProdTot 30.110952 52.17210 2.2533897
#> NumRaiz 2.401248 2.25339 0.4983484
#>
#> $GLres
#> [1] 27
#>
#> $Med
#> ProdCom ProdTot NumRaiz
#> Arruba 17.79200 27.41675 2.44800
#> Cambraia 19.71900 30.68750 2.40625
#> Cariruvermelha 29.45825 42.30225 3.93300
#> Coquinha 3.98950 7.34375 1.58325
#> Espanhola 16.48925 25.89575 2.50450
#> Licuri 27.20825 35.89550 3.66800
#> Palmas 19.44800 28.87475 2.61150
#> Princesa 18.22925 33.47925 2.90775
#> TCarro1 25.81250 47.12500 3.52375
#> TCarro2 8.53125 15.11450 0.96875
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
:
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.
=Res$Med
DadosMed=Distancia(DadosMed,Metodo = 7,Cov = Res$CovarianciaResidual)
DistMaharound(DistMaha,3)
#> Arruba Cambraia Cariruvermelha Coquinha Espanhola Licuri Palmas
#> Cambraia 0.313
#> Cariruvermelha 6.064 5.210
#> Coquinha 8.132 11.163 25.922
#> Espanhola 0.129 0.813 6.644 6.810
#> Licuri 3.589 3.422 0.953 19.038 3.967
#> Palmas 0.090 0.263 4.831 9.541 0.311 2.582
#> Princesa 1.878 1.934 4.107 13.346 1.786 3.954 1.851
#> TCarro1 8.875 7.278 3.252 30.709 9.517 6.535 8.105
#> TCarro2 5.158 6.108 22.166 3.996 5.203 16.622 6.371
#> Princesa TCarro1
#> Cambraia
#> Cariruvermelha
#> Coquinha
#> Espanhola
#> Licuri
#> Palmas
#> Princesa
#> TCarro1 3.582
#> TCarro2 11.093 24.679
Informações importantes podem ser obtidas dessa matriz com a função SummaryDistancia
:
=SummaryDistancia(DistMaha) resumo
resumo#> 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
Dados qualitativos: binarios ou multicategoricos
9 = Frequencia de coincidencia.
10 = Frequencia de discordancia.
11 = indice Inverso de 1+coincidencia = 1/(1+c)
=Dados.DBC.Misto[,6:11]
Dadosquali
#Excluindo os valores NA
=is.na(Dadosquali$CorFolha)==FALSE
id=Dadosquali[id,]
Dadosquali2#Colocando o nome dos tratamentos na matriz
rownames(Dadosquali2)=Dados.DBC.Misto[id,1]
=Distancia(Dadosquali2,Metodo = 10)
Distqualiround(Distquali,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
#Criando list com as matrizes
=list(DistMaha,Distquali)
dissimilaridades=c(ncol(DadosMed),ncol(Dadosquali2))
n#Calculando a media ponderada
=MediaDistancia(dissimilaridades,n)
DistMisto
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
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")
#> $DistanciaFenetica
#> Arruba Cambraia Cariruvermelha Coquinha Espanhola
#> Cambraia 0.46300647
#> Cariruvermelha 4.43695705 4.43695705
#> Coquinha 13.87884103 13.87884103 13.87884103
#> Espanhola 0.22016882 0.46300647 4.43695705 13.87884103
#> Licuri 4.43695705 4.43695705 0.95292853 13.87884103 4.43695705
#> Palmas 0.08995549 0.46300647 4.43695705 13.87884103 0.22016882
#> Princesa 1.86237671 1.86237671 4.43695705 13.87884103 1.86237671
#> TCarro1 6.73489393 6.73489393 6.73489393 13.87884103 6.73489393
#> TCarro2 13.87884103 13.87884103 13.87884103 3.99628521 13.87884103
#> Licuri Palmas Princesa TCarro1
#> Cambraia
#> Cariruvermelha
#> Coquinha
#> Espanhola
#> Licuri
#> Palmas 4.43695705
#> Princesa 4.43695705 1.86237671
#> TCarro1 6.73489393 6.73489393 6.73489393
#> TCarro2 13.87884103 13.87884103 13.87884103 13.87884103
#>
#> $CorrelacaoCofenetica
#> [1] 0.7302818
#>
#> $SigCorrelCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.7302818
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> $MojenaCorte
#> k=1.25 k=2
#> 9.215353 12.568870
#>
#> $Ordem
#> [1] 4 10 9 3 6 8 2 5 1 7
Dendograma(Distquali,Metodo=3, Titulo="Dados qualitativos")
#> $DistanciaFenetica
#> Arruba Cambraia Cariruvermelha Coquinha Espanhola Licuri
#> Cambraia 0.8518519
#> Cariruvermelha 0.8518519 0.5000000
#> Coquinha 0.1666667 0.8518519 0.8518519
#> Espanhola 0.2500000 0.8518519 0.8518519 0.2500000
#> Licuri 0.5000000 0.8518519 0.8518519 0.5000000 0.5000000
#> Palmas 0.7500000 0.8518519 0.8518519 0.7500000 0.7500000 0.7500000
#> Princesa 0.9444444 0.9444444 0.9444444 0.9444444 0.9444444 0.9444444
#> TCarro1 0.8518519 0.5833333 0.5833333 0.8518519 0.8518519 0.8518519
#> TCarro2 0.7500000 0.8518519 0.8518519 0.7500000 0.7500000 0.7500000
#> Palmas Princesa TCarro1
#> Cambraia
#> Cariruvermelha
#> Coquinha
#> Espanhola
#> Licuri
#> Palmas
#> Princesa 0.9444444
#> TCarro1 0.8518519 0.9444444
#> TCarro2 0.0000000 0.9444444 0.8518519
#>
#> $CorrelacaoCofenetica
#> [1] 0.8915022
#>
#> $SigCorrelCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.8915022
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> $MojenaCorte
#> k=1.25 k=2
#> 0.9039087 1.1431675
#>
#> $Ordem
#> [1] 8 9 2 3 7 10 6 5 1 4
Dendograma(DistMisto,Metodo=3,Titulo= "Qualitativos + Quantiativos")
#> $DistanciaFenetica
#> Arruba Cambraia Cariruvermelha Coquinha Espanhola
#> Cambraia 0.67392873
#> Cariruvermelha 0.67392873 0.42233772
#> Coquinha 0.24776296 0.67392873 0.67392873
#> Espanhola 0.11251594 0.67392873 0.67392873 0.24776296
#> Licuri 0.67392873 0.37048266 0.42233772 0.67392873 0.67392873
#> Palmas 0.52544045 0.67392873 0.67392873 0.52544045 0.52544045
#> Princesa 0.67392873 0.64795347 0.64795347 0.67392873 0.67392873
#> TCarro1 0.67392873 0.50618725 0.50618725 0.67392873 0.67392873
#> TCarro2 0.52544045 0.67392873 0.67392873 0.52544045 0.52544045
#> Licuri Palmas Princesa TCarro1
#> Cambraia
#> Cariruvermelha
#> Coquinha
#> Espanhola
#> Licuri
#> Palmas 0.67392873
#> Princesa 0.64795347 0.67392873
#> TCarro1 0.50618725 0.67392873 0.64795347
#> TCarro2 0.67392873 0.06915459 0.67392873 0.67392873
#>
#> $CorrelacaoCofenetica
#> [1] 0.788377
#>
#> $SigCorrelCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.788377
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> $MojenaCorte
#> k=1.25 k=2
#> 0.6697798 0.8332634
#>
#> $Ordem
#> [1] 7 10 4 1 5 8 9 3 2 6
Adcionalmente, pode-se fazer o agrupamento Tocher com o auxilio da função Tocher
:
Tocher(DistMisto,corPlot = FALSE)
#> $Tocher
#> $Tocher[[1]]
#> $Tocher[[1]]$`cluster 1`
#> [1] Arruba Espanhola Coquinha Licuri
#>
#> $Tocher[[1]]$`cluster 2`
#> [1] Palmas TCarro2
#>
#> $Tocher[[1]]$`cluster 3`
#> [1] Cambraia Cariruvermelha TCarro1
#>
#> $Tocher[[1]]$`cluster 4`
#> [1] Princesa
#>
#>
#>
#> $DistanciaCofenetica
#> Arruba Cambraia Cariruvermelha Coquinha Espanhola Licuri
#> Cambraia 1.1907061
#> Cariruvermelha 1.1907061 0.7536074
#> Coquinha 0.6564798 1.1907061 1.1907061
#> Espanhola 0.6564798 1.1907061 1.1907061 0.6564798
#> Licuri 0.6564798 1.1907061 1.1907061 0.6564798 0.6564798
#> Palmas 1.1222314 1.4870133 1.4870133 1.1222314 1.1222314 1.1222314
#> Princesa 1.2832416 1.0143250 1.0143250 1.2832416 1.2832416 1.2832416
#> TCarro1 1.1907061 0.7536074 0.7536074 1.1907061 1.1907061 1.1907061
#> TCarro2 1.1222314 1.4870133 1.4870133 1.1222314 1.1222314 1.1222314
#> Palmas Princesa TCarro1
#> Cambraia
#> Cariruvermelha
#> Coquinha
#> Espanhola
#> Licuri
#> Palmas
#> Princesa 1.3336803
#> TCarro1 1.4870133 1.0143250
#> TCarro2 0.3522991 1.3336803 1.4870133
#>
#> $DistanciaIntraInterCluster
#> cluster 1 cluster 2 cluster 3 cluster 4
#> cluster 1 0.6564798 1.1222314 1.1907061 1.283242
#> cluster 2 1.1222314 0.3522991 1.4870133 1.333680
#> cluster 3 1.1907061 1.4870133 0.7536074 1.014325
#> cluster 4 1.2832416 1.3336803 1.0143250 0.000000
#>
#> $CorrelacaoCofenetica
#>
#> Mantel's permutation test
#>
#> Correlation: 0.8376112
#> p-value: 3e-04, based on 9999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
#>
#> attr(,"class")
#> [1] "Tocher"
CorrelacaoMantel(DistMaha,DistMisto)
#>
#> Mantel's permutation test
#>
#> Correlation: 0.5400622
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
CorrelacaoMantel(DistMaha,Distquali)
#>
#> Mantel's permutation test
#>
#> Correlation: 0.1649969
#> p-value: 0.168, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0
CorrelacaoMantel(Distquali,DistMisto)
#>
#> Mantel's permutation test
#>
#> Correlation: 0.9191985
#> p-value: 0.001, based on 999 matrix permutations
#> Alternative hypothesis: true correlation is greater than 0