Usé la estadística GAP para estimar k conglomerados en R. Sin embargo, «no estoy seguro de interpretarlo bien.
A partir del gráfico anterior, asumo que debería usar 3 grupos.
De la segunda gráfica debería elegir 6 grupos. ¿Es la interpretación correcta de la estadística GAP?
Agradecería cualquier explicación.
Comentarios
Respuesta
Para obtener un agrupamiento ideal, debe seleccionar $ k $ de manera que maximice la estadística de brecha. Aquí está el ejemplo dado por Tibshirani et al. (2001) en su artículo, la gráfica formada por datos artificiales con 2 conglomerados. Como puede ver, 2 es claramente el ideal $ k $, porque el estadístico de brecha se maximiza en $ k = 2 $:
Sin embargo , en muchos conjuntos de datos del mundo real, los clústeres no están tan bien definidos, y queremos poder equilibrar la maximización de la estadística de brecha con la parsimonia del modelo. Caso en cuestión: primera imagen de OP. Si estamos maximizando la estadística de brecha solo , entonces deberíamos elegir el modelo con 30 (¡o incluso más!) Conglomerados. Suponiendo que ese gráfico simplemente seguirá aumentando, por supuesto, los resultados son menos útiles. Tibshirani sugiere el método 1-standard-error :
Elija el tamaño del clúster $ \ hat {k} $ para que sea el $ k $ más pequeño, de modo que $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Lo que de manera informal es identificar el punto en el que la tasa de aumento de la estadística de brecha comienza a «disminuir».
Entonces, en la primera imagen de OP, si tomamos las barras de error rojas como un error estándar, entonces 3 es el $ k $ más pequeño que satisface este criterio:
Para la segunda imagen de OP, sin embargo, verá que la estadística de brecha disminuye inmediatamente para $ k > 1 $. Entonces, el primer $ k $ que satisface el criterio de error estándar 1 es $ 1 $. Esta es la forma de la gráfica de decir que los datos no deben agruparse.
Resulta que hay formas adicionales de elegir $ k $ óptimos. El método predeterminado de la función R clusGap
, por ejemplo, siempre busca el máximo local del gráfico y selecciona el $ k $ más pequeño dentro de un error estándar del máximo local. Con este método firstSEmax
, seleccionaríamos $ k = 30 $ y $ k = 19 $ para los gráficos 1 y 2 de OP «s respectivamente. Sin embargo, como dije, esto parece tener un problema de complejidad.
Comentarios
- Al estimar el valor de $ k $ a partir de la estadística de brecha , ¿cómo puedo calcular / estimar la probabilidad de que $ k $ sea el número real de grupos? ¿O mi pregunta no tiene sentido?
- Gracias por señalar el compromiso entre maximizar la estadística de brecha y obtener la parsimonia del modelo
clusGap
basado en globalmax, no ' no sabía cómo implementar maxSE.