Sie sind auf Seite 1von 33

UNIVERSIDADE FEDERAL DO CEARÁ

CENTRO DE CIÊNCIAS
DEPARTAMENTO DE ESTATÍSTICA E MATEMÁTICA APLICADA
ESTATÍSTICA

LANA KAROLINA DA S. REIS


ROBERTO TEIXEIRA DE OLIVEIRA

ANÁLISE DE AGRUPAMENTOS

FORTALEZA
2017
Sumário

Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 CRITÉRIOS DE PARECENÇA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Coeficientes de Parecença para Variáveis Quantitativas . . . . . . . . . . . . . . . 5
2.1.1 Distância Euclidiana (DE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Distância Euclidiana Média (DEM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Distância Euclidiana Padronizada (DEP) . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.4 Distância Euclidiana Generalizada ou Ponderada (DEG) . . . . . . . . . . . . . . . . . 5
2.1.5 Distância de Minkowsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.6 Coeficiente de Similaridade de Cattel . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Coeficientes de Parecença para Variáveis Qualitativas . . . . . . . . . . . . . . . 6
2.2.1 Distância Euclidiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Coeficiente de Concordância Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Coeficientes de Parecença para Variáveis Mistas . . . . . . . . . . . . . . . . . . . 6
2.3.1 Coeficiente Combinado de Semelhança . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 FORMANDO OS AGRUPAMENTOS . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Métodos Hierárquicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Método de Ligação Simples (Vizinho Mais Próximo) . . . . . . . . . . . . . . . . . . . 8
3.1.2 Método de Ligação Completa (Vizinho Mais Longe) . . . . . . . . . . . . . . . . . . . 8
3.1.3 Método das Médias das Distâncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.4 Método da centróide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.5 Método de Ward (ou Mı́nima Variância) . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Métodos de Partição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Método das K-médias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 FINALIZAÇÃO DA ANÁLISE DE AGRUPAMENTOS . . . . . . . . . . . . . . . 11


4.1 Comparação dos Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Avaliação dos Agrupamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Interpretação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5 EXERCÍCIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1 Manly - Capı́tulo 9, Exercı́cio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2 Representação gráfica inicial dos dados . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 Análise de Agrupamento - hierárquico . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3.1 Método do vizinho mais próximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3.2 Método do vizinho mais longe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.3.3 Método da centróide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3.4 Método das médias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3.5 Método de ward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4 Análise de Agrupamento - Partição . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.4.1 Médodo das k-médias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.5 Análise de agrupamento utilizando componentes principais . . . . . . . . . . . . 18
5.5.1 Função HCPC - Agrupando espécies . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.5.2 Função HCPC - Agrupando lotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.6 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.6.1 Coeficiente de correlação cofenética . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.6.2 Índices Externos - Rand e Jaccard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

7 ANEXOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1 Introdução

Análise de Agrupamentos (A.A.) é um conjunto de técnicas utilizadas na identificação de padrões


de comportamentos na subpopulação em estudo por meio da formação de grupos homogêneos interna-
mente em relação às caracterı́sticas (variáveis) medidas nos mesmos, seguindo uma série de critérios
especı́ficos, onde os grupos entre si sejam heterogêneos em relação às mesmas caracterı́sticas.
Fixar critérios de homogeneidade é a base mais importante da A.A, pois cada critério leva a grupos
homogêneos distintos, e o tipo de homogeneidade depende dos objetivos a serem alcançados com a
análise. O material básico para a aplicação das técnicas da A.A. é a matriz de dados.
Usualmente a intenção da A.A. é agrupar objetos semelhantes, segundo certas variáveis, entretanto
pode haver também o interesse de agrupar variáveis segundo os valores obtidos pelos objetos. A seguir
será apresentado o passo a passo da A.A.

Etapas da Análise de Agrupamentos


1. Escolher o critério de parecença: deve-se definir se as variáveis devem ou não ser padronizadas
e qual critério (ou medida) será utilizado na determinação dos grupos (medidas de similaridade
ou dissimilaridade).

2. Definir o número de grupos: pode ser definido a priori, por conveniência do tipo de análise ou a
posteriori.

3. Formar os grupos: aqui será definido qual algoritmo adotar para a identificação dos grupos
(métodos hierárquicos ou de partição).

4. Validar o agrupamento: deve-se garantir que as variáveis têm comportamento diferenciado em


cada grupo (supor que cada grupo é uma amostra aleatória da subpopulação em estudo e aplicar
técnicas inferenciais para compará-los).

5. Interpetar os grupos: fazer a descrição de cada grupo presente no estudo (aconselha-se o uso da
análise descritiva).

Os critérios de parecença são formados por medidas de similaridade (ou dissimilaridade), onde por
meio destas é possı́vel avaliar o quão próximos (ou distante) estão dois pontos do espaço, e portanto
identificar se os mesmos podem (ou não) participar do mesmo grupo.
Os algoritmos utilizados na formação dos agrupamentos, em sua grande maioria, podem ser clas-
sificados em duas grandes famı́lias: Hierárquicos e De Partição. A definição destes será visto mais
adiante.
2 Critérios de Parecença

Existem dois tipos de critérios de parecença: medidas de similaridade e medidas de dissimilaridade,


onde o primeiro corresponde a quanto maior o valor observado mais parecido serão os objetos, já o
segundo corresponde a quanto maior o valor observado menos parecido serão os objetos. Como exemplo
de medida de similaridade temos o Coeficiente de Correlação de Pearson, já as distâncias são medidas
de dissimilaridade.
Para cada tipo de variável; seja quantitativa, qualitativa nominal ou ordinal, e até mistas; existem
tipos especı́ficos de medidas de parecença, que serão definidos a seguir.

2.1 Coeficientes de Parecença para Variáveis Quantitativas


Seja Xj = (X1j , X2j , ..., Xpj )0 o vetor de observações a ser estudado, onde cada Xij representa o
e
valor assumido pela variável i do indivı́duo j, onde j = 1, ..., n. Serão apresentadas as medidas mais
usuais.

2.1.1 Distância Euclidiana (DE)


A DE entre dois elementos Xl e Xk , l 6= k é:
v
u p
p uX
d(Xl , Xk ) = (Xl − Xk )0 (Xl − Xk ) = t (Xil − Xik )2 (2.1)
i=1

2.1.2 Distância Euclidiana Média (DEM)


Derivada da DE, a DEM é dada por:
sP
p
i=1 (Xil − Xik )2
d(Xl , Xk ) = (2.2)
p

2.1.3 Distância Euclidiana Padronizada (DEP)


Xi (.) − X̄i
Usando a padronização Zi = , onde Si : desvio padrão da variável i, temos então a DEP,
Si
que é definida por:
v
u p
uX p
d(Zl , Zk ) = t (Zil − Zik )2 = (Zl − Zk )0 A−1 (Zl − Zk ), onde (2.3)
i=1

A = diag(S12 , S22 , ..., Sp2 ).

2.1.4 Distância Euclidiana Generalizada ou Ponderada (DEG)


De modo semelhante a DEP, tem-se:
p
d(Xl , Xk ) = (Xl − Xk )0 B(Xl − Xk ), onde (2.4)

B: matriz de ponderação, positiva definida, onde: se B = In ⇒ DEG = DE


2.1.5 Distância de Minkowsky
Generalização de todas as anteriores, que é dada por:
v
u p
uX
d(Xl , Xk ) = tk
wi |Xil − Xik |k (2.5)
i=1

2.1.6 Coeficiente de Similaridade de Cattel

c(Xl , Xk ) = df rac2(p − f rac23) − d2 2(p − f rac23) + d2 , onde (2.6)

d2 : DEP.

2.2 Coeficientes de Parecença para Variáveis Qualitativas


O tratamento básico para estes tipos de variáveis (Qualitativa Nominal ou Ordinal) consiste através
da aplicação de variáveis dummies, onde a variável resposta Yi consiste em atribuir 1 para a presença
da caracterı́stica e 0 para a ausência da caracterı́stica em relação a variável estudada Xi .

Tabela 1 – Comparação entre indivı́duos i e k


Cliente i Cliente k Total
0 1
1 a b a+b
0 c d c+d
Total a+c b+d m

Então, tem-se as medidas:

2.2.1 Distância Euclidiana

r
b+d
d(Xl , Xk ) = (2.7)
m

2.2.2 Coeficiente de Concordância Simples

a+d
s(Xl , Xk ) = (2.8)
m

2.3 Coeficientes de Parecença para Variáveis Mistas


É comum a presença dos diferentes tipos de variáveis em um banco de dados (variáveis quantitativas
e qualitativas), onde se existe o interesse de identificar parecença entre elas. Para isto, o indicado é
reorganizar a ordem em que estas variáveis aparecem, fazendo com que as nominais(no) apareçam
primeiro, em seguida as ordinais(or) e por fim as quantitativas(qu). Ou seja,

Y = (Y1 , Y2 , ..., Yp )0 = (Yno , Yor , Yqu )


e

A seguir algumas medidas usadas a fim de contornar este problema.


2.3.1 Coeficiente Combinado de Semelhança

c(Xl , Xk ) = w1 cno (Xl , Xk ) + w2 cor (Xl , Xk ) + w3 cqu (Xl , Xk ), onde (2.9)

wi : peso a ser atribuı́do a cada tipo de variável (normalmente é a quantidade de variáveis presente em
cada tipo de variável); cx : coeficiente de parecença de mesmo sentido (similaridade ou dissimilaridade).
3 Formando os Agrupamentos

A maioria dos algoritmos utilizados na formação dos agrupamentos pode ser classificada em duas
famı́lias: hierárquicos e de partição.

3.1 Métodos Hierárquicos


Os agrupamentos são formados a partir de uma matriz de parecença (matriz de distâncias). Num
primeiro passo, a matriz é utilizada para identificar o par de objetos que mais se parece. A partir deste
o par mais próximo é agrupado, uma nova matriz de parecença é formada e um novo par é agrupado.
Este passo é repetido até que se tenha apenas um único grupo. Pode-se definir o número de grupos a
posteriori, caso for de interesse do pesquisador.
Cada método possui uma regra de redefinição da matriz de parecença e de união dos pares de
objetos, isso é o que modifica um método do outro.

3.1.1 Método de Ligação Simples (Vizinho Mais Próximo)


A similaridade entre dois grupos é definida pelos dois elementos mais parecidos entre si. Ou seja,

d(G1 , G2 ) = min{d(i, j) : i ∈ G1 ; j ∈ G2 } (3.1)

3.1.2 Método de Ligação Completa (Vizinho Mais Longe)


A similaridade entre os dois grupos é definida como o inverso do método anterior, ou seja, pelos
elementos que são mais distantes entre si. Isto é

d(G1 , G2 ) = max{d(i, j) : i ∈ G1 ; j ∈ G2 } (3.2)

Entretanto a fusão é feita da mesma forma do método anterior, ou seja, com os grupos mais parecidos
(menor distância).

3.1.3 Método das Médias das Distâncias


Neste método, calcula-se a média das distâncias entre os elementos de G1 e G2 . Isto é,
X X d(i, j)
d(G1 , G2 ) = (3.3)
g1 g2
i∈G1 j∈G2

3.1.4 Método da centróide


Define-se a coordenada de cada grupo como sendo a média das coordenadas de seus objetos
(centróide). Depois de definida a centróide é obtida a distância entre os grupos através do cálculo das
distâncias euclidianas entre as centróides.
3.1.5 Método de Ward (ou Mı́nima Variância)
Nos procedimentos aneriores (com exceção do método da centróide) existe um decréscimo da
qualidade da partição, pois ao se passar do estágio k para o estágio k + 1 o nı́vel de fusão aumenta e
consequentemente o de similaridade diminui. Ou seja, a variação entre grupos decresce e a variação
dentro dos grupos aumenta. O método de Ward é capaz de contornar este problema, pois este método
é fundamentado nesta mudança de variação dos grupos, interna e externamente.
Para se fazer uso deste método, é necessário o uso de algumas estatı́sticas presentes na ANOVA,
como
ni
X
SSi = (Xij − X¯i. )0 (Xij − X¯i. ),
j=1
gk
X
SSR = SSi , onde
i=1

ni : número de elementos no grupo Ci quando se está no passo k do processo de agrupamento;


Xij : vetor de observações do j-ésimo elemento que pertence ao grupo Ci ;
X¯i. : centróide do grupo i;
SSi : soma de quadrados correspondente ao grupo Ci ;
gk : número de grupos existentes quando se está no passo k;
SSR: soma de quadrados total dentro dos grupos.

Assim, a distância entre os grupos Cl e Ci (soma de quadrados entre os grupos Cl e Ci ) é dada


por  
nl ni
d(Cl , Ci ) = (X¯l. − X¯i. )0 (X¯l. − X¯i. ) (3.4)
nl + ni
O Método de Ward combina os dois grupos que resultam no menor valor de SSR.

3.2 Métodos de Partição


Podemos realizar uma análise de agrupamentos avaliando todas as possı́veis partições e identifi-
cando a melhor delas segundo algum critério de homogeneidade. Os métodos de partição resumem
algoritmos que permitem a identificação dessas partições. Trataremos do algoritmo mais usado neste
método.

3.2.1 Método das K-médias


O passo a ser feito é a escolha do critério de homogeneidade dentro e entre os grupos. O critério
mais usado é a soma de quadrados residual. Para tanto, suponha obtida uma partição dos n objetos
em k grupos. Ou seja,
p(1) = oi (1) : 1 ≤ i ≤ n1

p(2) = oi (2) : 1 ≤ i ≤ n2

...

p(k) = oi (k) :≤ i ≤ nk
A centróide do grupo j é formada pela média das coordenadas dos seus membros (ō(j)). Logo, a soma
dos quadrados residual dentro do j-ésimo grupo é
X
SQRes(j) = d2 (oi (j); ō(j))[1 ≤ i ≤ nj ], onde (3.5)

d2 : quadrado da DE do objeto i do grupo j ao seu centro.


Para toda a partição a soma de quadrados residual é
X
SQres = SQRes(j)[1 ≤ j ≤ k] (3.6)

Quanto menor for o SQRes, mais homogêneo será o grupo, e melhor será a partição.
O primeiro passo é a escolha inicial das sementes do agrupamentos (centróides). Feito isso, as
distâncias de cada elemento em relação às sementes escolhidas são calculadas e cada elemento é
designado à centróide com menor distância, assim é feito os agrupamentos iniciais. Então o grau
de homogeneidade é calculado, como mostrado anteriormente, e assim tem-se os primeiros nı́veis de
homogeneidade intra e entre os grupos. Estes passo são, então refeitos, buscando sempre os melhores
agrupamentos (com menor valor de SQRes).
4 Finalização da Análise de Agrupamentos

4.1 Comparação dos Métodos


A principal vantagem do método de partição das K-médias para os métodos hierárquicos é o fato
de que os objetos são alocados da melhor forma possı́vel a cada passo do algoritmo. Entretando nos
métodos hierárquicos não é necessário um número de grupos a priori, assim é sugerido que a utilização
de um método hierárquico de agrupamento para a determinação de um número inicial de grupos, para
então fazer a utilização do método das K-médias.
Dentre os métodos hierárquicos de agrupamento, os mais recomendados, por produzir grupos mais
homogêneos internamente, são os métodos Vizinho mais Longe (Ligação Completa) e Ward.

4.2 Avaliação dos Agrupamentos


Nesta etapa qualquer tipo de análise estatı́stica é bem vinda, desde os testes univariados como
multivariados, como comparação de médias, homogeneidade de variâncias, e etc.
É necessário verificar se foram obtidos os melhores agrupamentos possı́veis. Para tanto, podemos
analisar isso através do coeficiente de correlação cofenética, que nada mais é do que a correlação entre
os elementos da matriz de distâncias original com a matriz de distâncias produzida por algum método
de agrupamento, no caso dos métodos hierárquicos de agrupamento.
Para os métodos de partição, uma solução é a construção de uma tabela de contingência que
represente a classificação cruzada dos objetos nas partições, assim é perceptı́vel avaliar a similaridade
entre as partições apresentadas.

4.3 Interpretação
Após todos os procedimentos feitos é necessário caractezar os grupos formados de acordo com as
diferenças e semelhanças encontradas nos diferentes grupos. Deve-se, então, proceder com análises
descritivas e gráfico que ressaltem as afirmações construı́das.
5 Exercı́cio

5.1 Manly - Capı́tulo 9, Exercı́cio 1


A Tabela 9.7 mostra as quantidades das 25 espécies de plantas mais abundantes em 17 lotes
de um prado de pastagem na Reserva Natural em Steneryd na Suécia medidas por Persson (1981) e
usadas para um exemplo de Digby e Kemptom (1987). Cada valor na tabela é a soma dos valores
cobertos em um intervalo de 0 a 5 por nove quadrantes de amostra, de modo que um valor de 45
correspondente à completa cobertura pelas espécies sendo consideradas. Note que as espécies estão
em ordem das mais abundantes (1) às menos abundantes (25), e os lotes estão na orgem dada por
Digby e Kempton (1987). a qual corresponde à variação em certos fatores ambientais como luz e
umidade. Execute uma análise de agrupamentos para estudar os relacionamentos entre (a) os 17 lotes
e (b) as 25 espécies.

Espécie Lote1 Lote2 Lote3 Lote4 Lote5 Lote6 Lote7 Lote8 Lote9
1 Festuca ovina 38 43 43 30 10 11 20 0 0
2 Anemone nemorosa 0 0 0 4 10 7 21 14 13
3 Stallaria holostea 0 0 0 0 0 6 8 21 39
4 Agrostis tenuis 10 12 19 15 16 9 0 9 28
5 Ranunculus ficaria 0 0 0 0 0 0 0 0 0
6 Mercurialis perennis 0 0 0 0 0 0 0 0 0
7 Poa pratenis 1 0 5 6 2 8 10 15 12
8 Rumex acetosa 0 7 0 10 9 9 3 9 8
9 Veronica chamaedrys 0 0 1 4 6 9 9 9 11
10 Dactylis glomerata 0 0 0 0 0 8 0 14 2
11 Fraxinus excelsior (juv.) 0 0 0 0 0 8 0 0 6
12 Saxifraga granulata 0 5 3 9 12 9 0 1 7
13 Deschampsia flexuosa 0 0 0 0 0 0 30 0 14
14 Luzula campestris 4 10 10 9 7 6 9 0 0
15 Plantago lanceolata 2 9 7 15 13 8 0 0 0
16 Festuca rubra 0 0 0 0 15 6 0 18 1
17 Hieracium pilosella 12 7 16 8 1 6 0 0 0
18 Geum urbanum 0 0 0 0 0 7 0 2 2
19 Lathyrus montanus 0 0 0 0 0 7 9 2 12
20 Campanula persicifolia 0 0 0 0 2 6 3 0 6
21 Viola riviniana 0 0 0 0 0 4 1 4 2
22 Hepatica nobilis 0 0 0 0 0 8 0 4 0
23 Achillea millefolium 1 9 16 9 5 2 0 0 0
24 Allium sp. 0 0 0 0 2 7 0 1 0
25 Trifolim repens 0 0 6 14 19 2 0 0 0
Tabela 2 – Dados do Exercı́cio 1
Espécie Lote10 Lote11 Lote12 Lote13 Lote14 Lote15 Lote16 Lote17
1 Festuca ovina 5 4 1 1 0 0 0 0
2 Anemone nemorosa 19 20 19 6 10 12 14 21
3 Stallaria holostea 31 7 12 0 16 11 6 9
4 Agrostis tenuis 8 0 4 0 0 0 0 0
5 Ranunculus ficaria 0 13 0 0 21 20 21 37
6 Mercurialis perennis 0 1 0 0 0 11 45 45
7 Poa pratenis 15 4 5 6 7 0 0 0
8 Rumex acetosa 9 2 5 5 1 7 0 0
9 Veronica chamaedrys 11 6 5 4 1 7 0 0
10 Dactylis glomerata 14 3 9 8 7 7 2 1
11 Fraxinus excelsior (juv.) 5 4 7 9 8 8 7 6
12 Saxifraga granulata 4 5 1 1 1 3 0 0
13 Deschampsia flexuosa 3 8 0 3 3 0 0 0
14 Luzula campestris 2 1 0 2 0 1 0 0
15 Plantago lanceolata 0 0 0 0 0 0 0 0
16 Festuca rubra 9 0 0 2 0 0 0 0
17 Hieracium pilosella 0 0 0 0 0 0 0 0
18 Geum urbanum 1 0 7 9 2 3 8 7
19 Lathyrus montanus 6 3 8 0 0 0 0 0
20 Campanula persicifolia 5 3 9 3 2 7 0 0
21 Viola riviniana 9 6 8 4 1 6 0 0
22 Hepatica nobilis 6 2 10 6 0 2 7 0
23 Achillea millefolium 0 0 0 0 0 0 0 0
24 Allium sp. 3 1 6 8 2 0 7 4
25 Trifolim repens 0 0 0 0 0 0 0 0
Tabela 3 – Dados do Exercı́cio 1

5.2 Representação gráfica inicial dos dados


Utilizou-se um gráfico de boxplot para cada grupo a ser estudado.
Nota-se nos gráficos de caixa que a presença de muitos dados discrepantes, feito esse devido a grande
massa de dados com valores próximo de zero, levando a linha da mediana se posicionar próximo ao
eito das abscissas.

5.3 Análise de Agrupamento - hierárquico


Primeiramente será feito agrupamentos apartir do método hierárquico, para isso, os dados foram
padronizados evitando extremas variações entre as variáveis em estudo, no R, utilizaremos a função
hclust presente no pacote cluster. Em todas as análises a distância Euclidiana (dissimilaridade) será
adotada como medida de parecença e para todos os testes tomou-se um padrão de 5 cluster (grupos)
para o agrupamento das espécies e 4 para os lotes.

5.3.1 Método do vizinho mais próximo


No método do vizinho mais próximo percebe-se os pequenos saltos nas distâncias, esse método
proporcionou muitos grupos com apenas um elemento como por exemplo no no agrupamento das
espécies.
Para a análise do agrupamento dos lotes, também apresenta grupos com apenas um elemento, e
os demais com um número bem considerado, deixando os grupos muito desproporcionais.
Vale ressaltar que irá aparecer grupos extremamente desproporcionais, pois como dito, utiliza-
mos um padrão na escolha no número de grupos, exigido pela função rect.hclust que divide visualmente
os grupos no dendograma. Para isto, se apresentado posteriormente uma validação avaliando o agru-
pamento em questão.
5.3.2 Método do vizinho mais longe
Diferente da análise anterior e sendo o segundo melhor método de agrupamento hierárquico,
temos grupos mais distribuı́dos nos dois agrupamentos em análise.
5.3.3 Método da centróide
O método da centróide na análise em estudo se destaca pelos pequenos saltos nas distãncias,
além de possuir muitos grupos com apenas um elemento apenas. Dificultando porteriormente outras
análises.

5.3.4 Método das médias


O método das médias, da mesma forma que o método do vizinho mais próximo e da centróide
se destaca pela grande diferença no número de elementos nos grupos, principamente no agrupamento
das espécies.
5.3.5 Método de ward
Considerado o melhor método hierárquico, segue a baixo os dendogramas dos agrupamentos
utilizando o método de ward.

5.4 Análise de Agrupamento - Partição


Para a análise de agrupamento pelo método de partição, utilizou-se apenas o método das k-
médias, este é encontrado através da função kmeans do pacote stats presente na base do R. Como o
médo de partição necessita de um número pré-estabelecido de grupos, foi utilizado o número 5 para o
agrupamento das espécies e 4 para os lotes.

5.4.1 Médodo das k-médias

Espécie Grupo Espécie Grupo


1 Festuca ovina 3 Luzula campestris 3
2 Anemone nemorosa 1 Plantago lanceolata 3
3 Stallaria holostea 1 Festuca rubra 2
4 Agrostis tenuis 3 Hieracium pilosella 3
5 Ranunculus ficaria 5 Geum urbanum 4
6 Mercurialis perennis 5 Lathyrus montanus 4
7 Poa pratenis 2 Campanula persicifolia 4
8 Rumex acetosa 2 Viola riviniana 4
9 Veronica chamaedrys 2 Hepatica nobilis 4
10 Dactylis glomerata 2 Achillea millefolium 3
11 Fraxinus excelsior (juv.) 4 Allium sp. 4
12 Saxifraga granulata 3 Trifolim repens 3
13 Deschampsia flexuosa 4
Tabela 4 – Objetos e seus grupos
Grupos Quantidade
1 2
2 5
3 8
4 8
5 2
Tabela 5 – Quantidade de espécies em cada grupo

As tabelas acima mostram aonde aonde cada objeto foi alocado e quantos elementos possui cada
grupo.

5.5 Análise de agrupamento utilizando componentes principais


Uma função interessante presente no R é a função HCPC (Hierarchical Clustering on Principle
Components), em português sendo Cluster hierárquico em componentes principais, essa função pre-
sente no pacote FactorMineR. A mesma começa recebendo um objeto atribuı́do da função PCA(Principal
Component Analysis), e posteriormente faz uma análise de cluster hierárquico.

5.5.1 Função HCPC - Agrupando espécies

Auto Valor Percentual de Variância Percentual acumulado de variância


comp 1 5,7040 33,5527 33,5527
comp 2 3,4392 20,2304 53,7831
comp 3 2,6724 15,7203 69,5034
comp 4 1,4214 8,3612 77,8646
comp 5 1,1255 6,6204 84,4850
comp 6 0,7761 4,5654 89,0505
comp 7 0,6165 3,6264 92,6768
comp 8 0,4297 2,5274 95,2043
comp 9 0,2767 1,6279 96,8322
comp 10 0,2018 1,1871 98,0193
comp 11 0,1192 0,7009 98,7202
comp 12 0,0848 0,4989 99,2191
comp 13 0,0535 0,3146 99,5337
comp 14 0,0334 0,1962 99,7299
comp 15 0,0283 0,1665 99,8965
comp 16 0,0139 0,0818 99,9782
comp 17 0,0037 0,0218 100,0000

Tabela 6 – Componentes principais - Espécies

Encontrando os componentes principais para a análise em estudo, decidimos utilizar apenas os


sete primeiros componentes principais, estes somando, possui um percentual de variância de 92%.
Agrupando as espécies com base nos componentes principais escolhidos, a função nos remete
esses gráficos:
Além disso com as funções fvizdend e fvizdend, presentes no pacote factorextra, podemos gerar os
gráficos de densidade e de radar, respectivamente.
Tabela 7 – Componentes principais - Lotes

Auto Valor Percentual de Variância Percentual acumulado de variância


comp 1 8,7920 35,1679 35,1679
comp 2 5,5853 22,3412 57,5091
comp 3 2,9549 11,8194 69,3286
comp 4 1,9288 7,7152 77,0437
comp 5 1,5805 6,3221 83,3658
comp 6 1,1305 4,5220 87,8878
comp 7 0,9931 3,9722 91,8600
comp 8 0,5446 2,1784 94,0384
comp 9 0,4015 1,6060 95,6443
comp 10 0,3487 1,3948 97,0392
comp 11 0,1958 0,7830 97,8222
comp 12 0,1761 0,7044 98,5266
comp 13 0,1268 0,5074 99,0340
comp 14 0,1158 0,4633 99,4972
comp 15 0,0744 0,2977 99,7949
comp 16 0,0513 0,2051 100,0000

5.5.2 Função HCPC - Agrupando lotes


Encontrando os componentes principais para a análise em estudo, decidimos utilizar apenas os
oito primeiros componentes principais, estes somando, possui um percentual de variância de 94%.
Agrupando as lotes com base nos componentes principais escolhidos, a função nos remete esses
gráficos:
Além disso com as funções fvizdend e fvizdend, presentes no pacote factorextra, podemos gerar os
gráficos de densidade e de radar, respectivamente.
5.6 Validação
5.6.1 Coeficiente de correlação cofenética
No R, temos a função cophenetic, onde esta calcula as distâncias cofenéticas para um agrupa-
mento hierárquico, logo, para sabermos se obtivemos um bom agrupamento, faz-se a correlação da
matriz de distãncia dos dados iniciais já padronizados com a matriz de distâncias cofenéticas. Em
nossa análise, escolhemos o método de ward, considerado o melhor método hierárquico, obtido pela
função hclust, onde tivemos as seguintes correlações:

Agrupamento Coeficiente
Espécies 0,8004
Lotes 0,7661
Tabela 8 – Coeficientes de correlação

Os coeficientes encontrados foram altos, indicando um bom agrupamento.


5.6.2 Índices Externos - Rand e Jaccard
No R encontra-se os ı́ndices Externos de Rand e Jaccard na função textitclustersimilarity, nesta
função, passamos o vetor de cluster, do agrupamento previamente ”conhecido”e o vetor de cluster
do agrupamento a ser estudado. Em nossas análises o agrupamento previamente conhecido foi o
cluster gerado da função kmeans pois está quando conhecida o número correto de grupo se torna o
melhor método de agrupamento, o grupo estudado novamente foi o cluster gerando a partir do método
hirárquico - ward. Como resultado obtivemos:

Especies Lotes Grupos


jaccard 0.82 0.61 5.00
rand 0.94 0.88 4.00

Tabela 9 – Índice externo

Os ı́ndices encontrados foram altos (todos acima de 60%), indicando um bom agrupamento.
6 Referências

1. BARROSO, Lúcia P.; ARTES, Rinaldo. Análise Multivariada. São Paulo. Insper/SQ, 2003.

2. BUSSAB, Wilton de O.; MIAZAKI, Édina S.; ANDRADE, Dalton F de. Introdução à Análise
de Agrupamentos. 9o Simpósio Brasileiro de Probabilidade e Estatı́stica. IME-SP, 1990.

3. KASSAMBARA, Alboukadel. Multivariate Analysis II: Practical Guide To Principal Compo-


nent Methods in R. 2017.

4. MINGOTI, Sueli A. Análise de Dados Através de Métodos de Estatı́stica Multivariada: Uma


abordagem aplicada. Belo Horizonte: Editora UFMG, 2013.
7 Anexos

# Dados
setwd("O:/seminario")
dad=read.csv2("bd seminario.csv")
attach(dad)
dad

#gerando tabela no latex


install.packages("xtable")
require(xtable)
#tabela 1
a=xtable(dad[,1:10],digits=0,caption="Dados do Exercı́cio 1")
print.table(a,rotate.rownames=T,)
#tabela 2
xtable(cbind(dad[,1],dad[,11:18]),digits=0,caption="Dados do Exercı́cio 1")

#nomes
nomes.especies=as.character(dad[,1])
Lot=0
for(i in 1:17){
Lot[i]=paste("Lote",i)
}
nomes.lotes=Lot

#### transformando dados para agrupar lotes


dad.novo1=as.matrix(dad[,-1])
dad.novo2=t(dad.novo1)
colnames(dad.novo2)=nomes.especies

#### boxplot no GGplot lote


b=dad.novo2[,1]
for(i in 2:25){
a=c(b,dad.novo2[,i])
b=a
}
# vetor
vetor=c(1:17)
vetor.rep=rep(vetor,25)
vetor.rep.f=factor(vetor.rep)
require(ggplot2)
require(ggthemes)
novo.lote=data.frame(vetor.rep.f,b)
p=ggplot(novo.lote,aes(x=vetor.rep.f,y=b))
p+geom_boxplot()+xlab("Lote")+theme_bw()+ggtitle("Boxplot dos lotes")

### boxplot no GGplot Espécies


b=dad[,2]
for(i in 3:18){
a=c(b,dad[,i])
b=a
}
length(b)
# Vetor
vetor=c(1:25)
vetor.rep=rep(vetor,17)
vetor.rep.f=factor(vetor.rep)
novo.lote=data.frame(vetor.rep.f,b)
p=ggplot(novo.lote,aes(x=vetor.rep.f,y=b))
p+geom_boxplot()+xlab("Espécie")+theme_bw()+ggtitle("Boxplot das espécies")

# Feito a análise de agrupamentos


# Iremos pegar a análise do tipo hierárquica o método de ward

matriz_dist1=dist(mat1)
matriz_dist2=dist(mat2)

matriz_dist=as.matrix(matriz_dist)
colnames(matriz_dist)=gl(25,1)
a=cbind(matriz_dist[,1:13],nomes.especies[1:13],c(matriz_di
st[14:25],0),c(nomes.especies[14:25],0))
knitr::kable(a, format = "latex",
format.args = list(decimal.mark = ’,’, big.mark = "’"),
digits=2,caption="Matriz de dist^
ancias - Espécies")

# Análise de agrupamento

# Padronizaç~
ao
## padronizando
## agrupando Espécies
dad.novo=dad[,-1]
mat1=matrix(,ncol=17,nrow=25)
for(i in 1:17){
mat1[,i]=(dad.novo[,i]-mean(dad.novo[,i]))/sd(dad.novo[,i])
}
rownames(mat1)=nomes.especies
mat1

## padronizando
## agrupando lotes
dad.novo=dad.novo2
mat2=matrix(,ncol=25,nrow=17)
for(i in 1:25){
mat2[,i]=(dad.novo[,i]-
mean(dad.novo[,i]))/sd(dad.novo[,i])
}
rownames(mat2)=nomes.lotes
mat2

require(cluster)
# métodos Hierárquicos
# h clust
par(mfrow=c(1,2))
# vizinho mais longe
# Agrupando Espécies
hc <- hclust(dist(mat1), method = "complete")
plot(hc,hang=-1,xlab="Espécies",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=5)
# Outra forma é utilizando a dist^
ancia
rect.hclust(hc,h=10)

# Agrupando Lotes
hc <- hclust(dist(mat2), method = "complete")
plot(hc,hang=-1,xlab="Lote",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=4,border=11)

par(mfrow=c(1,2))
# vizinho mais próximo
# Agrupando Espécies
hc <- hclust(dist(mat1), method = "single")
plot(hc,hang=-1,xlab="Espécies",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=5)
# Outra forma é utilizando a dist^
ancia
#rect.hclust(hc,h=10)

# Agrupando Lotes
hc <- hclust(dist(mat2), method = "single")
plot(hc,hang=-1,xlab="Lote",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=4,border=11)

par(mfrow=c(1,2))
# centróid
# Agrupando Espécies
hc <- hclust(dist(mat1), method = "centroid")
plot(hc,hang=-1,xlab="Espécies",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 5 grupos
rect.hclust(hc,k=5)
# Outra forma é utilizando a dist^
ancia
#rect.hclust(hc,h=10)

# Agrupando Lotes
hc <- hclust(dist(mat2), method = "centroid")
plot(hc,hang=-1,xlab="Lote",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=4,border=11)

par(mfrow=c(1,2))
# Média
# Agrupando Espécies
hc <- hclust(dist(mat1), method = "average")
plot(hc,hang=-1,xlab="Espécies",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=5)
# Outra forma é utilizando a dist^
ancia
#rect.hclust(hc,h=10)

# Agrupando Lotes
hc <- hclust(dist(mat2), method = "average")
plot(hc,hang=-1,xlab="Lote",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=4,border=11)

par(mfrow=c(1,2))
# Ward
# Agrupando Espécies
clust.word.esp=hc <- hclust(dist(mat1), method = "ward.D2");clust.word.esp
plot(clust.word.esp,hang=-1,xlab="Espécies",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(clust.word.esp,k=5)
# Outra forma é utilizando a dist^
ancia
#rect.hclust(hc,h=10)

# Agrupando Lotes
clust.word.lotes <- hclust(dist(mat2), method = "ward.D2");clust.word.lotes
plot(clust.word.lotes,hang=-1,xlab="Lote",ylab = "Dist^
ancia",main = "Dendograma")
#Escolhendo 4 grupos
rect.hclust(hc,k=5,border=11)

# sobre a fun~
ao hclust
#ordem dos objetos
hc$order
#ordem dos objetos
hc$merge
# dist^
ancia
hc$dist.method
# método
hc$method

###________________________________

# métodos de Partiç~
ao
# kmeans
require(stats)
# Agrupando espécies
cl=kmeans(mat1,5)
grupos=cl$cluster

a=as.numeric(grupos)

xtable(bb,caption="Objetos e seus grupos")

xtable(table(grupos),caption="Quantidade de espécies em cada grupo")


bb=cbind(nomes.especies[1:13],a[1:13],c(nomes.especies[14:25],0),c(a[14:25],0))
require(xtable)

xtable(cbind(grupos),caption = "Espécies agrupadas pelo método de k-médias")

#_________________________________
# Análise agrupamento utilizando componentes principais
# Funç~
ao HCPC

require(FactoMineR)
require(factoextra)

# funç~
oes para componentes principais
# prcomp pacote da base
cp.base=prcomp(dad[,2:17]);res.pca1

# Pacote FactoMineR

# Agrupando as espécies

# Componentes principais
# ncp=definindo que utilizaremos os 5 primeiros componentes principais
cp=PCA(mat1,ncp=6,graph=TRUE);cp
# Acumulada
cp$eig
xtable(cp$eig)
knitr::kable(cp$eig, format = "latex",
format.args = list(decimal.mark = ’,’, big.mark = "’"),
digits=4,caption="Componentes principais - Espécies")
# Funç~
ao HCPC
# cansol=T, consolidade pelo kmeans
# nb.clust se 0 é cortada pelo usuário
# nb.clust se -1 é cortada pelo algorı́timo automaticamente
# kk = número de cluster usados em um pré-processamento
Kmeans antes do agrupamento hierarquico
# Nota: Quando o kk é diferente de Inf(Default),
# n~
ao é possı́vel usar a consolidaç~
ao uma vez que o método kmeans
# já foi utilizado antes do agrupamento hierárquico.
cp.hcpc=HCPC(cp,method ="ward",graph=TRUE,consol=T,nb.clust=0)
cp.hcpc$data.clust

require(ggthemes)
# Dendograma
fviz_dend(cp.hcpc,cex=0.7,palette="jco",rect=T,rect_fill=T,
rect_border="jco",labels_track_height=0.8)
# Gráfico de mapa
fviz_cluster(res.hcpc,show.clust.cent=TRUE,palette="jco",gg
theme = theme_minimal(),main="Gráfico de mapa")

# Funç~
ao HCPC
# Agrupando as lotes
# Componentes principais
# ncp=definindo que utilizaremos os 5 primeiros componentes principais
cp=PCA(mat2,ncp=7,graph=TRUE);cp

# Acumulada
cp$eig
knitr::kable(cp$eig, format = "latex",
format.args = list(decimal.mark = ’,’, big.mark = "’"),
digits=4,caption="Componentes principais - Lotes")

# Funç~
ao HCPC
# cansol=T, consolidade pelo kmeans
# nb.clust se 0 é cortada pelo usuário
# nb.clust se -1 é cortada pelo algorı́timo automaticamente
# kk = número de cluster usados em um pré-processamento
Kmeans antes do agrupamento hierarquico
# Nota: Quando o kk é diferente de Inf(Default), n~
ao é
possı́vel usar a consolidaç~
ao uma vez que o método kmeans já
foi utilizado antes do agrupamento hierárquico
cp.hcpc=HCPC(cp,method
="ward",graph=TRUE,consol=T,nb.clust=0)
cp.hcpc$data.clust

require(ggthemes)
# Dendograma
fviz_dend(cp.hcpc,k=,cex=0.7,palette="jco",rect=T,rect_fill
=T,rect_border="jco",labels_track_height=0.8,,main="Dendogr
ama")
fviz_cluster(cp.hcpc,show.clust.cent=TRUE,palette="jco",ggt
heme = theme_minimal(),main="Gráfico de mapa")

# Validaç~
ao
# Espécies
#coeficiente de validaç~
ao cofenética (hierérquicos)

d1 <- dist(mat1)
d2 <- cophenetic(clust.word.esp)
cor1=cor(d1, d2)
d1 <- dist(mat2)
d2 <- cophenetic(clust.word.lotes)
cor2=cor(d1, d2)

# Logo, temos um alto coeficiente de correlaç~


ao cofenético
# ı́ndices externos (entre grupos)
# Avaliando os clusters criados pelo método ward (hclust)

xtable(t(cbind(cor1,cor2)),caption="Coeficientes de correlaç~
ao")

install.packages("clusteval")
require(clusteval)

# Espécies
## compara um uma análise de cluster "correta" à uma a ser testadada

mat1.esp_kmeans <- kmeans(mat1, centers = 5)$cluster


mat1.esp_hclust <- cutree(clust.word.esp, k = 5)
a=cluster_similarity(mat1.esp_kmeans, mat1.esp_hclust);a
aa=cluster_similarity(mat1.esp_kmeans, mat1.esp_hclust,similarity = "rand");aa

# Lotes
## compara um uma análise de cluster "correta" à uma a ser testudada
mat2.lote_kmeans <- kmeans(mat2, centers = 4)$cluster
mat2.lote_hclust <- cutree(clust.word.lotes, k = 4)
b=cluster_similarity(mat2.lote_kmeans, mat2.lote_hclust);b
bb=cluster_similarity(mat2.lote_kmeans, mat2.lote_hclust,similarity = "rand");bb

c=cbind(rbind(a,aa),rbind(b,bb),c(5,4));c
colnames(c)=c("Especies","Lotes","Grupos")
rownames(c)=c("jaccard", "rand")

xtable(c,caption="Índice externo")

# Interpretaç~
ao
bd.esp=cbind(mat1,mat1.esp_hclust)
bd.lote=cbind(mat2,mat2.lote_hclust)
variáveis
attach(mat1)
tapply(Lote1, mat2.lote_hclust, summary)

require(stats)
groups <- as.factor(rbinom(32, n = 5, prob = 0.4))
tapply(groups, groups, length) #- is almost the same as
table(groups)

Das könnte Ihnen auch gefallen