Análise de agrupamentos (ou de clusters) com esquema de aglomeração não hierárquico (k-means) no Stata
Continuando nossa discussão sobre análise de clusters, quando discutimos esquemas de aglomeração hierárquico, tivemos que definir a quantidade de clusters que poderiam ser formados (no nosso exemplo anterior eram 2 clusters).
Dentre os esquemas de aglomeração não hierárquicos, o procedimento k-means é o mais utilizado. Ao usar o k-means, devemos informar (arbitrar!) expressamente o número de clusters que desejamos agrupar os dados.
Por essa razão, a análise de clusters pelo esquema hierárquico (que vimos no artigo anterior) muitas vezes serve de insumo para o não hierárquico (k-means) no tocante à identificação do número de clusters.
A clusterização (outro sinônimo para análise de agrupamento!) por k-means classifica os objetos dentro de múltiplos grupos, de forma que a variação intra-cluster seja minimizada pela soma dos quadrados das distâncias Euclidianas entre os itens e seus centroides.
Aqui, x_i é o ponto que pertence ao cluster C_k e μ_k é a média do valor atribuído ao cluster C_k. Cada observação (x_i) é designada a um cluster, de forma que a soma dos quadrados da distância da observação em relação ao seu cluster central (μ_k) é mínima. Ainda, para definir a variação intra-cluster é utilizada a equação abaixo, que deve ser tão baixa quanto o possível:
Podemos resumir toda a análise de clusters pelo método k-means pelas seguintes etapas:
(a) determinação do número de clusters (aqui o uso da aglomeração hierárquica pode ajudar!);
(b) selecionar aleatoriamente objetos para determinar os valores centrais;
(c) assinar as observações pela distância Euclidiana em relação aos seus centroides;
(d) efetuar atualizações calculando a nova média dos valores dentro de seu cluster definido;
(e) minimizar a soma dos quadrados intra-cluster.
Feito isso, é importante que o analista teste se a variabilidade entre os clusters é significativamente superior à variabilidade interna a cada cluster. O teste F da one-way ANOVA (que já vimos por aqui também!) permite que seja elaborada essa análise, sendo que suas hipóteses são:
H_0: a variável em análise apresenta a mesma média em todos os grupos formados.
H_1: a variável em análise apresenta média diferente em pelo menos um dos grupos em relação aos demais.
Segundo Fávero e Belfiore (2017), a estatística F pode ser assim calculada:
em que:
Do ponto de vista algébrico, estas são as principais considerações que devemos conhecer para implementar uma análise de clusters por k-means. Dito isso, vamos a um exemplo.
Recomendados pelo LinkedIn
Imaginemos que temos dados de vendas, número de clientes, idade e ROE de uma amostra aleatória de 22 empresas e nosso objetivo é agrupá-las em clusters por similaridade.
Vamos admitir que tenhamos feito uma análise hierárquica prévia e identificado que nossos dados se distribuem em 3 clusters (se não sabe como fazer a análise de agrupamento hierárquica veja o artigo anterior!).
Antes de qualquer coisa, vamos padronizar nossas variáveis.
Feito isto, vamos agrupar os dados com o algoritmo k-means.
No comando que inserimos acima, o termo k(3) é a indicação ao Statinha que desejamos agrupar os dados em 3 grupos. Além disso, definimos que uma nova variável com a alocação das observações nos três grupos será gerada no banco de dados com o nome kmeans4. A medida de distância utilizada será a distância euclidiana (termo L2). Além disso, o termo firstk especifica que as coordenadas das primeiras k observações da amostra serão utilizadas como centroides dos k clusters (no nosso caso, k = 3).
Na sequência, podemos digitar o comando cluster list kmeans4 para que sejam apresentados, de forma resumida, os critérios adotados para a elaboração do procedimento k-means.
Agora vamos ver a quantidade de observações que ficaram em cada cluster (comando table kmeans4), bem como, nominalmente, em qual cluster ficou cada elemento da nossa amostra (comando list company kmeans4). No quadro abaixo temos tudo isso.
Por fim, vamos gerar um gráfico para ter uma ideia de como ficou a formação dos clusters usando o seguinte comando no Stata:
twoway (scatter years sales if kmeans==1) (scatter years sales if kmeans==2) (scatter years sales if kmeans==3)
O gráfico é apresentado a seguir:
Aqui conseguimos ver que nossos dados se distribuem bem (não perfeitamente, mas muito bem) em 3 clusters.
Da mesma forma que concluímos nossa análise de agrupamentos com esquema hierárquico, chegamos à conclusão, empregando o k-means, que podemos fazer uma excelente inspeção nos dados empregando análise de agrupamentos.
Muitas vezes partimos direto para a análise de regressão sem esse conhecimento preliminar dos dados, o que acaba com que façamos inferências errôneas sobre os dados, ou tenhamos grande retrabalho que poderia ser evitado com esta análise preliminar.
A análise de agrupamentos é uma técnica extremamente útil, e com apoio da ferramenta de análise de dados adequada (neste caso, o Stata!) podemos fazer análises excelentes e melhorar a qualidade do nosso trabalho.
O Stata oferece, ainda, muitos outros recursos para análise de agrupamentos. Aqui apresentei o que considero o essencial para um contato adequado com a técnica.
Espero que te ajude nos estudos e na análise dos seus dados. Até a próxima!