Após a instalação do pacote é preciso ativa-lo. Para isso, deve-se utilizar a função library
ou require
library(MultivariateAnalysis)
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.Misto")
Dados.Misto#> M1 M2 M3 M4 M5 Altura Prod CorFlor Crescimento NumFr Pelos
#> 1 1 1 1 0 0 55 100 Branco ereto 50 Sim
#> 2 0 1 0 1 0 57 110 Branco ereto 55 Sim
#> 3 1 0 1 1 1 85 115 Branco prostado 54 Sim
#> 4 0 1 1 0 0 92 114 Amarelo prostado 56 Nao
#> 5 1 1 0 1 1 40 80 Vermelho semiprostado 70 Nao
Muitas são as opções para a obtenção de medidas de dissimilaridade para dados mistos. Vamos apresentar aqui algumas possibilidades para analise.
Uma possibilidade quando se tem dados misto é o uso do índice de Gower.
#colocando nome nos individuos
rownames(Dados.Misto)=paste0("T",1:nrow(Dados.Misto))
=Distancia(Dados.Misto,Metodo = 21)
Gower1round(Gower1$Distancia,3)
#> T1 T2 T3 T4
#> T2 0.325
#> T3 0.473 0.521
#> T4 0.492 0.531 0.569
#> T5 0.715 0.630 0.697 0.788
Um problema desta metodologia, é que neste caso, quando as variáveis binárias (0 ou 1) indicando a presença ou ausência de bandas a informação 0-0 (ausencia de bandas em ambos os indivíduos) indica que os dois índivíduos são iguais, o que não é verdade necessáriamente. Caso queira desconsiderar essas informações (0-0) no cômputo da dissimilaridade, pode-se usar o “índice de Gower 2”.
Essa medidada deve ser utilizada quando se tem variáveis binárias (0 ou 1) indicando a presença ou ausência de bandas. Neste caso, a informação 0-0 (ausencia de bandas em ambos os indivíduos) são desconsiderados no cômputo da dissimilaridade, raciocícnio similar ao indice de Jacard.
=Distancia(Dados.Misto,Metodo = 22)
Gower2round(Gower2$Distancia,3)
#> T1 T2 T3 T4
#> T2 0.357
#> T3 0.473 0.521
#> T4 0.601 0.649 0.569
#> T5 0.715 0.693 0.697 0.788
Neste caso, vamos usar o índice de jacard para os dados binários, índice de discordância para os dados multicategóricos e distância euclidiana padronizada para os dados quantitativos.
#Indice de jacard
=Distancia(Dados.Misto[,c(1:5)],Metodo = 12)
DistBin#Indice de discordancia
=Distancia(Dados.Misto[,c(8,9,11)],Metodo = 10)
DistCat#Distancia euclidiana padronizada
=Distancia(Dados.Misto[,c(6,7,10)],Metodo = 5)
DadosQanti
#Criando list com as matrizes
=list(DistBin,DistCat,DadosQanti)
dissimilaridades
#Calculando a media ponderada
=MediaDistancia(dissimilaridades,n=c(5,3,3))
Metodo3
Metodo3#> T1 T2 T3 T4
#> T2 0.4945408
#> T3 0.5603724 0.6408972
#> T4 0.6125539 0.7682414 0.6664392
#> T5 0.8316672 0.7685447 0.7721730 0.9090909
Os dados quantitativos podem ser transformados em qualitativos. Para isso, pode-se usar a funcao Quant2Quali
. Assim basta indicar o numero maximo de classes desejadas e a funcao demonstrará para cada individuo a classe que ele pertence. Essa classe é obtida considerando intervalos equidistantes entre o menor e maior valor de cada variavel, considerando-se o número de classes.
=Dados.Misto[,c(6,7,10)]
DadosQuanti
DadosQuanti#> Altura Prod NumFr
#> T1 55 100 50
#> T2 57 110 55
#> T3 85 115 54
#> T4 92 114 56
#> T5 40 80 70
=Quant2Quali(DadosQuanti,nclasses = 4)
Mat
Mat#> Altura Prod NumFr
#> T1 "C2" "C3" "C1"
#> T2 "C2" "C4" "C2"
#> T3 "C4" "C4" "C1"
#> T4 "C4" "C4" "C2"
#> T5 "C1" "C1" "C4"
#Substituido nos dados os valores quatitativos por qualitativos
=Dados.Misto
Dados.Misto2c(6,7,10)]=Mat
Dados.Misto2[,
Dados.Misto2#> M1 M2 M3 M4 M5 Altura Prod CorFlor Crescimento NumFr Pelos
#> T1 1 1 1 0 0 C2 C3 Branco ereto C1 Sim
#> T2 0 1 0 1 0 C2 C4 Branco ereto C2 Sim
#> T3 1 0 1 1 1 C4 C4 Branco prostado C1 Sim
#> T4 0 1 1 0 0 C4 C4 Amarelo prostado C2 Nao
#> T5 1 1 0 1 1 C1 C1 Vermelho semiprostado C4 Nao
Agora, podemos considerar todos os dados como qualitativos e considerar o índice de discordancia com medida de dissimilaridade.
=Distancia(Dados.Misto2,Metodo = 10)
Metodo4
Metodo4#> Medida de dissimilaridade: 10 = Frequencia de discordancia.
#>
#> Menor Distancia: 0.4545455
#> Maior Distancia: 0.8181818
#> Media das Distancias: 0.6545455
#> Amplitude das Distancias: 0.3636364
#> Desvio Padrao das Distancias: 0.1196874
#> Coeficiente de variacao das Distancias: 18.28557
#> Individuos mais proximos: T1 T2
#> Individuos mais distantes: T1 T5
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(Gower1,Metodo=3,Titulo="Gower1")
#> _________________________________________________________________________
#> Estimativa de correlacao cofenetica:
#> [1] 0.9486072
#> Significancia da correlacao cofenetica pelo teste Mantel
#> pvalor: 0.02
#> Hipotese alternativa: A correlacao e maior que 0
#>
#> Ponto de corte pelo metodo Mojena
#> k=1.25 k=2
#> 0.7110568 0.8286550
#> _________________________________________________________________________
Dendrograma(Gower2,Metodo=3,Titulo="Gower2")
#> _________________________________________________________________________
#> Estimativa de correlacao cofenetica:
#> [1] 0.9655169
#> Significancia da correlacao cofenetica pelo teste Mantel
#> pvalor: 0.026
#> Hipotese alternativa: A correlacao e maior que 0
#>
#> Ponto de corte pelo metodo Mojena
#> k=1.25 k=2
#> 0.7410889 0.8581060
#> _________________________________________________________________________
Dendrograma(Metodo3,Metodo=3,Titulo="Metodo3")
#> _________________________________________________________________________
#> Estimativa de correlacao cofenetica:
#> [1] 0.8987349
#> Significancia da correlacao cofenetica pelo teste Mantel
#> pvalor: 0.014
#> Hipotese alternativa: A correlacao e maior que 0
#>
#> Ponto de corte pelo metodo Mojena
#> k=1.25 k=2
#> 0.8213046 0.9243939
#> _________________________________________________________________________
Dendrograma(Metodo4,Metodo=4,Titulo="Metodo4")
#> _________________________________________________________________________
#> Estimativa de correlacao cofenetica:
#> [1] 0.9256188
#> Significancia da correlacao cofenetica pelo teste Mantel
#> pvalor: 0.033
#> Hipotese alternativa: A correlacao e maior que 0
#>
#> Ponto de corte pelo metodo Mojena
#> k=1.25 k=2
#> 0.8787674 1.0133006
#> _________________________________________________________________________
=cbind(Gower1=Gower1$Distancia,Gower2=Gower2$Distancia,Metodo3=Metodo3,Metodo4=Metodo4$Distancia)
mat=cor(mat)
Cor
Cor#> Gower1 Gower2 Metodo3 Metodo4
#> Gower1 1.0000000 0.9370078 0.9399261 0.9468470
#> Gower2 0.9370078 1.0000000 0.9600371 0.8780937
#> Metodo3 0.9399261 0.9600371 1.0000000 0.8509176
#> Metodo4 0.9468470 0.8780937 0.8509176 1.0000000
ComponentesPrincipais.Misto(Dados.Misto,plot = "individuos")
#> $Autovalores
#> Eigenvalue Proportion Cumulative
#> dim 1 5.853056 45.02351 45.02351
#> dim 2 2.986940 22.97646 67.99997
#> dim 3 2.837528 21.82714 89.82712
#> dim 4 1.322475 10.17288 100.00000
#>
#> $Escores
#> dim 1 dim 2 dim 3 dim 4
#> T1 1.0397489 -1.0987370 -1.5175138 -1.85414540
#> T2 0.3765185 -1.0657093 -1.8859019 1.75994227
#> T3 1.2444265 -1.5736106 2.8577009 0.19372558
#> T4 2.0574396 3.1198194 0.1928201 0.08184657
#> T5 -4.7181335 0.6182376 0.3528947 -0.18136902
#>
#> $CorrelacaoQuanti
#> dim 1 dim 2 dim 3 dim 4
#> Altura 0.7814370 0.33600164 0.5084262 0.1340218
#> Prod 0.9237992 -0.02618815 0.1790451 0.3374198
#> NumFr -0.9121228 0.33060980 0.1780682 0.1643801
#>
#> $ImportanciaQuali
#> dim 1 dim 2 dim 3 dim 4
#> M1 0.16869111 0.23543425 0.16836988 4.275047e-01
#> M2 0.06614482 0.20725644 0.71950417 7.094577e-03
#> M3 0.53674580 0.01117258 0.13803744 3.140442e-01
#> M4 0.27315006 0.22792411 0.10307171 3.958541e-01
#> M5 0.34359939 0.05092936 0.60545201 1.924228e-05
#> CorFlor 0.98593291 0.98918493 0.01839505 6.487103e-03
#> Crescimento 0.98119162 0.26247681 0.74494354 1.138802e-02
#> Pelos 0.20158391 0.77967582 0.01749202 1.248255e-03
#>
#> $Niveis
#> dim 1 dim 2 dim 3 dim 4
#> M1=0 0.5030275 0.59426541 -0.5025483 0.800785316
#> M1=1 -0.3353517 -0.39617694 0.3350322 -0.533856877
#> M2=0 0.5143727 -0.91050851 1.6964718 0.168458620
#> M2=1 -0.1285932 0.22762713 -0.4241180 -0.042114655
#> M3=0 -0.8972841 -0.12945607 -0.4550342 0.686342674
#> M3=1 0.5981894 0.08630405 0.3033562 -0.457561783
#> M4=0 0.6400977 0.58471033 -0.3932017 -0.770571984
#> M4=1 -0.4267318 -0.38980688 0.2621345 0.513714656
#> M5=0 0.4786087 0.18426314 -0.6353225 -0.003581646
#> M5=1 -0.7179130 -0.27639471 0.9529837 0.005372469
#> CorFlor=Amarelo 0.8504244 1.80516206 0.1144675 0.071171601
#> CorFlor=Branco 0.3665914 -0.72096039 -0.1079877 0.028847361
#> CorFlor=Vermelho -1.9501987 0.35771910 0.2094957 -0.157713682
#> Crescimento=ereto 0.2927008 -0.62618632 -1.0102175 -0.040958269
#> Crescimento=prostado 0.6823986 0.44732678 0.9054697 0.119815110
#> Crescimento=semiprostado -1.9501987 0.35771910 0.2094957 -0.157713682
#> Pelos=Nao -0.5498871 1.08144058 0.1619816 -0.043271041
#> Pelos=Sim 0.3665914 -0.72096039 -0.1079877 0.028847361
=ComponentesPrincipais.Misto(Dados.Misto,plot = "nivel") CPM
=ComponentesPrincipais.Misto(Dados.Misto,plot = "correlacao") CPM
=ComponentesPrincipais.Misto(Dados.Misto,plot = "pesos") CPM