Análisis de Grupos: Clasificación de Datos Binarios
Introduction
Introducción
El análisis de grupos (cluster analysis) es el problema estadístico de clasificar datos similares en uno o más grupos según la similitud. Por ejemplo, las aves se pueden clasificar en bandadas según su posición física y qué tan cerca están unas de otras. Existen diversas formas de clasificar los datos y decidir cuántos grupos deben formarse. Elegir una clasificación en lugar de otra puede ser un problema difícil. En este artículo, comparamos técnicas de análisis de grupos para datos que son binarios.
El análisis de grupos es una técnica común para el análisis exploratorio de datos y se utiliza en campos como el reconocimiento de patrones, el aprendizaje automático y la bioinformática. Los algoritmos fueron desarrollados con la intención de ser versátiles, adecuados para cualquier tipo de datos. En este artículo, mostraremos que no todos los algoritmos son adecuados para clasificar un conjunto de datos determinado y demostraremos cómo la creación de un conjunto de datos simulado puede ser útil para elegir un algoritmo adecuado.
Identificamos más de una docena de funciones de análisis de grupos en el lenguaje estadístico R, provenientes de distintos autores. Este artículo no pretende ser una descripción o comparación exhaustiva de esas funciones, sino que se centra en mostrar la construcción del conjunto de datos simulado y los resultados de tantas funciones como sea posible.
La simulación generó 3 grupos de aproximadamente 333 puntos cada uno; el conjunto de datos resultante tenía 1000 puntos definidos en un espacio de 20 dimensiones binarias. Luego, se ejecutaron las funciones R para el análisis de grupos. Algunos algoritmos, como es el caso de agnes
, nos obligaron a especificar el número de grupos; otros algoritmos, como ekmeans
, lograron determinar el número de grupos por sí mismos. También encontramos que la mayoría de los algoritmos como agnes
y ekmeans
clasificaron el conjunto de datos en grupos de tamaño adecuado, mientras que otros algoritmos como dbscan
y hc
produjeron una cantidad incorrecta de grupos o tamaños incorrectos. Finalmente, algunos de los algoritmos no fueron fáciles de procesar e interpretar, debido a que no existen herramientas estadísticas o gráficas apropiadas para el análisis. Ese es el caso de mona
, un algoritmo diseñado para trabajar solo con variables binarias. Tuvimos que usar algunas conjeturas para determinar el tamaño de los grupos, y aun así el análisis produjo los resultados equivocados.
En conclusión, encontramos que varios algoritmos no son adecuados para clasificar datos binarios. Los investigadores interesados en clasificar datos binarios necesitan hacer ensayos con conjuntos de datos simulados para elegir un algoritmo eficiente e ilustrativo que claramente muestre una clasificación correcta de dichos datos.
Opciones Para Análisis de Grupos
Ésta es una lista de funciones para hacer análisis de grupos en R. El paquete cluster
ofrece agnes
, clara
, diana
, fanny
, mona
, y pam
. El paquete fpc
ofrece dbscan
. El paquete mclust
ofrece mclust
, hc
, y hcvvv
. El paquete pvclust
ofrece pvclust
, y el paquete stats
ofrece hclust
y kmeans
.
El paquete factoextra
ofrece versiones mejoradas de las funciones mencionadas anteriormente, con gráficos adicionales y determinación automática del número de grupos.
Requisitos e instalación
Ésta comparación requiere solamente una instalación de R con los paquetes mencionados anteriormente y unas utilidades adicionales. Puedes usar el siguiente comando para instalarlos:
|
|
Comencemos el Análisis
Primero generamos una tabla de datos simulados y luego hacemos todos los análisis de grupos en ella, guardando los resultados para después.
|
|
Aquí están los resultados de nuestro código:
|
|
We first compare the cluster analysis methods in the following table:
|
|
|
|
Esta tabla muestra que los algoritmos dbscan
y mclust
no son apropiados para la clasificación de nuestros datos simulados, dado que identifican una gran cantidad de clústeres. Los algoritmos diana
, mona
, hc
y hcvvv
producen tamaños de grupo incorrectos.
Los otros algoritmos parecen producir grupos de tamaños apropiados. Tengamos en cuenta que en algunos casos el paquete factoextra
fue útil para determinar automáticamente el número de clústeres, pero en algunos casos tuvimos que proporcionar el número de clústeres.
En las próximas secciones, mostraremos la salida gráfica de los diferentes tipos de análisis de conglomerados.
Paquete cluster
agnes
- Anidado Aglomerativo (Agrupamiento Jerárquico)
|
|
|
|
clara
- Agrupamiento de Datos en k Grupos
|
|
|
|
|
|
diana
- Agrupamiento por Análisis Divisorio
|
|
|
|