Contexto

El contexto de los datos se trata de registros relacionados con aspectos y características asociadas al comportamiento de compras de clientes.

Las variables describen características comerciales y de comportamiento, tales como el segmento al que pertenece el cliente, el canal por el cual realiza sus compras, la región donde se ubica, el tipo de producto que consume con mayor frecuencia, su frecuencia de compra, su nivel de satisfacción, el método de pago utilizado y su respuesta ante promociones, entre otros.

Todas las variables son categóricas, el modelo a implementar para generar grupos o clústeres será K-Modes.

Las variables:

Los datos se encuentra en el servicio github.com https://raw.githubusercontent.com/rpizarrog/Libro-Aprendizaje-Automatico.-Casos-de-Estudio-con-R-y-Python/refs/heads/main/datos/datos_clientes_kmodes_empresarial.csv .

El caso de estudio se puede ver en https://rpubs.com/rpizarrog/1447359

Las funciones se encuentra en https://raw.githubusercontent.com/rpizarrog/Libro-Aprendizaje-Automatico.-Casos-de-Estudio-con-R-y-Python/refs/heads/main/R%20MarkDown/funciones/funciones%20para%20K-Modes.R .

Objetivo

Implementar y valorar los grupos clientes contruídos a partir de la implementación del modelo K-Modes.

Se valoran el modelos K-Modes con \(K=3\) y con \(K=4\), de tal forma que la evaluación se realiza considerando el costo total del modelo, las frecuencias de clientes por clúster y las modas finales que caracterizan cada grupo.

Descripción

Cargar librerías

library(readr)        # Para conjuntos de datos
library(ggplot2)      # Gráficos
library(patchwork)    # Para tablas Word
library (psych)       # Para describir datos
library(scales)       # PAra graficos y escalas
library(klaR)         # para K-Modes

Cargar funciones

# url <- "../funciones/funciones para K-Modes.R" # local
url <- "https://raw.githubusercontent.com/rpizarrog/Libro-Aprendizaje-Automatico.-Casos-de-Estudio-con-R-y-Python/refs/heads/main/R%20MarkDown/funciones/funciones%20para%20K-Modes.R" # WEB
source (url)

Cargar datos

Se cargan los datos originales y solo se utilzia las variabels de interés: segmento, canal, region, producto, frecuencia, satisfaccion, pago, respromocion, al final, el conjunto de datos se almacena en datos.

url <- "https://raw.githubusercontent.com/rpizarrog/Libro-Aprendizaje-Automatico.-Casos-de-Estudio-con-R-y-Python/refs/heads/main/datos/datos_clientes_kmodes_empresarial.csv"
datos_originales <- f_cargar_datos(url)

variables <- c("segmento", "canal", "region", "producto", 
               "frecuencia" ,"satisfaccion", "pago", "respromocion")

datos <- datos_originales[,variables]
f_visualizar_head_tail_reducido_word(datos)

segmento

canal

region

producto

...

frecuencia

satisfaccion

pago

respromocion

Premium

Web

Occidente

Servicios

...

Media

Alta

Digital

Media

Promocional

Web

Sur

Moda

...

Media

Media

Digital

Alta

Riesgo

Tienda

Occidente

Alimentos

...

Baja

Media

Efectivo

Baja

Frecuente

App

Centro

Tecnologia

...

Alta

Alta

Transferencia

Media

Promocional

App

Sur

Tecnologia

...

Alta

Media

Digital

Alta

Riesgo

Telefono

Occidente

Moda

...

Media

Media

Tarjeta

Baja

...

...

...

...

...

...

...

...

...

Frecuente

Web

Norte

Servicios

...

Media

Alta

Digital

Media

Ocasional

App

Centro

Moda

...

Media

Media

Efectivo

Media

Premium

Tienda

Sur

Tecnologia

...

Alta

Alta

Tarjeta

Alta

Promocional

App

Sur

Moda

...

Media

Media

Digital

Alta

Ocasional

Tienda

Sur

Hogar

...

Media

Media

Digital

Baja

Frecuente

App

Norte

Moda

...

Media

Media

Digital

Alta

Descripción de datos

Todas las variables se hacen de tipo factor con la finalidad de conocer su frecuencia.

datos <- f_convertir_factor(datos)
f_summary_factores(datos)
##         segmento        canal           region          producto   frecuencia 
##  Frecuente  :210   App     :307   Centro   :309   Alimentos :165   Alta :299  
##  Nuevo      : 98   Telefono: 32   Norte    :246   Hogar     :260   Baja :334  
##  Ocasional  :260   Tienda  :294   Occidente:179   Moda      :256   Media:367  
##  Premium    :155   Web     :367   Sur      :266   Servicios :126              
##  Promocional:166                                  Tecnologia:193              
##  Riesgo     :111                                                              
##  satisfaccion            pago     respromocion
##  Alta :309    Digital      :269   Alta :370   
##  Baja :216    Efectivo     :252   Baja :259   
##  Media:475    Tarjeta      :369   Media:371   
##               Transferencia:110               
##                                               
## 
resultado_frecuencias <- f_frecuencias(
  datos = datos
)

resultado_frecuencias$grafico

Desarrollo

Modelo K-Modes K=3

Se construye el modelo K-Modes con \(K=3\).

modelo_KModes_K3 <- f_crear_KModes(datos, variables, k = 3, iter_max = 50, semilla = 2026)

Resultados K=3

modelo_KModes_K3$modas_finales

Frecuencias por cluster K=3

datos$cluster_KModesK3 <- modelo_KModes_K3$cluster

resultado_visual <- f_visualizar_clusters_categoricos(
  datos = datos,
  variable_cluster = "cluster_KModesK3",
  variables = variables,
  ncol = 2,
  titulo = "Distribución porcentual de variables categóricas por clúster"
)

resultado_visual$grafico

Los resultados del clustering K-Modes con \(K=3\) se puede interpretar de la siguiente manera:

  • El clúster 1, son clientes medios o promocionales, con compras por Web, frecuencia media y satisfacción media. Este grupo parece representar clientes con comportamiento intermedio. No son los clientes más leales, pero tampoco parecen completamente inactivos. Presentan una frecuencia de compra principalmente media, usan de forma importante canales como Web, y muestran una respuesta promocional también media. Una posible etiqueta sería: clientes de comportamiento medio o promocional moderado.

  • El clúster 2, representa a clientes frecuentes o de mayor valor, con alta frecuencia, alta satisfacción y buena respuesta promocional. Este clúster representa a los clientes con mejor perfil comercial. Tienen mayor frecuencia de compra, alta satisfacción y alta respuesta a promociones. Además, aparecen relacionados con segmentos como Frecuente y Premium. Una posible etiqueta sería: clientes frecuentes y satisfechos o clientes de alto valor comercial.

  • El clúster 3, implica clientes ocasionales o de riesgo, con baja frecuencia, baja satisfacción y menor respuesta promocional. Este grupo muestra características asociadas con clientes menos frecuentes, menor satisfacción y menor respuesta a promociones. También se relaciona con segmentos como Ocasional y Riesgo. Una posible etiqueta sería: clientes ocasionales o en riesgo, o también clientes de bajo compromiso comercial.

Modelo K-Modes K=4

Se construye el modelo K-Modes con \(K=4\).

modelo_KModes_K4 <- f_crear_KModes(datos, variables, k = 4, iter_max = 50, semilla = 2026)

Resultados K=4

modelo_KModes_K4$modas_finales

Frecuencias por cluster K=4

datos$cluster_KModesK4 <- modelo_KModes_K4$cluster

resultado_visual <- f_visualizar_clusters_categoricos(
  datos = datos,
  variable_cluster = "cluster_KModesK4",
  variables = variables,
  ncol = 2,
  titulo = "Distribución porcentual de variables categóricas por clúster"
)

resultado_visual$grafico

El clúster 1 refleja clientes medios o promocionales moderados, Web, frecuencia media, satisfacción media, respuesta promocional media. Este grupo podría interpretarse como clientes que mantienen cierta actividad comercial, responden de manera moderada a promociones y tienen una satisfacción principalmente media. Una etiqueta posible recomendable sería: clientes de comportamiento medio o clientes activos moderados.

El clúster 2 representa clientes frecuentes y satisfechos, App, frecuencia alta, satisfacción alta, respuesta promocional alta. Este grupo concentra clientes con alta frecuencia de compra, alta satisfacción y alta respuesta a promociones. Además, utiliza de manera importante canales digitales como la App y métodos de pago como tarjeta. Una etiqueta adecuada sería: clientes frecuentes y satisfechos, también podría llamarse clientes de alto valor comercial.

El clúster 3 describe clientes ocasionales o en riesgo, Tienda, baja frecuencia, baja satisfacción, baja respuesta promocional. Este clíuster, muestra baja frecuencia de compra, menor satisfacción y baja respuesta promocional. Además, se relaciona con clientes ocasionales y con compras más presenciales. Una etiqueta posible sería clientes ocasionales o de bajo compromiso o clientes en riesgo comercial.

El clúster 4 son clientes digitales de alto valor o premium, Web, App, frecuencia media-alta, satisfacción media/alta, segmento premium o promocional. Este grupo o clúster parece integrar clientes con comportamiento digital, buena respuesta a promociones y consumo asociado a tecnología. Puede representar un segmento comercial interesante, distinto del clúster 2. Una etiqueta posible sería clientes digitales promocionales o clientes tecnológicos con respuesta promocional alta.

Evaluación del costo en K-Modes

Se ejecuta la función f_evaluar_costo_KModes() que calcula el costo de disimilitud entre ambos modelos.

resultado_costo <- f_evaluar_costo_KModes(
  modelos = list(
    "K-Modes K=3" = modelo_KModes_K3,
    "K-Modes K=4" = modelo_KModes_K4
  )
)

resultado_costo$tabla_costos
resultado_costo$grafico

El modelo K-Modes con \(K=4\) presenta un menor costo total que el modelo con \(K=3\). El costo disminuye de 3690 a 3404, lo que representa una reducción absoluta de 286 unidades y una mejora porcentual de 7.75%. Esto indica que el modelo con cuatro clústeres logra una mayor homogeneidad interna, ya que los clientes presentan menor disimilitud respecto a las modas de sus respectivos grupos. Además, si el cuarto clúster puede interpretarse como un segmento empresarial diferenciado, por ejemplo clientes digitales, promocionales o tecnológicos, entonces el modelo con K=4 resulta más conveniente. No obstante, si se busca una segmentación más simple y fácil de comunicar, el modelo con K=3 también puede ser aceptable.

La pregunta importante es: ¿La reducción de 7.75% justifica agregar un cuarto clúster? sí justificable si el cuarto clúster tiene una interpretación empresarial adecuada dentro del contexto.

Interpretación del caso

El caso de eatudio cumple con el objetivo establecido al inicio. Se implementó el modelo de clustering K-Modes para \(K=3\) y \(K=4\) clústeres.

La visualización de las variables categóricas por clúster permite interpretar los perfiles identificados por el modelo K-Modes.

Con \(K=3\) se observa que el clúster 2 concentra clientes con mayor frecuencia de compra, alta satisfacción y alta respuesta a promociones, por lo que puede interpretarse como un grupo de clientes frecuentes o de alto valor comercial. El clúster 3 presenta mayor presencia de baja frecuencia, menor satisfacción y menor respuesta promocional, por lo que puede asociarse con clientes ocasionales o en riesgo. Por su parte, el clúster 1 muestra un comportamiento intermedio, con frecuencia media, satisfacción media y respuesta promocional moderada. Estos resultados muestran que K-Modes permite construir segmentos de clientes interpretables a partir de variables categóricas.

Con \(K=4\) se observa que el clúster 2 concentra clientes con alta frecuencia de compra, alta satisfacción y alta respuesta a promociones, por lo que puede interpretarse como un grupo de clientes frecuentes y satisfechos. El clúster 3 agrupa clientes con baja frecuencia, menor satisfacción y menor respuesta promocional, lo que sugiere un perfil de clientes ocasionales o en riesgo. El clúster 1 presenta un comportamiento intermedio, asociado con frecuencia media, satisfacción media y respuesta promocional moderada. Finalmente, el clúster 4 parece representar un segmento más específico de clientes digitales o promocionales, con presencia relevante en canales como Web o App, consumo de productos tecnológicos y respuesta favorable a promociones.

El modelo con \(K=4\) permite una segmentación más rica que el modelo con \(K=3\), ya que además de distinguir clientes de alto, medio y bajo compromiso, identifica un cuarto grupo con características digitales y promocionales. No obstante, la elección entre \(K=3\) y \(K=4\) debe apoyarse tanto en la interpretación de los perfiles como en el costo del modelo y la utilidad práctica de los segmentos para la toma de decisiones empresariales.

Con respecto a una comparaciópn de costos de disimilitud el modelo con \(K=4\) presenta una mejora porcentual de 7.75% con respecto a el modelo con \(K=3\).