The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Exemplo: Experimento com dados mistos sem repetições

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.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

Obtenção de medidas de dissimilaridade para dados mistos

Muitas são as opções para a obtenção de medidas de dissimilaridade para dados mistos. Vamos apresentar aqui algumas possibilidades para analise.

Método 1: Índice de Gower

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))
Gower1=Distancia(Dados.Misto,Metodo = 21)
Gower1
#> Medida de dissimilaridade:  21 =Dissimilaridade de Gower
#>      
#> Menor Distancia: 0.3249251 
#> Maior Distancia: 0.7883117 
#> Media das Distancias: 0.5741259 
#> Amplitude das Distancias: 0.4633866 
#> Desvio Padrao das Distancias: 0.1364548 
#> Coeficiente de variacao das Distancias: 23.7674 
#> Individuos mais proximos: T1 T2 
#> Individuos mais distantes: T4 T5

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”.

Método 2: Í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.

Gower2=Distancia(Dados.Misto,Metodo = 22)
round(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

Método 3: Calcular a medida de dissimilaridade mais apropriada para cada variável e fazer a média ponderada posteriormente.

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
DistBin=Distancia(Dados.Misto[,c(1:5)],Metodo = 12)
#Indice de discordancia
DistCat=Distancia(Dados.Misto[,c(8,9,11)],Metodo = 10)
#Distancia euclidiana padronizada
DadosQanti=Distancia(Dados.Misto[,c(6,7,10)],Metodo = 5)

#Criando list com as matrizes
dissimilaridades=list(DistBin,DistCat,DadosQanti)

#Calculando a media ponderada
Metodo3=MediaDistancia(dissimilaridades,n=c(5,3,3))
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

Metodo 4: Transformar os dados quantitativos em qualitativos e considerar tudo como multicategórico

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.

DadosQuanti=Dados.Misto[,c(6,7,10)]
DadosQuanti
#>    Altura Prod NumFr
#> T1     55  100    50
#> T2     57  110    55
#> T3     85  115    54
#> T4     92  114    56
#> T5     40   80    70
Mat=Quant2Quali(DadosQuanti,nclasses = 4)
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.Misto2=Dados.Misto
Dados.Misto2[,c(6,7,10)]=Mat
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.

Metodo4=Distancia(Dados.Misto2,Metodo = 10)
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

Após obter a matriz de dissimilaridade, podemos fazer o Dendrograma.

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.013 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.7110568 
#> 
#> Agrupamentos 
#>    Cluster
#> T1       1
#> T2       1
#> T3       1
#> T4       1
#> T5       1
#> _________________________________________________________________________
Dendrograma(Gower2,Metodo=3,Titulo="Gower2")

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.9655169
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.02 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.7410889 
#> 
#> Agrupamentos 
#>    Cluster
#> T1       1
#> T2       1
#> T3       1
#> T4       1
#> T5       1
#> _________________________________________________________________________
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 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.8213046 
#> 
#> Agrupamentos 
#>    Cluster
#> T1       1
#> T2       1
#> T3       1
#> T4       1
#> T5       1
#> _________________________________________________________________________
Dendrograma(Metodo4,Metodo=4,Titulo="Metodo4")

#> _________________________________________________________________________ 
#> Estimativa de correlacao cofenetica: 
#> [1] 0.9256188
#> Significancia da correlacao cofenetica pelo teste Mantel 
#> pvalor: 0.035 
#> Hipotese alternativa: A correlacao e maior que 0 
#> 
#> Criterio de Corte 
#>    k=1.25 
#> 0.8787674 
#> 
#> Agrupamentos 
#>    Cluster
#> T1       1
#> T2       1
#> T3       1
#> T4       1
#> T5       2
#> _________________________________________________________________________

Para comparar as metodologias pode-se estimar a correlação dos metodos dois a dois


mat=cbind(Gower1=Gower1$Distancia,Gower2=Gower2$Distancia,Metodo3=Metodo3,Metodo4=Metodo4$Distancia)

Cor=cor(mat)
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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.