Análise de agrupamentos (ou de clusters) com esquema de aglomeração hierárquico no Stata

Análise de agrupamentos (ou de clusters) com esquema de aglomeração hierárquico no Stata

A análise de agrupamentos (ou análise de clusters, como também é conhecida) é uma técnica estatística muito útil para identificar comportamentos semelhantes entre as observações, sejam elas indivíduos, empresas, municípios, países ou qualquer outra espécie.

Seu objetivo é a criação de clusters, em que são agrupados por semelhança levando-se em consideração as variáveis que estejam sendo analisadas.

Esse tipo de análise pode ser muito útil. Pense, por exemplo, que seu banco de dados possui centenas de empresas listadas em Bolsa, e que sua pesquisa deseja compreender o relacionamento entre um conjunto de variáveis. Usar análise de clusters pode ser muito útil no sentido de identificar grupos de empresas semelhantes e fazer análises compartimentadas por grupos, em vez de, num primeiro momento, tratar todos os dados em conjunto. Isso pode gerar ganhos substanciais no entendimento dos dados e melhorias incalculáveis nos resultados da modelagem.

A análise de clusters é uma técnica exploratória. Logo, não me dá condições de fazer inferências que extrapolem os dados. Meu objetivo, quando emprego a análise de clusters, é estritamente agrupar indivíduos semelhantes levando em conta as variáveis que estou analisando. Nada além disso.

Conforme veremos adiante, para executar uma análise de clusters, é necessário definir a medida de distância que será empregada no banco de dados, bem como o esquema de aglomeração. Veremos isso em detalhes a seguir.

Nosso objetivo maior em uma análise de clusters é chegar a uma informação semelhante a esta:

Fonte: Fávero e Belfiore (2017)

Veremos o passo a passo para se chegar nesse resultado. Antes, vamos tratar das medidas de dissimilaridade.

Para variáveis métricas, existe um rol de medidas de dissimilaridade, sendo as mais comuns a distância de Minkowski, a distância de Manhattan, a distância de Chebychev e a distância euclidiana, que empregaremos aqui. Todas elas são muito similares e atingem o mesmo objetivo, no entanto, com resultados distintos. A distância euclidiana é assim calculada:

Equação da distância euclidiana - medida de dissimilaridade mais comum para variáveis métricas

Já para variáveis binárias, as medidas de dissimilaridade são outras. Novamente existem várias, porém, a medida conhecida como "medida de emparelhamento simples" acaba sendo a mais usual. Seu cálculo é dado por:

Equação da medida de emparelhamento simples - medida de dissimilaridade mais comum para variáveis binárias

em que a, b, c, d são substituídos por 1 e 0, dado que nossa medida é binária.

Além da medida acima apresentada, para variáveis binárias temos como medidas de dissimilaridade, ainda, a medida de Jaccard, de Dice, Russell e Rao, dentre tantas outras. Vamos focar na mais usual.

Feita esta breve apresentação sobre as medidas de dissimilaridade, vamos falar um pouco dos esquemas de aglomeração.

Em análise de clusters, a escolha do esquema de aglomeração é tão importante quanto a definição da medida de distância.

Os esquemas de aglomeração podem ser classificados como hierárquicos e não hierárquicos. Enquanto os primeiros caracterizam-se por privilegiar uma estrutura hierárquica (passo a passo) para a formação dos agrupamentos, os esquemas não hierárquicos utilizam algoritmos para maximizar a homogeneidade dentro de cada agrupamento, sem que haja um processo hierárquico para tal.

Em relação aos esquemas hierárquicos aglomerativos, são mais comumente utilizados aqueles que apresentam método de encadeamento. Já quanto aos esquemas não hierárquicos, o mais popular é o k-means, em que são definidos centros de aglomeração a partir dos quais são alocadas as observações pela proximidade a eles.

Vamos a um exemplo com Stata para compreender como podemos realizar uma análise de clusters com esquema de aglomeração hierárquico.


Imagine que tenhamos os seguintes dados de 12 companhias brasileiras listadas na B3, selecionadas aleatoriamente: DY, P/L, ROE e Dívida Líquida, e que nosso intento é fazer uma análise de clusters dessas empresas a partir desses dados. Inicialmente vamos visualizar nosso banco de dados com o comando desc.

Visão geral do banco de dados com

Nossas variáveis não demandam padronização. Caso as suas variáveis demandem esse ajuste, você pode fazê-lo pelo procedimento Zscores, com o seguinte comando: egen NOVO_NOME_VAR = std(VAR).

Agora vamos obter a matriz de distâncias entre os pares de observações. Como já dissemos, vamos adotar a medida mais usual: distância euclidiana. O comando no Statinha é:

matrix dissimilarity D = roe dy pl divliq, L2

matrix list D

A saída é algo como essa matriz abaixo (parcialmente reproduzida!).

Matriz de distâncias euclidianas

Feito isso, vamos agrupar os dados e gerar um dendrograma, que vai nos sugerir em quantos agrupamentos nossos dados se dividem.


O agrupamento de dados propriamente dito


Dendrograma. Sugere 2 agrupamentos


De posse da informação do dendrograma, vamos alocar cada elemento da amostra no seu grupo.


Notem que o Stata nos informa em qual cluster cada cia ficou (1 ou 2)


Por fim, graficamente temos a seguinte distribuição das cias em clusters:


Bom. É isso. Legal, não!?

Como dito, essa análise de agrupamentos é bastante poderosa e pode melhorar substancialmente nosso trabalho com a modelagem dos dados, além de permitir conhecer nossos dados com muito mais detalhes.

Já imaginou as infinitas possibilidades que a análise de clusters pode nos oferecer? Análise de dados de municípios, de empresas, de clientes, de vendas por loja, enfim, as possibilidades são infinitas.

Espero que tenha sido útil para seus estudos com dados, e caso tenha ficado alguma dúvida não hesite em perguntar.

Abraços!

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos