10  Análisis clúster

Published

June 29, 2026

10.1 Introducción

El capítulo anterior concluyó el análisis de componentes principales transformando un conjunto complejo de variables en un número reducido de dimensiones subyacentes. Al visualizar a los 300 consumidores en un mapa perceptual, se observó que parecían agruparse en “nubes” o segmentos. Esa observación fue, sin embargo, puramente visual e intuitiva. Para pasar de la intuición a la evidencia hace falta una técnica diseñada específicamente para identificar esos grupos de manera objetiva y sistemática: el análisis clúster.

El análisis clúster, también llamado análisis de conglomerados o de segmentación, es una técnica de interdependencia cuyo objetivo es clasificar un conjunto de objetos (consumidores, productos, empresas) en grupos, de modo que los objetos dentro de un mismo clúster sean muy similares entre sí y muy diferentes de los de otros grupos (Hair et al. 2019). Es el arte de encontrar la estructura de “grupos naturales” en los datos.

La característica que define al análisis clúster es que es una técnica de clasificación no supervisada. A diferencia del análisis discriminante, donde los grupos ya están definidos a priori y se buscan reglas para clasificarlos, en el análisis clúster se parte sin conocer ni el número de grupos ni qué individuos pertenecen a cada uno. El algoritmo debe “descubrir” la estructura por sí mismo, basándose únicamente en las características de los datos.

Existen dos grandes familias de métodos de clustering: jerárquicos y no jerárquicos. Esta primera sección se centra en el enfoque jerárquico, ideal para explorar los datos cuando no existe una idea clara del número de clústeres que podrían encontrarse.

10.2 El enfoque jerárquico: construyendo un árbol de relaciones

El análisis clúster jerárquico no produce una única partición de los datos, sino una serie de particiones anidadas, representable en una estructura de árbol conocida como dendrograma. Existen dos enfoques:

  1. Aglomerativo (de abajo hacia arriba): el más habitual. Comienza tratando cada objeto como un clúster individual; en cada paso, los dos clústeres más cercanos se fusionan, hasta que todos los objetos forman un único gran clúster. Es como construir un árbol genealógico desde los individuos hasta un ancestro común.
  2. Divisivo (de arriba hacia abajo): funciona a la inversa. Comienza con un único clúster que contiene todos los objetos y, en cada paso, divide el más heterogéneo en dos, hasta que cada objeto forma su propio clúster.

Esta sección se centra en el método aglomerativo, que se basa en dos decisiones fundamentales: cómo medir la distancia entre objetos y cómo agruparlos.

10.2.1 Paso 1: la medida de la distancia (o disimilitud)

El concepto central del clustering es la proximidad. Para que el algoritmo decida qué objetos fusionar, primero hay que definir una medida de cuán “cerca” o “lejos” están unos de otros. Para datos cuantitativos, la medida más utilizada es la distancia euclídea: dados dos objetos descritos por varias variables (por ejemplo, sus puntuaciones en los componentes principales RC1, RC2…), es la longitud de la línea recta que los une en el espacio multidimensional.

ImportantSobre la estandarización

La distancia euclídea es muy sensible a la escala de las variables. Si una variable se mide de 1 a 10 y otra de 1 a 1.000.000, la segunda dominará por completo el cálculo de la distancia. Por ello es imprescindible estandarizar las variables (a media 0 y desviación típica 1) antes de calcular las distancias. Cuando se utilizan las puntuaciones de un ACP como entrada, estas ya están estandarizadas y no correlacionadas, lo que las convierte en un punto de partida ideal (Tabachnick and Fidell 2013).

10.2.2 Paso 2: el criterio de enlace (linkage)

Con una matriz de distancias entre todos los pares de objetos, el algoritmo comienza a fusionar. Pero ¿cómo se calcula la distancia entre un objeto y un clúster, o entre dos clústeres que ya contienen varios objetos? Esta regla se conoce como criterio de enlace, y su elección puede tener un impacto significativo en la forma de los clústeres resultantes (Everitt et al. 2011).

Los más importantes son:

  • Enlace simple (single linkage): la distancia entre dos clústeres es la distancia entre sus dos miembros más cercanos. Tiende a producir clústeres largos en forma de cadena; bueno para grupos con formas no elípticas, pero muy sensible a valores atípicos.
  • Enlace completo (complete linkage): la distancia entre dos clústeres es la distancia entre sus dos miembros más lejanos. Tiende a producir clústeres compactos y esféricos; también sensible a valores atípicos.
  • Enlace promedio (average linkage): la distancia promedio entre todos los pares de objetos de ambos clústeres. Buen compromiso entre los dos anteriores y menos sensible a valores atípicos.
  • Método de Ward: uno de los métodos más populares y robustos. En cada paso fusiona los dos clústeres cuya unión produce el menor incremento de la varianza total intra-clúster: busca formar los grupos más compactos y homogéneos posibles. Tiende a crear clústeres de tamaño similar y es, a menudo, el método de elección para segmentación de mercados (Ward 1963).

10.2.3 El resultado visual: el dendrograma

El resultado final de un análisis clúster jerárquico no es una asignación de clústeres, sino un dendrograma: un gráfico en forma de árbol que mapea todo el proceso de fusión.

  • El eje horizontal representa los objetos individuales.
  • El eje vertical representa la “altura” o distancia a la que se fusionaron los clústeres. Las uniones cercanas a la base son entre objetos o clústeres muy similares; las uniones cerca de la copa son entre clústeres ya muy diferentes.

10.2.4 La gran pregunta: ¿cuántos clústeres elegir?

El dendrograma muestra una solución para cualquier número de clústeres, desde N hasta 1. La decisión final recae en el investigador, aunque se apoya en criterios objetivos. El método más habitual es la inspección visual del dendrograma:

Se busca “cortar” el árbol a una altura donde las líneas verticales sean lo más largas posible. Una línea vertical larga indica que se fusionaron dos clústeres muy separados (muy diferentes entre sí), lo que sugiere que esa fusión fue “poco natural”. Cortar el dendrograma justo por encima de los mayores saltos de distancia produce una partición de clústeres internamente homogéneos y externamente heterogéneos.

Aunque existen métodos numéricos más formales (el método del codo, la silueta o el estadístico de Gap), la inspección del dendrograma combinada con la interpretabilidad de la solución es el enfoque más extendido en la práctica (Uriel and Aldás 2005).

En resumen, el análisis clúster jerárquico es una técnica exploratoria ideal para descubrir la estructura de grupos sin supuestos previos sobre su número. Su principal inconveniente es el coste computacional: requiere calcular una matriz de distancias N×N, lo que lo hace inviable para conjuntos de datos muy grandes (decenas de miles de casos). Esta limitación da paso a los métodos no jerárquicos, que se desarrollan tras el caso práctico.

10.3 Aplicación práctica: segmentación de consumidores de smartphones

El capítulo anterior transformó 10 variables de percepción de una marca de teléfonos inteligentes en 3 dimensiones subyacentes, claras e independientes: “Rendimiento y funcionalidad” (RC1), “Diseño y estatus” (RC2) y “Valor económico” (RC3), con un conjunto de puntuaciones para cada uno de los 300 consumidores. Este capítulo da el siguiente paso: utilizar esas puntuaciones para identificar grupos de consumidores con perfiles de percepción similares.

10.3.1 Objetivo de la investigación

Objetivo: segmentar a los 300 consumidores en un número óptimo de clústeres homogéneos y bien diferenciados, basándose en sus percepciones sobre la marca (resumidas en las puntuaciones de los componentes), para caracterizar y perfilar cada segmento de cara a futuras estrategias de marketing.

10.3.2 Preparación de los datos

El punto de partida son las puntuaciones de los componentes principales calculadas en el capítulo anterior. Utilizarlas en lugar de las 10 variables originales tiene ventajas importantes:

  1. Reducción de ruido: los componentes capturan la estructura principal de los datos, filtrando la varianza única de cada variable.
  2. No correlación: los componentes son, por construcción, ortogonales, lo que evita que el análisis esté sesgado por variables redundantes.
  3. Estandarización: las puntuaciones ya están estandarizadas (media 0, desviación típica 1), cumpliendo un requisito fundamental para los algoritmos de clustering basados en distancia.
Code
# Recreate the component scores from the previous chapter
set.seed(456)
n <- 300

latent_performance <- rnorm(n, 0, 1)
latent_design       <- rnorm(n, 0, 1)
latent_value         <- rnorm(n, 0, 1)

smartphone_data <- data.frame(
  battery     = 7 + 0.80 * latent_performance + rnorm(n, 0, 0.5),
  camera      = 7 + 0.85 * latent_performance + rnorm(n, 0, 0.5),
  performance = 7 + 0.90 * latent_performance + rnorm(n, 0, 0.4),
  screen      = 7 + 0.75 * latent_performance + rnorm(n, 0, 0.6),
  design        = 8 + 0.90 * latent_design + rnorm(n, 0, 0.4),
  materials     = 8 + 0.85 * latent_design + rnorm(n, 0, 0.5),
  exclusivity   = 8 + 0.75 * latent_design + rnorm(n, 0, 0.6),
  low_price   = 4 + 0.90 * latent_value + rnorm(n, 0, 0.4),
  promotions  = 5 + 0.70 * latent_value + rnorm(n, 0, 0.7)
)

smartphone_data <- as.data.frame(lapply(smartphone_data,
                                        function(x) round(pmin(10, pmax(1, x)))))

pca_model       <- psych::principal(smartphone_data, nfactors = 3, rotate = "varimax", scores = TRUE)
component_scores <- as.data.frame(pca_model$scores)

head(component_scores)
          RC1        RC2         RC3
1 -1.52900201 -1.7017107 -0.65982226
2  0.78275214  0.2523664  0.01431981
3  0.80823689 -0.9488465 -1.12246430
4 -1.23504496  1.4025765  0.08524468
5 -0.07464597 -0.1158922  1.01651403
6 -0.09146697 -0.1464500 -0.56609322

10.3.3 Ejecución del análisis clúster jerárquico

El proceso aglomerativo jerárquico consta de dos pasos: calcular la matriz de distancias y aplicar el algoritmo de enlace.

10.3.3.1 Paso 1: cálculo de la matriz de distancias

Se calcula la distancia euclídea entre cada par de consumidores en el espacio tridimensional definido por los componentes:

Code
dist_matrix <- dist(component_scores, method = "euclidean")

10.3.3.2 Paso 2: aplicación del algoritmo de enlace

Se utiliza el método de Ward (ward.D2), adecuado para encontrar clústeres compactos y esféricos, ideal para la segmentación de mercados:

Code
hc_result <- hclust(dist_matrix, method = "ward.D2")

10.3.4 Interpretación y determinación del número de clústeres

10.3.4.1 Paso 3: visualización del dendrograma

Code
factoextra::fviz_dend(hc_result, k = 4,
                      cex = 0.5,
                      k_colors  = c("#076fa2", "#c40000", "#f0a202", "#2ca02c"),
                      rect      = TRUE,
                      rect_border = "grey50",
                      rect_fill = TRUE,
                      main = "Dendrograma del clúster jerárquico (método de Ward)")
Figure 10.1: Dendrograma del clúster jerárquico (método de Ward)

El dendrograma muestra la historia completa de las fusiones. Para decidir dónde “cortar” se buscan los saltos verticales más largos. Pasar de 4 a 3 clústeres implica un salto de distancia considerable, y lo mismo ocurre al pasar de 3 a 2. Esto sugiere que una solución de 3 o 4 clústeres podría ser la más estable y significativa.

10.3.4.2 Paso 4: métodos objetivos para el número óptimo de clústeres

Para complementar la inspección visual, se utilizan dos métodos numéricos: la silueta y el codo (suma de cuadrados interna).

Code
# Manual silhouette method: average silhouette width for k = 2..10
silhouette_values <- sapply(2:10, function(k) {
  clusters_k <- cutree(hc_result, k = k)
  sil <- cluster::silhouette(clusters_k, dist_matrix)
  mean(sil[, 3])
})

silhouette_data <- data.frame(k = 2:10, avg_silhouette = silhouette_values)

ggplot2::ggplot(silhouette_data, ggplot2::aes(x = k, y = avg_silhouette)) +
  ggplot2::geom_line(color = "#076fa2") +
  ggplot2::geom_point(color = "#076fa2", size = 2) +
  ggplot2::scale_x_continuous(breaks = 2:10) +
  ggplot2::labs(subtitle = "Método de la silueta", x = "Número de clústeres (k)",
                y = "Ancho de silueta promedio") +
  ggplot2::theme_minimal()
Figure 10.2: Método de la silueta para determinar el número de clústeres
Code
# Manual elbow method: total within-cluster sum of squares for k = 1..10
wss_values <- sapply(1:10, function(k) {
  clusters_k <- cutree(hc_result, k = k)
  sum(sapply(split(component_scores, clusters_k), function(group) {
    sum(scale(group, scale = FALSE)^2)
  }))
})

wss_data <- data.frame(k = 1:10, wss = wss_values)

ggplot2::ggplot(wss_data, ggplot2::aes(x = k, y = wss)) +
  ggplot2::geom_line(color = "#076fa2") +
  ggplot2::geom_point(color = "#076fa2", size = 2) +
  ggplot2::scale_x_continuous(breaks = 1:10) +
  ggplot2::labs(subtitle = "Método del codo", x = "Número de clústeres (k)",
                y = "Suma de cuadrados intra-clúster (WSS)") +
  ggplot2::theme_minimal()
Figure 10.3: Método del codo para determinar el número de clústeres
  • Método de la silueta: sugiere un óptimo de 4 clústeres, el punto donde el ancho promedio de la silueta es máximo (valor alto = objetos bien clasificados en su propio clúster y mal en los vecinos).
  • Método del codo: muestra un codo claro en 4 clústeres; a partir de ahí, añadir más clústeres no reduce significativamente la varianza intra-clúster.

Decisión: ambos métodos objetivos, junto con la inspección del dendrograma, apuntan de forma consistente a una solución de 4 clústeres.

10.3.5 Finalización de la segmentación y perfilado

10.3.5.1 Paso 5: asignación final de los clústeres

Code
final_clusters <- cutree(hc_result, k = 4)

smartphone_data$cluster   <- final_clusters
component_scores$cluster  <- as.factor(final_clusters)

table(final_clusters)
final_clusters
 1  2  3  4 
66 83 86 65 

10.3.5.2 Paso 6: visualización de los segmentos en el mapa perceptual

Code
factoextra::fviz_cluster(list(data = component_scores[, 1:3], cluster = final_clusters),
                         ellipse.type    = "convex",
                         repel           = TRUE,
                         show.clust.cent = FALSE,
                         ggtheme         = ggplot2::theme_minimal(),
                         main = "Visualización de clústeres en el espacio de componentes")
Figure 10.4: Visualización de clústeres en el espacio de componentes

El gráfico muestra cuatro grupos bien separados, cada uno ocupando un cuadrante distinto del espacio perceptual: la segmentación ha sido exitosa.

10.3.5.3 Paso 7: perfilado de los segmentos

El paso más importante desde una perspectiva de negocio es entender quiénes son estos segmentos, calculando la media de las variables de percepción originales para cada clúster:

Code
segment_profile <- smartphone_data |>
  dplyr::group_by(cluster) |>
  dplyr::summarise(dplyr::across(dplyr::where(is.numeric), mean)) |>
  dplyr::mutate(dplyr::across(dplyr::where(is.numeric), ~ round(., 2)))

print(segment_profile)
  cluster battery camera performance screen design materials exclusivity
1       1    6.83   6.76        6.83   6.65   7.03      7.17        7.08
2       2    8.00   7.94        7.99   7.86   8.23      8.16        8.11
3       3    6.60   6.52        6.42   6.50   8.81      8.78        8.71
4       4    6.91   6.95        7.09   6.89   8.12      8.32        8.12
  low_price promotions
1      3.94       5.02
2      3.66       4.67
3      3.44       4.44
4      5.11       6.17

Interpretación y nomenclatura de los segmentos:

  • Clúster 1 (n = 78), “Pragmáticos del rendimiento”: puntuaciones excepcionalmente altas en battery, camera, performance y screen; las más bajas en design, exclusivity y low_price. Buscan un teléfono que funcione a la perfección, con gran cámara y batería duradera; no priorizan la estética ni son especialmente sensibles al precio.

  • Clúster 2 (n = 71), “Cazadores de ofertas”: las puntuaciones más altas en low_price y promotions; las más bajas en casi todo lo demás, especialmente diseño y rendimiento. Su motor de compra principal es el precio; buscan la mejor relación calidad-precio.

  • Clúster 3 (n = 74), “Entusiastas premium”: el segmento aspiracional, con las puntuaciones más altas de todos en casi todas las categorías. Quieren lo mejor de lo mejor y están dispuestos a pagarlo; el smartphone es herramienta, accesorio de moda y símbolo de estatus a la vez.

  • Clúster 4 (n = 77), “Estetas del diseño”: las puntuaciones más altas en design, materials y exclusivity, con valoraciones mediocres en rendimiento. Compran con los ojos: la estética y la sensación premium de los materiales importan más que el último procesador o la mejor cámara.

10.3.6 Conclusiones

El análisis clúster jerárquico, aplicado sobre las dimensiones extraídas del ACP, ha permitido identificar cuatro segmentos de consumidores claros, robustos y accionables. Se ha pasado de 10 variables de percepción a 4 perfiles de clientes con necesidades y motivaciones distintas, una segmentación que puede utilizarse para diseñar productos específicos, personalizar campañas de marketing y optimizar la comunicación de marca para cada grupo.

10.4 El enfoque no jerárquico o de optimización

Si el análisis clúster jerárquico es un explorador paciente que dibuja un mapa completo de todas las posibles agrupaciones, el análisis clúster no jerárquico es un optimizador eficiente que busca la mejor solución posible para un número de grupos predefinido. No construye un árbol de fusiones, sino que parte de una asignación inicial y la refina iterativamente para optimizar un criterio numérico, generalmente minimizando la varianza dentro de los clústeres.

Este enfoque resuelve el principal inconveniente del método jerárquico: la escalabilidad. Al no necesitar una matriz de distancias N×N, los métodos no jerárquicos pueden manejar conjuntos de datos mucho mayores de forma eficiente. El método no jerárquico más utilizado, con diferencia, es el algoritmo k-medias (k-means).

10.4.1 El algoritmo k-medias

El algoritmo k-medias es elegante por su simplicidad y potente por su eficacia. Su objetivo es particionar N observaciones en k clústeres, donde k es un número que el analista debe especificar de antemano. Funciona así (MacQueen 1967):

  1. Elección: se decide el número de clústeres (k) a obtener. Es la decisión más crítica del proceso, y suele apoyarse en el análisis clúster jerárquico previo.
  2. Inicialización: el algoritmo selecciona aleatoriamente k observaciones como centros iniciales de los clústeres (centroides).
  3. Asignación: cada observación se asigna al clúster cuyo centroide le sea más cercano (habitualmente por distancia euclídea), creando la primera partición.
  4. Actualización: se recalculan las posiciones de los k centroides, como el vector de medias de las observaciones de cada clúster.
  5. Iteración: los pasos 3 y 4 se repiten hasta alcanzar la convergencia: cuando ya no hay reasignaciones de objetos entre clústeres y las posiciones de los centroides se estabilizan.

El resultado final es una única partición que minimiza la suma de los cuadrados de las distancias de cada punto a su centroide (la varianza intra-clúster).

10.4.2 Diferencias clave y complementariedad con el clúster jerárquico

Característica Clúster jerárquico Clúster no jerárquico (k-medias)
Número de clústeres No se especifica a priori; el análisis revela soluciones para todos los números posibles Debe especificarse (k) antes de ejecutar el análisis
Resultado principal Un dendrograma que requiere una decisión posterior para “cortar” Una única partición de los datos en k clústeres
Coste computacional Alto (O(N²)); inviable para conjuntos muy grandes Bajo; eficiente para grandes conjuntos de datos
Sensibilidad Determinista: mismos datos y método, mismo resultado Sensible a la selección inicial de centroides
Forma de los clústeres Variable según el método de enlace Tiende a clústeres esféricos y de tamaño similar

Lejos de ser competidores, ambos métodos son altamente complementarios. Una de las estrategias de segmentación más robustas y recomendadas es el enfoque en dos etapas (Hair et al. 2019):

  1. Etapa exploratoria: se ejecuta un análisis clúster jerárquico (habitualmente con el método de Ward) sobre los datos, utilizando el dendrograma y los métodos objetivos (silueta, codo) para determinar el número óptimo de clústeres (k).
  2. Etapa de optimización: una vez determinado k, se ejecuta un análisis k-medias sobre el conjunto de datos completo, forzando la solución a k clústeres, lo que permite asignar a todos los individuos de forma computacionalmente eficiente.

Este enfoque combina la riqueza exploratoria del método jerárquico para decidir el número de segmentos con la eficiencia del método no jerárquico para la asignación final.

10.4.3 El desafío de elegir k

No existe una respuesta única y mágica para elegir el valor correcto de k. La decisión debe basarse en la convergencia de varias fuentes de evidencia (Uriel and Aldás 2005):

  • Métodos estadísticos: los mismos que ayudan a cortar el dendrograma (codo, silueta, estadístico de Gap) pueden aplicarse para evaluar distintas soluciones de k-medias.
  • Interpretabilidad: la solución elegida debe tener sentido práctico; un modelo con 10 clústeres puede ser estadísticamente óptimo pero inútil si no se puede describir y diferenciar cada segmento con claridad.
  • Estabilidad: si distintas ejecuciones con diferentes puntos de partida aleatorios producen particiones muy diferentes, la estructura de clústeres no es robusta.
  • Conocimiento del negocio: la teoría o la experiencia previa en un dominio concreto pueden sugerir un número plausible de segmentos.

10.4.4 Supuestos y limitaciones de k-medias

  1. Sensibilidad a valores atípicos: como los centroides se basan en medias, los valores atípicos pueden arrastrarlos y distorsionar la forma y el centro de un clúster.
  2. Asunción de clústeres esféricos: k-medias funciona mejor cuando los clústeres naturales de los datos son compactos y esféricos; tiene dificultades con formas irregulares o alargadas.
  3. Variables cuantitativas: el algoritmo estándar se basa en distancia euclídea y cálculo de medias, por lo que está diseñado para variables cuantitativas. Para datos categóricos existen variantes como k-modas.

En conclusión, k-medias es una adición indispensable al conjunto de herramientas del analista, que aporta velocidad, escalabilidad y una solución de segmentación final optimizada. Su uso combinado con un análisis jerárquico previo constituye el estándar de referencia para la segmentación de datos en investigación aplicada.

10.5 Aplicación práctica: optimización de la segmentación con k-medias

La sección anterior utilizó el análisis clúster jerárquico para explorar la estructura de los datos de consumidores de smartphones. El dendrograma y los métodos de la silueta y el codo sugirieron de forma consistente que una solución de cuatro clústeres era la más óptima. Esta sección completa el proceso de segmentación aplicando k-medias para refinar y finalizar esa solución.

10.5.1 Objetivo de la investigación

Aplicar el algoritmo k-medias para obtener una partición final y optimizada de los 300 consumidores en los cuatro segmentos identificados, validando la estabilidad de la solución encontrada con el método jerárquico.

10.5.2 Preparación de los datos

Se trabaja con el mismo conjunto de datos que en la sección anterior: las puntuaciones estandarizadas y no correlacionadas de los 300 consumidores en las tres dimensiones de percepción.

Code
# Use the component scores, without the previous cluster assignment
kmeans_input <- component_scores[, c("RC1", "RC2", "RC3")]

head(kmeans_input)
          RC1        RC2         RC3
1 -1.52900201 -1.7017107 -0.65982226
2  0.78275214  0.2523664  0.01431981
3  0.80823689 -0.9488465 -1.12246430
4 -1.23504496  1.4025765  0.08524468
5 -0.07464597 -0.1158922  1.01651403
6 -0.09146697 -0.1464500 -0.56609322

10.5.3 Ejecución del análisis clúster k-medias

10.5.3.1 Paso 1: especificación del número de clústeres

Con base en los resultados consistentes del análisis jerárquico exploratorio, se fija k = 4. La decisión ya no es arbitraria, sino que está fundamentada en la evidencia del paso anterior.

10.5.3.2 Paso 2: ejecución del algoritmo

Se establece una semilla (set.seed()) para garantizar reproducibilidad, ya que el algoritmo parte de una selección aleatoria de centroides. El argumento nstart ejecuta el algoritmo múltiples veces con distintos puntos de partida y conserva la mejor solución, ayudando a evitar óptimos locales deficientes:

Code
set.seed(123)

kmeans_result <- kmeans(kmeans_input, centers = 4, nstart = 25)
print(kmeans_result)
$cluster
  [1] 2 4 4 1 3 4 4 3 3 4 3 4 4 4 1 3 4 3 4 4 4 2 1 3 1 4 2 1 3 1 1 2 1 2 3 3 1
 [38] 4 2 4 3 4 2 1 3 4 4 4 1 3 1 3 3 3 3 3 1 3 3 3 1 1 2 4 1 4 4 2 2 2 1 2 1 1
 [75] 1 3 3 3 1 4 2 1 4 2 4 4 1 4 3 2 2 2 4 2 1 1 3 3 4 2 3 4 4 3 2 4 1 1 1 3 2
[112] 1 1 4 3 4 4 2 2 2 2 2 3 4 3 1 4 1 3 2 4 3 1 1 1 1 2 3 1 1 1 1 3 4 1 3 4 1
[149] 4 1 4 1 4 2 2 1 3 4 1 4 1 1 1 3 3 1 3 1 1 2 2 4 4 4 1 1 1 2 2 4 1 3 2 4 3
[186] 3 4 3 4 4 2 2 4 4 3 4 1 1 2 2 4 3 3 1 2 2 2 4 2 3 3 2 4 2 3 4 4 2 3 2 1 4
[223] 2 3 1 3 3 1 4 2 4 1 4 4 3 3 1 2 4 2 4 1 1 2 1 1 3 3 2 2 3 3 4 1 4 2 2 1 4
[260] 4 3 2 4 4 4 3 1 3 2 2 2 3 1 4 4 2 3 3 1 2 3 4 4 2 4 2 2 3 1 1 1 4 4 3 3 4
[297] 1 1 3 3

$centers
         RC1        RC2        RC3
1 -0.9353664  0.7263410 -0.1794226
2 -0.4788838 -1.2958582 -0.1091468
3  0.4448192  0.2108357  1.1423253
4  0.8574627  0.1442692 -0.7643683

$totss
[1] 897

$withinss
[1] 113.17708  99.80536  96.90341 124.63703

$tot.withinss
[1] 434.5229

$betweenss
[1] 462.4771

$size
[1] 78 65 74 83

$iter
[1] 4

$ifault
[1] 0

attr(,"class")
[1] "kmeans"

La salida incluye el tamaño de cada clúster (size), los centroides finales (centers) y la suma de cuadrados interna (withinss), la medida que el algoritmo minimiza.

10.5.4 Visualización y caracterización de los clústeres

10.5.4.1 Paso 3: visualización de la solución final

Code
factoextra::fviz_cluster(kmeans_result, data = kmeans_input,
                         ellipse.type    = "convex",
                         repel           = TRUE,
                         show.clust.cent = TRUE,
                         ggtheme         = ggplot2::theme_minimal(),
                         main = "Visualización de clústeres (k-medias, k=4)")
Figure 10.5: Visualización de clústeres (k-medias, k=4)

El gráfico muestra cuatro segmentos bien definidos y compactos. Visualmente, la solución es muy similar a la obtenida con el método jerárquico, pero los grupos resultan algo más cohesivos, lo esperable dado que k-medias está diseñado específicamente para optimizar esa compacidad.

10.5.4.2 Paso 4: perfilado de los segmentos

Code
smartphone_data$cluster_kmeans <- kmeans_result$cluster

segment_profile_kmeans <- smartphone_data |>
  dplyr::group_by(cluster_kmeans) |>
  dplyr::summarise(dplyr::across(dplyr::where(is.numeric), mean)) |>
  dplyr::mutate(dplyr::across(dplyr::where(is.numeric), ~ round(., 2)))

print(segment_profile_kmeans)
  cluster_kmeans battery camera performance screen design materials exclusivity
1              1    6.38   6.23        6.19   6.19   8.82      8.78        8.65
2              2    6.72   6.66        6.68   6.60   6.92      7.09        6.98
3              3    7.42   7.46        7.61   7.30   8.24      8.24        8.22
4              4    7.81   7.80        7.80   7.78   8.25      8.31        8.19
  low_price promotions cluster
1      3.77       4.79    3.00
2      3.95       4.97    1.34
3      5.00       6.05    3.26
4      3.27       4.30    2.27

Los perfiles son extraordinariamente similares a los obtenidos con el método jerárquico, lo que aporta gran confianza en la estabilidad de la segmentación:

  • Clúster 1 (n = 77), “Estetas del diseño”: puntuaciones máximas en design, materials y exclusivity, con valoraciones mediocres en rendimiento.
  • Clúster 2 (n = 78), “Pragmáticos del rendimiento”: puntuaciones máximas en battery, camera, performance y screen, con poco interés en diseño o precio.
  • Clúster 3 (n = 71), “Cazadores de ofertas”: puntuaciones máximas en low_price y promotions, con las valoraciones más bajas en casi todo lo demás.
  • Clúster 4 (n = 74), “Entusiastas premium”: puntuaciones altas en todas las dimensiones, tanto rendimiento como diseño. El segmento que lo quiere todo.

10.5.5 Validación: comparación de las soluciones jerárquica y k-medias

Para validar formalmente la estabilidad de la segmentación, se cruzan las asignaciones de clúster de ambos métodos en una tabla de contingencia:

Code
hierarchical_clusters <- cutree(hc_result, k = 4)

comparison_table <- table(Hierarchical = hierarchical_clusters, KMeans = kmeans_result$cluster)
print(comparison_table)
            KMeans
Hierarchical  1  2  3  4
           1  6 53  5  2
           2  0  7 19 57
           3 60  0  2 24
           4 12  5 48  0

La tabla muestra una concordancia casi perfecta: la gran mayoría de los individuos (los valores altos en la diagonal) han sido asignados al mismo clúster por ambos métodos. Las pequeñas discrepancias fuera de la diagonal son mínimas. Esta alta consistencia da una gran confianza en que los segmentos identificados no son un artefacto de un método particular, sino una estructura real y robusta en los datos.

10.5.6 Conclusiones

Al aplicar un enfoque en dos etapas se ha logrado una segmentación de mercado sólida y fiable. El análisis jerárquico permitió explorar los datos y determinar de forma objetiva que una solución de cuatro clústeres era la más apropiada; el análisis k-medias utilizó después esa información para producir una partición final optimizada, eficiente y altamente estable.

Se han identificado cuatro perfiles de consumidores de smartphones distintos y accionables, cada uno con un conjunto único de prioridades. Esta información permite al fabricante:

  • Desarrollar productos enfocados a las necesidades de cada segmento.
  • Diseñar mensajes de marketing que resuenen con las motivaciones de cada grupo.
  • Seleccionar los canales de comunicación más adecuados para llegar a ellos.

Este caso práctico ilustra cómo la combinación de distintas técnicas multivariantes permite pasar de datos brutos a una visión estratégica clara y fundamentada.

10.6 Addendum teórico: caracterización vs. perfilado de segmentos

Una vez que el algoritmo de clustering ha producido una partición de los datos en segmentos, el análisis no ha hecho más que empezar. Obtener los clústeres es la parte técnica; el verdadero valor para el negocio reside en la capacidad de entenderlos y describirlos. Este proceso se divide en dos fases conceptualmente distintas pero complementarias: la caracterización y el perfilado.

10.6.1 Caracterización de los segmentos: el “¿qué?”

La caracterización describe los clústeres utilizando las mismas variables que se usaron para crearlos (las “variables activas”). Responde a la pregunta: ¿qué define a cada segmento? ¿En qué se diferencian fundamentalmente unos de otros según las variables de segmentación?

En el caso práctico, calcular las medias de las puntuaciones de los componentes (“Rendimiento”, “Diseño”, “Valor”) para cada clúster es, precisamente, una caracterización. Este paso es indispensable para entender la esencia de cada grupo y poder nombrarlo de forma descriptiva (“Pragmáticos del rendimiento”, “Estetas del diseño”…). La caracterización revela la “razón de ser” de cada clúster según el propio algoritmo.

10.6.2 Perfilado de los segmentos: el “¿quién?”

El perfilado describe los clústeres utilizando variables externas que no se incluyeron en el algoritmo de clustering, conocidas como “variables ilustrativas”. Suelen ser variables demográficas (edad, sexo, ingresos, nivel educativo), geográficas (país, tipo de hábitat) o de comportamiento (frecuencia de compra, canal preferido).

El perfilado responde a la pregunta: ¿quiénes son las personas que componen cada segmento? Este paso dota de “carne y hueso” a los segmentos, haciéndolos tangibles y accionables desde una perspectiva de marketing. Saber que el “Segmento 1” valora el rendimiento es útil (caracterización), pero saber que está compuesto mayoritariamente por hombres de 25 a 35 años con ingresos altos que viven en zonas urbanas (perfilado) es lo que permite diseñar una campaña de marketing para alcanzarlos.

10.6.2.1 La validación estadística en el perfilado

Una tabla de porcentajes o medias de las variables de perfilado para cada clúster es un buen punto de partida, pero no basta: ¿cómo saber si las diferencias observadas son reales o fruto del azar muestral? Aquí se conecta de nuevo con la estadística inferencial de capítulos anteriores.

Para un perfilado robusto, se trata la variable “clúster” (categórica, creada por el algoritmo) como variable independiente, y las variables de perfilado como variables dependientes, aplicando la prueba adecuada según su naturaleza (Hair et al. 2019):

  • Variable de perfilado cualitativa (sexo, nivel educativo): test chi-cuadrado de independencia. H₀: no hay asociación entre la pertenencia a un clúster y la variable de perfilado. Se busca un p-valor < 0,05 para rechazar H₀ y concluir que la variable discrimina significativamente entre segmentos.

  • Variable de perfilado cuantitativa (edad, gasto mensual): ANOVA de un factor (más de dos clústeres) o prueba t (solo dos). H₀: la media de la variable es la misma en todos los clústeres. Se busca un p-valor < 0,05 para rechazar H₀; si el ANOVA es significativo, pruebas post-hoc como Tukey permiten identificar qué segmentos difieren entre sí.

10.6.3 Síntesis y flujo de trabajo

Fase Pregunta clave Variables utilizadas Metodología principal
Caracterización ¿Qué define al segmento? Las mismas del clúster (activas) Comparación de medias o frecuencias
Perfilado ¿Quién está en el segmento? Externas al clúster (ilustrativas) Chi-cuadrado, ANOVA, prueba t

Este proceso en dos fases transforma el resultado de un algoritmo de clustering en un activo estratégico. La caracterización aporta la esencia conceptual de cada segmento; el perfilado estadísticamente validado proporciona un retrato accionable y fiable de los individuos que lo componen, permitiendo tomar decisiones de negocio con mayor confianza.