CASO EXPERIENCIA DE PRODUCTO (Taller 3)

MODELOS CONSIDERANDO SOLAMENTE VARIABLES ESCALARES

Fase 1: Comprensión del negocio 📈

Imagina entrar a un restaurante de comida rápida cualquiera en Colombia. Un lugar con sillas modernas, menús llamativos, música de fondo y empleados bien entrenados. A simple vista, todo parece funcionar correctamente. Pero, ¿cómo saber si los clientes realmente están teniendo una buena experiencia?

Cada día, decenas de personas pasan por estos establecimientos. Algunos salen satisfechos, otros molestos, y muchos simplemente indiferentes. Cada uno con su historia, su contexto, su expectativa. Y sin embargo, las decisiones estratégicas del negocio —desde el rediseño del servicio hasta el lanzamiento de promociones— se siguen tomando con base en intuiciones o comentarios aislados.

Pero algo ha cambiado. Ahora, el restaurante cuenta con una base de datos valiosa: encuestas aplicadas a sus clientes, que recopilan calificaciones sobre distintos atributos del servicio, junto con datos demográficos como edad, género y nivel socioeconómico. En esa información aparentemente simple, puede estar la clave para transformar la experiencia del cliente y diferenciarse en un mercado saturado.

La pregunta es: ¿Qué factores determinan realmente la experiencia del cliente? ¿Cómo se puede segmentar la clientela para personalizar el servicio y optimizar la estrategia comercial?

Aquí es donde la analítica de datos deja de ser un lujo y se convierte en una herramienta esencial para la toma de decisiones. En esta primera etapa del ciclo CRISP-DM, nos enfocaremos en la fase de comprensión del negocio, una etapa fundamental para alinear los objetivos analíticos con los intereses reales del programa Fondo Emprender. Siguiendo la guía del modelo, abordaremos 9 aspectos clave:

  1. Contexto comercial

  2. Objetivos comerciales

  3. Criterios de rendimiento comercial

  4. Evaluación de la situación actual

  5. Requisitos, supuestos y restricciones

  6. Análisis de costos-beneficios

  7. Objetivos de minería de datos

  8. Criterios de rendimiento para los modelos

  9. Plan del proyecto

Esta fase no solo sienta las bases para el modelado posterior, sino que nos permite entender el problema desde el lenguaje del negocio, no solo desde los datos.

1. Contexto comercial

image.png

Se trata de un restaurante de comida rápida que opera en un entorno altamente competitivo. La rentabilidad del negocio depende cada vez más de maximizar la satisfacción y la lealtad del cliente. Para ello, el restaurante dispone de una base de datos con 104 encuestas de experiencia de clientes, que incluyen calificaciones (1–10) de atributos como promociones, servicio al cliente, participación comunitaria, ubicación, domicilios, rapidez, horarios y mobiliario, además de datos demográficos (género, estrato socioeconómico, edad) y si el cliente recomendaría el establecimiento. En este contexto, el análisis de datos apunta a extraer conocimientos de las opiniones reales de los clientes. Técnicas de minería de datos, como la segmentación (clustering) y el análisis factorial, permitirán agrupar clientes con niveles de satisfacción similares y detectar las dimensiones subyacentes de la experiencia . Estudios del sector sugieren que este tipo de análisis, al personalizar la oferta según los segmentos de clientes, puede optimizar la experiencia del cliente y, en última instancia, la rentabilidad del negocio.

2. Objetivos comerciales

El objetivo de negocio principal es mejorar la rentabilidad del restaurante mediante el incremento de la satisfacción, la fidelización y la recomendación de los clientes. Se busca identificar segmentos de clientes con diferentes niveles de experiencia para personalizar estrategias comerciales, promociones o mejoras de servicio. Por ejemplo, si determinados grupos muestran baja satisfacción en el servicio al cliente o en la rapidez, se diseñarán acciones focalizadas (capacitación de personal, optimización de procesos) para esos segmentos. En términos de CRISP-DM, “determinar los objetivos de negocio” implica clarificar qué se quiere conseguir desde la perspectiva comercial . En este caso, se traduce en:

  • (i) incrementar la proporción de clientes que recomendarían el restaurante (un proxy de NPS)
  • (ii) aumentar la frecuencia de visita de clientes recurrentes
  • (iii) optimizar el gasto promedio por cliente. Estas metas están alineadas con la idea de adaptar la oferta a grupos homogéneos de clientes, lo cual, según especialistas, mejora la efectividad de marketing y la experiencia del cliente

3. Criterios de rendimiento comercial

Para medir el éxito del proyecto en términos de negocio, se deben definir indicadores claros. Entre los criterios clave se incluyen: la mejora en la satisfacción promedio de los clientes (según las calificaciones de la encuesta), el aumento en la proporción de clientes recomendadores (índice de recomendación neta), y la variación en indicadores financieros, como el ticket medio o ventas repetidas en el segmento objetivo. Por ejemplo, se puede fijar un objetivo de incrementar en un 10% los clientes que otorgan calificaciones altas (8–10) a los atributos de servicio. Además, se evaluará el impacto en la rentabilidad, es decir, el incremento de ingresos atribuido a acciones derivadas del análisis. Un criterio usual es comparar las métricas post-implementación con las actuales: si tras la segmentación y acciones de mejora las métricas de satisfacción y ventas aumentan, el proyecto se considerará exitoso. De acuerdo con el marco CRISP-DM, estos criterios de éxito deben definirse de antemano desde la óptica del negocio , para asegurar que los resultados del análisis (por ejemplo, segmentos de clientes) se traduzcan en beneficios comerciales mensurables.

4. Evaluación de situación actual

image.png

Antes de iniciar el análisis de datos, es necesario caracterizar la situación actual: el restaurante tiene 104 encuestas de clientes previas, pero no ha aplicado aún modelos analíticos avanzados. Actualmente no existe segmentación formal de la clientela; las decisiones comerciales se toman de forma general. Los recursos disponibles incluyen el personal de operaciones y marketing, bases de datos de encuestas (calidades ya consolidadas), y herramientas informáticas básicas (hojas de cálculo, tal vez software estadístico). Se debe verificar la calidad de la información (p.ej., datos faltantes o incoherentes en las encuestas) y determinar si la muestra de 104 encuestados es representativa de la clientela habitual. Según la fase de “comprensión del negocio” de CRISP-DM, es importante documentar todos estos elementos – personas involucradas, datos disponibles y limitaciones – ya que influyen en las metas y el plan del proyecto . Por ejemplo, se asumirá que las encuestas reflejan con razonable fidelidad la experiencia de un subconjunto relevante de clientes (supuesto de representatividad). También se considerará que el equipo cuenta con un analista de datos con conocimientos de minería de datos, y el apoyo de la gerencia para implementar acciones. Al mismo tiempo, se identifican riesgos: la muestra es pequeña, por lo que los resultados de segmentación podrían no generalizarse sin cautela.

5. Requisitos, supuestos y restricciones

Los requisitos del proyecto incluyen disponer de un ambiente analítico adecuado (por ejemplo, software estadístico como R o SPSS) y asegurar el acceso a los datos completos de las encuestas y variables demográficas. En términos de recursos, se requiere la colaboración de un científico de datos y del equipo de marketing/operaciones para validar conclusiones. Se asume que los datos fueron recopilados bajo consentimiento (cumpliendo normativas de privacidad) y que las calificaciones son consistentes (por ejemplo, escalas de 1 a 10 calibradas). Entre las restricciones, destaca el presupuesto limitado (no se destinarán grandes inversiones tecnológicas) y el tiempo restringido (se esperaría concluir el análisis en algunos meses). La calidad de los datos es otra restricción: con solo 104 registros, el número de variables (al menos 8 atributos de servicio + demografía) puede requerir reducción de dimensionalidad para análisis significativos. Según CRISP-DM, esta fase implica listar todos los requerimientos del proyecto y los factores externos (legales, técnicos) que puedan afectar los objetivos . Por ejemplo, se exigirá que los análisis no vulneren la privacidad de los clientes, y se asumirá que el personal capacitado estará disponible según lo planificado. También se considerará el soporte informático mínimo (una computadora con capacidad para manejo estadístico), lo cual es una restricción que define el alcance de las técnicas a emplear.

6. Análisis costo/beneficio

El análisis costo-beneficio evalúa la viabilidad del proyecto comparando los recursos a invertir con los beneficios esperados . Los costos incluyen principalmente el tiempo del analista de datos (estimado en varias semanas-hombre), posibles licencias de software estadístico o de CRM, y los recursos de reuniones para validar hallazgos. Otros costos intangibles pueden ser la capacitación de personal para aplicar cambios derivados. Por otro lado, los beneficios proyectados son: aumento en ingresos por cliente mediante estrategias dirigidas a los segmentos identificados, reducción de costos operativos al optimizar promociones únicamente para clientes receptivos, y mejoras en la lealtad (que reducen la necesidad de captar clientes nuevos). Aunque cuantificar exactamente estos beneficios resulta complejo, se puede estimar un retorno midiendo indicadores clave antes y después del proyecto. Por ejemplo, si una mejor segmentación incrementa en 5% las ventas, ese aumento compensaría con creces los costos iniciales del análisis. En consonancia con la metodología CRISP-DM, se realizará un balance preliminar de estos costos y beneficios potenciales para argumentar la inversión en el proyecto

7. Objetivos de Data Mining

Con base en los objetivos del negocio, los objetivos de minería de datos son: (a) identificar segmentos de clientes basados en su experiencia, y (b) determinar las dimensiones principales que explican las diferencias en la percepción del servicio. En la práctica, esto implica usar clustering (agrupamiento) para descubrir grupos homogéneos de clientes con perfiles similares de satisfacción, así como análisis factorial para reducir las 8 variables de atributos de servicio en unos pocos factores o componentes subyacentes . Por ejemplo, el análisis factorial podría revelar que varias calificaciones (como servicio al cliente y rapidez) cargan sobre un mismo factor interpretado como “eficiencia del servicio”, mientras que otras (promociones y participación comunitaria) formen otro factor de “valor y compromiso social”. Luego, el clustering sobre las puntuaciones factoriales o directamente sobre los atributos permitirá segmentar la base de clientes en grupos (por ejemplo, clientes altamente satisfechos vs. clientes insatisfechos). Estas metas técnicas convierten los objetivos comerciales en términos de minería de datos: descubrir patrones ocultos en las respuestas de la encuesta . En resumen, los objetivos son producir modelos que expliquen la experiencia del cliente y permitan predecir a qué segmento pertenece cada cliente según sus calificaciones.

8. Criterios de rendimiento de los modelos

Los criterios para evaluar los modelos de clustering y análisis factorial incluirán tanto medidas cuantitativas como la interpretabilidad de los resultados. Para el clustering, se considerarán índices como la silueta promedio o la varianza explicada entre clusters, así como la estabilidad de los grupos al variar parámetros (número de clusters) o realizar validación cruzada interna. Los segmentos resultantes deben ser coherentes y accionables: por ejemplo, cada cluster debe tener un perfil demográfico o de satisfacción distinto. En el caso del análisis factorial, se evaluará la varianza total explicada por los factores extraídos (se buscará que los primeros factores representen la mayor parte de la variabilidad de los datos) , y la coherencia interna (por ejemplo, índices KMO o pruebas de esfericidad de Bartlett, según la normalidad de los datos). Desde la perspectiva del negocio, los criterios de éxito técnico incluyen que los factores y clusters generados faciliten la comprensión del mercado objetivo y permitan derivar estrategias concretas. En línea con CRISP-DM, también se definirá quién evaluará el cumplimiento de estos criterios (el equipo de análisis junto con gerentes de marketing) , de manera que los resultados cumplan tanto con objetivos comerciales como con solidez estadística. En última instancia, se buscará que los modelos generen insights claros (por ejemplo, segmentos de clientes diferenciados por niveles de satisfacción) que puedan ser validados y aplicados en las decisiones del restaurante.

9. Plan del proyecto

Fase Actividades principales Duración estimada Responsable(s)
1. Recolección y exploración - Consolidar base de encuestas
- Verificar calidad y estructura de datos
- Análisis exploratorio (EDA)
1–2 semanas Analista de datos
2. Preparación de datos - Normalización/escalado de variables
- Codificación de variables categóricas
- Análisis factorial exploratorio (EFA)
1–2 semanas Analista de datos
3. Modelado – Clustering - Aplicar K-means / jerárquico
- Probar distintos k (n° de clusters)
- Evaluar con silueta, varianza, interpretabilidad
2 semanas Analista de datos
4. Evaluación de resultados - Interpretar factores y segmentos
- Validar coherencia con stakeholders
- Ajustar modelos si es necesario
1 semana Analista de datos + Gerente/Marketing
5. Implementación y comunicación - Construir perfiles de clientes
- Recomendaciones estratégicas
- Preparar informe ejecutivo y presentación
1–2 semanas Analista + Equipo de negocio
6. Revisión y seguimiento - Monitorear métricas clave (satisfacción, recomendación, ingresos)
- Refinar modelos con nuevos datos
Continuo Gerente + Analista (según avance)

Fase 2. Comprensión de los datos 📊

En esta segunda fase nos enfocaremos en tratar las 4 etapas que nos enuncia la guia ModelerCRISPDM.pdf:

  1. Recolección inicial de los datos

  2. Descripción de los datos

  3. Exploración de los datos

  4. Verificación de la calidad de los datos

1. Recolección inicial de los datos

Se nos proporcionó una base de datos .csv

image.png

Por consiguiente, se asume que la posibilidad de adquirir nuevos datos es inexistente

2. Descripción de los datos

Variable Tipo de Dato Descripción Valores/Ejemplo
genero Categórica Género del encuestado. Masculino, Femenino
nse Ordinal Nivel socioeconómico (estrato). Alto, Medio, Bajo
edad Entero Edad del encuestado. 18, 25, 40
promos Escala (1 a 10) Calificación de la calidad de las promociones. 1, 5, 10
servicio Escala (1 a 10) Calificación del servicio al cliente. 1, 7, 9
particip Escala (1 a 10) Calificación de la participación del restaurante en actividades comunitarias. 2, 6, 10
ubicacio Escala (1 a 10) Calificación de la ubicación de los restaurantes. 3, 8, 10
domicilios Escala (1 a 10) Calificación del servicio de domicilios. 4, 7, 10
rapidez Escala (1 a 10) Calificación de la rapidez y agilidad del servicio. 5, 8, 10
horarios Escala (1 a 10) Calificación de los horarios de atención. 2, 6, 9
mobiliario Escala (1 a 10) Calificación del mobiliario del lugar (mesas, ambiente). 3, 7, 10
recomienda Escala (1 a 10) Recomendacion de familiares y amigos 3, 5, 9

3. Exploración de los datos

image.png

Path analysis. Si bien no hay una variable objetivo, es interesante analizar cómo afectan las diferentes variables al fenónemo que queremos entender.

4. Verificación de la calidad de los datos

image.png

Haciendo una visualización muy poco ortodoxa de la base de datos, se aprecian variables escalares y variables categoricas; por lo tanto, se tiene que tratar los datos para darle el formato correcto para el análisis.

Fase 3: Preparación de los datos ⬆️

Para esta fase seguiremos la siguiente ruta de preparación de datos:

  1. Cargue de datos
  2. Designación de la tipología de las variables
  3. Selección de los datos
  4. Depuración de los datos

Cargue de datos

#Instalación de librerías
install.packages("tidyverse")
library(tidyverse)
#Instalación de cluster y factorextra
install.packages("cluster")
install.packages("factoextra")
library(cluster)
library(factoextra)
install.packages("reshape2")
library(reshape2)
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.3.0
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.1.0     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

also installing the dependencies ‘rbibutils’, ‘Deriv’, ‘microbenchmark’, ‘Rdpack’, ‘doBy’, ‘SparseM’, ‘MatrixModels’, ‘minqa’, ‘nloptr’, ‘reformulas’, ‘RcppEigen’, ‘lazyeval’, ‘carData’, ‘Formula’, ‘pbkrtest’, ‘quantreg’, ‘lme4’, ‘crosstalk’, ‘estimability’, ‘mvtnorm’, ‘numDeriv’, ‘corrplot’, ‘viridis’, ‘car’, ‘DT’, ‘ellipse’, ‘emmeans’, ‘flashClust’, ‘leaps’, ‘multcompView’, ‘scatterplot3d’, ‘ggsci’, ‘cowplot’, ‘ggsignif’, ‘gridExtra’, ‘polynom’, ‘rstatix’, ‘plyr’, ‘abind’, ‘dendextend’, ‘FactoMineR’, ‘ggpubr’, ‘reshape2’, ‘ggrepel’


Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)


Attaching package: ‘reshape2’


The following object is masked from ‘package:tidyr’:

    smiths


#carga la tabla de datos en el entorno de R
df<-read.csv("/content/comidasrapidas.csv")
#Previsualización del archivo de datos (las seis primeras filas)
head(df)
A data.frame: 6 × 12
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedad
<chr><chr><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 9718
2HombreAlto 138 234 8 6825
3HombreAlto 159 234 810524
4HombreMedio188 238 7 6821
5Mujer Medio159 234 810519
6Mujer Alto 178103710 9736

Tipología de las variables

#Conversión de las variables a factores
df$genero<-as.factor(df$genero)
df$nse<-as.factor(df$nse)
summary(df)
    genero      nse         promos          servicio         particip     
 Hombre:50   Alto :32   Min.   : 1.000   Min.   : 3.000   Min.   : 5.000  
 Mujer :54   Bajo :54   1st Qu.: 2.000   1st Qu.: 5.000   1st Qu.: 8.000  
             Medio:18   Median : 8.000   Median : 7.500   Median : 8.000  
                        Mean   : 6.365   Mean   : 7.385   Mean   : 8.327  
                        3rd Qu.: 9.000   3rd Qu.: 9.000   3rd Qu.: 9.000  
                        Max.   :10.000   Max.   :10.000   Max.   :10.000  
    ubicació        domicilios        rapidez         horarios     
 Min.   : 2.000   Min.   : 1.000   Min.   : 4.00   Min.   : 5.000  
 1st Qu.: 4.000   1st Qu.: 4.000   1st Qu.: 6.75   1st Qu.: 8.000  
 Median : 7.000   Median : 7.000   Median : 9.00   Median : 9.000  
 Mean   : 6.808   Mean   : 6.827   Mean   : 8.01   Mean   : 8.615  
 3rd Qu.: 9.250   3rd Qu.: 9.250   3rd Qu.: 9.00   3rd Qu.:10.000  
 Max.   :10.000   Max.   :10.000   Max.   :10.00   Max.   :10.000  
   moviliario       recomend           edad      
 Min.   : 0.00   Min.   : 5.000   Min.   :18.00  
 1st Qu.: 2.00   1st Qu.: 7.000   1st Qu.:33.00  
 Median : 8.00   Median : 9.000   Median :47.00  
 Mean   : 6.50   Mean   : 8.404   Mean   :45.39  
 3rd Qu.: 9.25   3rd Qu.:10.000   3rd Qu.:55.00  
 Max.   :10.00   Max.   :10.000   Max.   :72.00  

Selección de los datos

#Omisión de variables no escalares: vamos a separar de la base de modelado de las columnas que no se usarán en el modelo
cluster1data<-subset(df, select=c(promos,servicio,particip,ubicació,domicilios,rapidez,horarios,moviliario,recomend,edad))
#Miramos las 6 primeras filas de nuestra base
head(cluster1data)
#Mostramos estadísticas de nuestra base
summary(cluster1data)
par(mfrow=c(3,3))
# Matriz de boxplots
boxplot(cluster1data$promos)
boxplot(cluster1data$servicio)
boxplot(cluster1data$particip)
boxplot(cluster1data$ubicació)
boxplot(cluster1data$domicilios)
boxplot(cluster1data$rapidez)
boxplot(cluster1data$horarios)
boxplot(cluster1data$moviliario)
boxplot(cluster1data$recomend)
boxplot(cluster1data$edad)
A data.frame: 6 × 10
promosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedad
<int><int><int><int><int><int><int><int><int><int>
1178103710 9718
2138 234 8 6825
3159 234 810524
4188 238 7 6821
5159 234 810519
6178103710 9736
     promos          servicio         particip         ubicació     
 Min.   : 1.000   Min.   : 3.000   Min.   : 5.000   Min.   : 2.000  
 1st Qu.: 2.000   1st Qu.: 5.000   1st Qu.: 8.000   1st Qu.: 4.000  
 Median : 8.000   Median : 7.500   Median : 8.000   Median : 7.000  
 Mean   : 6.365   Mean   : 7.385   Mean   : 8.327   Mean   : 6.808  
 3rd Qu.: 9.000   3rd Qu.: 9.000   3rd Qu.: 9.000   3rd Qu.: 9.250  
 Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000  
   domicilios        rapidez         horarios        moviliario   
 Min.   : 1.000   Min.   : 4.00   Min.   : 5.000   Min.   : 0.00  
 1st Qu.: 4.000   1st Qu.: 6.75   1st Qu.: 8.000   1st Qu.: 2.00  
 Median : 7.000   Median : 9.00   Median : 9.000   Median : 8.00  
 Mean   : 6.827   Mean   : 8.01   Mean   : 8.615   Mean   : 6.50  
 3rd Qu.: 9.250   3rd Qu.: 9.00   3rd Qu.:10.000   3rd Qu.: 9.25  
 Max.   :10.000   Max.   :10.00   Max.   :10.000   Max.   :10.00  
    recomend           edad      
 Min.   : 5.000   Min.   :18.00  
 1st Qu.: 7.000   1st Qu.:33.00  
 Median : 9.000   Median :47.00  
 Mean   : 8.404   Mean   :45.39  
 3rd Qu.:10.000   3rd Qu.:55.00  
 Max.   :10.000   Max.   :72.00  
No description has been provided for this image
No description has been provided for this image

Depuración de los datos

#Descarte de valores nulos: sobre la base filtrada
cluster1data<-na.omit(cluster1data)

Transformación de los datos

#Pasamos la base a valores estandarizados
cluster2data<-scale(cluster1data)
summary(cluster2data)
head(cluster2data)
boxplot.matrix(cluster2data) #funciona porque es una matriz resultante del scale
     promos           servicio           particip          ubicació       
 Min.   :-1.5340   Min.   :-1.95026   Min.   :-2.7859   Min.   :-1.64466  
 1st Qu.:-1.2481   1st Qu.:-1.06067   1st Qu.:-0.2738   1st Qu.:-0.96048  
 Median : 0.4673   Median : 0.05132   Median :-0.2738   Median : 0.06579  
 Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.00000  
 3rd Qu.: 0.7532   3rd Qu.: 0.71852   3rd Qu.: 0.5636   3rd Qu.: 0.83549  
 Max.   : 1.0391   Max.   : 1.16331   Max.   : 1.4010   Max.   : 1.09205  
   domicilios          rapidez           horarios         moviliario     
 Min.   :-1.98575   Min.   :-2.1783   Min.   :-2.9134   Min.   :-1.8688  
 1st Qu.:-0.96338   1st Qu.:-0.6843   1st Qu.:-0.4959   1st Qu.:-1.2938  
 Median : 0.05898   Median : 0.5380   Median : 0.3099   Median : 0.4313  
 Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000  
 3rd Qu.: 0.82576   3rd Qu.: 0.5380   3rd Qu.: 1.1158   3rd Qu.: 0.7907  
 Max.   : 1.08135   Max.   : 1.0813   Max.   : 1.1158   Max.   : 1.0063  
    recomend            edad        
 Min.   :-2.3449   Min.   :-1.8769  
 1st Qu.:-0.9671   1st Qu.:-0.8492  
 Median : 0.4107   Median : 0.1100  
 Mean   : 0.0000   Mean   : 0.0000  
 3rd Qu.: 1.0996   3rd Qu.: 0.6581  
 Max.   : 1.0996   Max.   : 1.8229  
A matrix: 6 × 10 of type dbl
promosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedad
1-1.533961-0.1710751-0.2737638 1.092054-1.304172-0.548488898 1.1157711 0.7187860-0.9670964-1.8769432
2-1.533961-1.9502560-0.2737638-1.644659-1.304172-2.178284481-0.4958983-0.1437572-0.2782058-1.3973312
3-1.533961-1.0606655 0.5636314-1.644659-1.304172-2.178284481-0.4958983 1.0063004-2.3448776-1.4658472
4-1.533961 0.2737201-0.2737638-1.644659-1.304172-0.005223704-1.3017330-0.1437572-0.2782058-1.6713952
5-1.533961-1.0606655 0.5636314-1.644659-1.304172-2.178284481-0.4958983 1.0063004-2.3448776-1.8084272
6-1.533961-0.1710751-0.2737638 1.092054-1.304172-0.548488898 1.1157711 0.7187860-0.9670964-0.6436551
No description has been provided for this image

Fase 4.1: Modelado 🧠

Paso 1: determinar número de clústers (silueta de cohesión)

#Cálculo de las distancias
distancia1 <- get_dist(cluster2data)
fviz_dist(distancia1, gradient = list(low = "#00AFBB", mid = "white", high = "#FC4E07"))
No description has been provided for this image

Paso 2: Crear diagrama de sedimentación

Usaremos las librerías factoextra y cluster para la construcción del modelo, cuyo primer paso es el diagrama de sedimentación. Este diagrama se utilizará para determinar el número de grupos óptimo, a partir de la medida denominada "distancia"

#Diagrama de sedimentación para Kmeans: búsqueda de grupos óptimos
kmopt<-fviz_nbclust(cluster2data,FUNcluster = kmeans, k.max=15)
kmopt
No description has been provided for this image

Al tener un average silhouette width menor a 0,3 tenemos que ser cuidadosos con los resultados que nos arroja este cluster, puesto a que esto nos indica que el nivel de cohesión no es ni siquiera aceptable

Modelo 1A

Identificación modelo 1A

Modelo por el método de K-medias

En esta etapa se define la estructura del modelo de clustering. Primero, se seleccionaron las variables relacionadas con la experiencia del cliente (como servicio, promociones, rapidez, etc.) y se estandarizaron para que todas tengan la misma escala.

Luego, se buscó el número óptimo de clusters (k). Para esto se uso el gráfico de sedimentación

El objetivo fue encontrar el valor de k que genere grupos con diferencias claras en la percepción del servicio, útiles para tomar decisiones.

Con esto se identificó la configuración más adecuada para segmentar a los clientes según su experiencia.

Estimación modelo 1A

#Se construye el cluster usando el método kmeans
clusterkm <- kmeans(x = cluster2data, centers = 2)
clusterkm
K-means clustering with 2 clusters of sizes 64, 40

Cluster means:
     promos   servicio   particip   ubicació domicilios    rapidez    horarios
1  0.744301  0.4544182  0.1972710  0.6003007  0.7086109  0.2494319  0.08329541
2 -1.190882 -0.7270691 -0.3156336 -0.9604811 -1.1337774 -0.3990910 -0.13327266
   moviliario   recomend       edad
1 -0.01347724  0.1092951  0.1175148
2  0.02156358 -0.1748722 -0.1880237

Clustering vector:
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
  2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
 21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
  2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
 41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
 61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
 81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
101 102 103 104 
  1   1   1   1 

Within cluster sum of squares by cluster:
[1] 425.0832 312.5558
 (between_SS / total_SS =  28.4 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
[6] "betweenss"    "size"         "iter"         "ifault"      

Diagnóstico modelo 1A

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 37.5% El eje Y tiene la Dim2 con un peso de 19.5%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=57%

Esto significa que el análisis clasifica adecuadamente a un 57% de los datos de las respuestas.

Lo cual supone que un 43%% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object=clusterkm,data=cluster2data,ellipse.type="t",repel=TRUE)
No description has been provided for this image

Modelo 1B

Identificación modelo 1B

Modelo PAM

En esta etapa se define la estructura del modelo de clustering. Primero, se seleccionaron las variables relacionadas con la experiencia del cliente (como servicio, promociones, rapidez, etc.) y se estandarizaron para que todas tengan la misma escala.

Luego, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

A diferencia de k-medias, PAM usa medoides (observaciones reales) en lugar de promedios, lo que lo hace más robusto frente a valores atípicos.

El objetivo fue encontrar el número de grupos que mejor representa perfiles diferentes de clientes, de forma clara y útil para tomar decisiones estratégicas.

Estimación modelo 1B

#Se construye el cluster usando el método pam
clusterpam <- pam(x = cluster2data, k = 2)
clusterpam
Medoids:
   ID     promos   servicio   particip   ubicació domicilios    rapidez
18 18 -1.2480615 -1.5054608 -0.2737638 -1.3025703 -0.9633831 -1.0917541
65 65  0.7532353  0.7185154  0.5636314  0.7499647  0.7405598  0.5380415
    horarios moviliario   recomend       edad
18 0.3099364  0.4312716 -0.9670964 -0.3695911
65 0.3099364  0.7187860  0.4106848  0.1785369
Clustering vector:
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
  1   1   1   1   1   1   1   1   1   1   1   1   2   1   1   1   1   1   1   1 
 21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
  1   1   1   1   1   1   1   1   1   1   1   2   1   1   2   2   1   1   1   1 
 41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
  2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
 61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
  2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
 81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
  1   2   2   2   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
101 102 103 104 
  1   2   2   2 
Objective function:
   build     swap 
2.862459 2.672613 

Available components:
 [1] "medoids"    "id.med"     "clustering" "objective"  "isolation" 
 [6] "clusinfo"   "silinfo"    "diss"       "call"       "data"      

Diagnóstico modelo 1B

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 37.5% El eje Y tiene la Dim2 con un peso de 19.5%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=57%

Esto significa que el análisis clasifica adecuadamente a un 57% de los datos de las respuestas.

Lo cual supone que un 43%% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object = clusterpam, data = cluster2data, ellipse.type = "t",
             repel = TRUE) +
  theme_bw() +
  labs(title = "Resultados clustering con dos grupos") +
  theme(legend.position = "none")
No description has been provided for this image

Modelo 1C

Identificación modelo 1C

Modelo PAM

En esta fase se seleccionaron las variables relacionadas con la experiencia del cliente (como promociones, servicio, rapidez, etc.) y se estandarizaron para que todas estén en la misma escala.

Luego, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

Como CLARA está diseñado para trabajar con bases de datos grandes, se adapta bien cuando hay muchas observaciones. Aunque en este caso la muestra es pequeña (104), se usó CLARA por su eficiencia y estabilidad.

El objetivo fue encontrar el número de grupos que mejor representa perfiles diferentes de clientes, de forma clara y útil para tomar decisiones estratégicas.

Estimación modelo 1C

#Se construye el cluster usando el método CLARA
clusterclara <- clara(x = cluster2data, k=2)
clusterclara
Call:	 clara(x = cluster2data, k = 2) 
Medoids:
       promos   servicio   particip   ubicació domicilios    rapidez  horarios
18 -1.2480615 -1.5054608 -0.2737638 -1.3025703 -0.9633831 -1.0917541 0.3099364
64  0.7532353  0.7185154  0.5636314  0.7499647  0.7405598  0.5380415 0.3099364
   moviliario   recomend        edad
18  0.4312716 -0.9670964 -0.36959113
64  0.7187860  0.4106848 -0.02701112
Objective function:	 2.673715
Clustering vector: 	 Named int [1:104] 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 ...
 - attr(*, "names")= chr [1:104] "1" "2" "3" "4" "5" "6" "7" ...
Cluster sizes:	    	 37 67 
Best sample:
 [1] 1   2   4   5   7   8   14  16  18  19  20  22  23  36  37  38  42  45  46 
[20] 48  52  54  55  57  60  62  63  64  67  70  73  75  76  77  78  79  86  88 
[39] 89  90  94  95  97  102

Available components:
 [1] "sample"     "medoids"    "i.med"      "clustering" "objective" 
 [6] "clusinfo"   "diss"       "call"       "silinfo"    "data"      

Diagnóstico modelo 1C

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 37.5% El eje Y tiene la Dim2 con un peso de 19.5%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=57%

Esto significa que el análisis clasifica adecuadamente a un 57% de los datos de las respuestas.

Lo cual supone que un 43%% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object = clusterclara, data = cluster2data, ellipse.type = "t",
             repel = TRUE) +
  theme_bw() +
  labs(title = "Resultados clustering con dos grupos") +
  theme(legend.position = "none")
No description has been provided for this image

Modelo 1D

Identificación modelo 1D

Modelo de cluster jerárquico

En esta etapa se eligieron las variables relacionadas con la experiencia del cliente (como servicio, rapidez, promociones, etc.) y se estandarizaron para trabajar en la misma escala.

Luego se aplicó un modelo de clustering jerárquico, que no requiere definir el número de grupos desde el inicio. En su lugar, se construye un dendrograma que muestra cómo se agrupan los clientes de forma progresiva, desde los más similares hasta los más distintos.

En efecto, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

Este método es útil para descubrir la estructura natural de los datos y entender cómo se relacionan los clientes entre sí, sin necesidad de suposiciones iniciales sobre cuántos segmentos hay.

Estimación modelo 1D

# 1. Calcular matriz de distancias
ds <- dist(cluster2data, method = "euclidean")

# 2. Crear el modelo jerárquico (esto no crea grupos aún)
hc <- hclust(ds, method = "ward.D")

# 3. Visualizar el dendrograma (estructura de agrupamiento)
plot(hc)

# 4. Cortar el dendrograma en k grupos → Aquí obtienes los clusters reales
clusterjerarquico <- cutree(hc, k = 2)
No description has been provided for this image

Diagnóstico modelo 1D

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 37.5% El eje Y tiene la Dim2 con un peso de 19.5%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=57%

Esto significa que el análisis clasifica adecuadamente a un 57% de los datos de las respuestas.

Lo cual supone que un 43%% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

# Visualizar los clusters sobre componentes principales
fviz_cluster(list(data = cluster2data, cluster = clusterjerarquico))
No description has been provided for this image

Fase 5.1: Evaluación 📝

Evaluación modelo 1A

# Unimos los datos originales con los grupos asignados por k-means
datosfinales <- cbind(df, clusterkm$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[13] <- "C-kmeans"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 13
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeans
<fct><fct><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 97182
2HombreAlto 138 234 8 68252
3HombreAlto 159 234 8105242
4HombreMedio188 238 7 68212
5Mujer Medio159 234 8105192
6Mujer Alto 178103710 97362
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-kmeans", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-kmeans", FUN=mean)
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$promos
<int><dbl>
18.96875
22.20000
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$servicio
<int><dbl>
18.40625
25.75000
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$particip
<int><dbl>
18.5625
27.9500
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$ubicació
<int><dbl>
18.5625
24.0000
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$rapidez
<int><dbl>
18.46875
27.27500
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$horarios
<int><dbl>
18.71875
28.45000
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$moviliario
<int><dbl>
16.453125
26.575000
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$recomend
<int><dbl>
18.5625
28.1500
A data.frame: 2 × 2
datosfinales$"C-kmeans"datosfinales$edad
<int><dbl>
147.10938
242.65000
table(datosfinales$"C-kmeans")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-kmeans")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-kmeans")
 1  2 
64 40 
        
          1  2
  Hombre 28 22
  Mujer  36 18
       
         1  2
  Alto   2 30
  Bajo  54  0
  Medio  8 10

Resumen de Resultados del Modelo K-Medias

El análisis de segmentación realizado con el modelo de k-medias (k = 2) reveló la existencia de dos grupos bien diferenciados de clientes, con características y niveles de satisfacción claramente distintos. Esta segmentación permite comprender mejor cómo distintos tipos de clientes perciben el servicio del restaurante y brinda una base sólida para diseñar estrategias personalizadas que mejoren su experiencia y la rentabilidad general del negocio.

Cluster 1

  • Tamaño: 64 personas (mayoría).
  • Edad promedio: 47 años.
  • Nivel socioeconómico: Principalmente bajo, con algunos en medio.
  • Percepción del servicio:
    • Altas calificaciones en promociones, servicio al cliente, rapidez y ubicación.
    • Muy buena disposición a recomendar el restaurante.
  • Significado estratégico:
    • Representa una base sólida de clientes leales que valoran el servicio integral y el trato recibido.
    • Son una oportunidad para fortalecer el boca a boca y asegurar la estabilidad del negocio.
    • Aunque pertenecen a estratos bajos, su alto nivel de satisfacción indica que encuentran valor y calidad en la oferta actual.

Cluster 2

  • Tamaño: 40 personas.
  • Edad promedio: 42.6 años.
  • Nivel socioeconómico: Predominantemente alto, con presencia en nivel medio.
  • Percepción del servicio:
    • Bajas calificaciones en promociones y ubicación.
    • Evaluación aceptable en rapidez, horarios y participación comunitaria.
    • A pesar de sus críticas, mantienen una buena disposición a recomendar.
  • Significado estratégico:
    • Este grupo es más exigente y tiene expectativas más altas por su perfil socioeconómico.
    • Identifica áreas clave de mejora como las promociones personalizadas y la percepción del valor ofrecido.
    • Si no se abordan sus necesidades, existe el riesgo de pérdida de clientes potencialmente valiosos.

Conclusión general

La segmentación obtenida demuestra que no todos los clientes perciben la experiencia del restaurante de la misma manera. Mientras un grupo valora fuertemente los atributos actuales, otro exige mejoras específicas. Entender estos perfiles permite al restaurante optimizar sus recursos, dirigir acciones concretas por segmento y avanzar hacia una gestión más rentable y centrada en el cliente.

Evaluación modelo 1B

# Unimos los datos originales con los grupos asignados por PAM
datosfinales <- cbind(datosfinales, clusterpam$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[14] <- "C-pam"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 14
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pam
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 971821
2HombreAlto 138 234 8 682521
3HombreAlto 159 234 81052421
4HombreMedio188 238 7 682121
5Mujer Medio159 234 81051921
6Mujer Alto 178103710 973621
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-pam", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-pam", FUN=mean)
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$promos
<int><dbl>
12.692308
28.569231
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$servicio
<int><dbl>
15.589744
28.461538
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$particip
<int><dbl>
17.846154
28.615385
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$ubicació
<int><dbl>
13.897436
28.553846
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$rapidez
<int><dbl>
17.025641
28.600000
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$horarios
<int><dbl>
18.282051
28.815385
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$moviliario
<int><dbl>
16.205128
26.676923
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$recomend
<int><dbl>
17.897436
28.707692
A data.frame: 2 × 2
datosfinales$"C-pam"datosfinales$edad
<int><dbl>
140.87179
248.10769
table(datosfinales$"C-pam")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-pam")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-pam")
 1  2 
39 65 
        
          1  2
  Hombre 22 28
  Mujer  17 37
       
         1  2
  Alto  29  3
  Bajo   2 52
  Medio  8 10

Resumen de Resultados del Modelo PAM

El modelo de segmentación PAM (Partitioning Around Medoids) permitió identificar dos clusters de clientes con características y percepciones muy distintas frente a la experiencia en el restaurante. A diferencia de k-medias, PAM utiliza medoides, lo que le da mayor robustez frente a valores atípicos. El análisis de medias por grupo revela diferencias marcadas en variables clave como promociones, ubicación y servicio, lo que permite definir perfiles accionables para la toma de decisiones.

Cluster 1: Cliente joven, exigente y de alto nivel

  • Tamaño: 39 personas.
  • Edad promedio: 40.9 años.
  • Género: 56% hombres (22), 44% mujeres (17).
  • Nivel socioeconómico:
    • 74% alto (29 personas).
    • 21% medio, 5% bajo.
  • Percepción del servicio:
    • Promociones: Muy bajas (2.69/10).
    • Ubicación: Baja (3.90/10).
    • Servicio: Medio (5.59/10).
    • Rapidez: Buena (7.03/10).
    • Horarios: Alta (8.28/10).
    • Recomendación: Moderada (7.90/10).
  • Significado estratégico:
    • Clientes más críticos y exigentes, posiblemente con más opciones de comparación.
    • Sensibles a la ubicación y a la percepción de valor promocional.
    • Pueden abandonar fácilmente si no se ajusta la oferta a sus expectativas.

Cluster 2: Cliente mayor, satisfecho y leal

  • Tamaño: 65 personas.
  • Edad promedio: 48.1 años.
  • Género: 43% hombres (28), 57% mujeres (37).
  • Nivel socioeconómico:
    • 80% bajo (52 personas).
    • 15% medio, 5% alto.
  • Percepción del servicio:
    • Promociones: Muy altas (8.57/10).
    • Ubicación: Muy alta (8.55/10).
    • Servicio: Excelente (8.46/10).
    • Rapidez: Muy alta (8.60/10).
    • Horarios: Muy buena (8.81/10).
    • Recomendación: Muy alta (8.70/10).
  • Significado estratégico:
    • Segmento altamente satisfecho, que percibe valor y comodidad en el servicio.
    • Son fieles y propensos a recomendar, clave para el mantenimiento de una buena imagen.
    • Aunque son de estrato bajo, su satisfacción global indica alineación con la propuesta de valor del restaurante.

Conclusión general

El modelo PAM confirmó la existencia de dos perfiles claramente diferenciados:

  • Un grupo exigente, más joven y de nivel alto, que percibe debilidades en aspectos promocionales y de ubicación.
  • Un grupo satisfecho y leal, de mayor edad y estrato bajo, que valora positivamente casi todos los atributos del restaurante.

Esta segmentación ofrece oportunidades claras para la personalización de estrategias:

  • Revisar y rediseñar promociones y estrategias de valor dirigidas al Cluster 1, enfocados en clientes premium.
  • Conservar e incentivar la fidelidad del Cluster 2 mediante continuidad en el buen servicio y reconocimiento a su lealtad.

El modelo PAM refuerza la importancia de adaptar la experiencia del cliente según el perfil, mejorando tanto la satisfacción como la rentabilidad del negocio.

Evaluación modelo 1C

# Unimos los datos originales con los grupos asignados por CLARA
datosfinales <- cbind(datosfinales, clusterclara$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[15] <- "C-clara"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 15
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-clara
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 9718211
2HombreAlto 138 234 8 6825211
3HombreAlto 159 234 810524211
4HombreMedio188 238 7 6821211
5Mujer Medio159 234 810519211
6Mujer Alto 178103710 9736211
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-clara", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-clara", FUN=mean)
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$promos
<int><dbl>
12.459459
28.522388
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$servicio
<int><dbl>
15.594595
28.373134
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$particip
<int><dbl>
17.837838
28.597015
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$ubicació
<int><dbl>
13.783784
28.477612
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$rapidez
<int><dbl>
16.972973
28.582090
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$horarios
<int><dbl>
18.27027
28.80597
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$moviliario
<int><dbl>
16.108108
26.716418
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$recomend
<int><dbl>
17.891892
28.686567
A data.frame: 2 × 2
datosfinales$"C-clara"datosfinales$edad
<int><dbl>
141.18919
247.71642
table(datosfinales$"C-clara")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-clara")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-clara")
 1  2 
37 67 
        
          1  2
  Hombre 21 29
  Mujer  16 38
       
         1  2
  Alto  28  4
  Bajo   1 53
  Medio  8 10

Resumen de Resultados del Modelo CLARA

El modelo de segmentación CLARA permitió identificar dos clusters diferenciados de clientes en función de su percepción sobre la experiencia con el restaurante. Este modelo es especialmente útil para bases de datos grandes, aunque en este caso demostró ser eficiente y robusto para la muestra disponible. Los resultados revelan perfiles de clientes con diferencias marcadas en edad, nivel socioeconómico y niveles de satisfacción.

Cluster 1: Cliente joven, crítico y de alto nivel

  • Tamaño: 37 personas.
  • Edad promedio: 41.2 años.
  • Género: 57% hombres (21), 43% mujeres (16).
  • Nivel socioeconómico:
    • 76% alto (28 personas).
    • 22% medio, 2% bajo.
  • Percepción del servicio:
    • Promociones: Muy baja (2.46/10).
    • Servicio: Media-baja (5.59/10).
    • Ubicación: Baja (3.78/10).
    • Rapidez: Aceptable (6.97/10).
    • Horarios: Buena (8.27/10).
    • Recomendación: Media-alta (7.89/10).
  • Significado estratégico:
    • Grupo más exigente, especialmente sensible a promociones y ubicación.
    • Representa clientes potencialmente valiosos, pero que podrían migrar si no se mejora su experiencia.
    • Su perfil sugiere que valoran eficiencia, exclusividad y percepción de marca.

Cluster 2: Cliente mayor, satisfecho y leal

  • Tamaño: 67 personas.
  • Edad promedio: 47.7 años.
  • Género: 43% hombres (29), 57% mujeres (38).
  • Nivel socioeconómico:
    • 79% bajo (53 personas).
    • 15% medio, 6% alto.
  • Percepción del servicio:
    • Promociones: Muy altas (8.52/10).
    • Servicio: Excelente (8.37/10).
    • Ubicación: Muy alta (8.47/10).
    • Rapidez: Muy buena (8.58/10).
    • Horarios: Muy buena (8.81/10).
    • Recomendación: Muy alta (8.69/10).
  • Significado estratégico:
    • Grupo altamente satisfecho y estable.
    • Valora el servicio y la experiencia general por encima de aspectos como exclusividad o sofisticación.
    • Fuerte potencial para fidelización y promoción espontánea del restaurante.

Conclusión general

La segmentación generada por el modelo CLARA confirma la existencia de dos perfiles diferenciados:

  • El Cluster 1 representa a un grupo más joven, con alto nivel socioeconómico y expectativas más exigentes. Presenta menor satisfacción con aspectos clave como promociones y ubicación. Aunque aún dispuesto a recomendar, este grupo requiere mejoras específicas si se desea conservar su fidelidad.

  • El Cluster 2 representa a clientes mayores y de estrato bajo que expresan altos niveles de satisfacción y recomendación. Constituyen una base sólida para mantener una imagen positiva del restaurante y deben ser atendidos con constancia y reconocimiento.

Recomendaciones estratégicas

  • Cluster 1:

    • Rediseñar las promociones para hacerlas más atractivas y segmentadas según nivel socioeconómico.
    • Reforzar la percepción de valor y exclusividad.
    • Considerar estrategias de geolocalización o delivery para compensar críticas sobre ubicación.
  • Cluster 2:

    • Mantener los estándares actuales de servicio y atención.
    • Recompensar la lealtad con programas sencillos y cercanos.
    • Usar este segmento como embajadores de marca a través del boca a boca.

La segmentación por CLARA aporta claridad y enfoque, permitiendo diseñar acciones diferenciadas para optimizar la satisfacción, la fidelización y, en consecuencia, la rentabilidad del negocio.

Evaluación modelo 1D

# Unimos el cluster jerárquico al data frame
datosfinales <- cbind(datosfinales, clusterjerarquico)

# Renombramos la nueva columna que indica el cluster jerárquico
colnames(datosfinales)[ncol(datosfinales)] <- "C-jerarquico"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 16
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-claraC-jerarquico
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 97182111
2HombreAlto 138 234 8 68252111
3HombreAlto 159 234 8105242111
4HombreMedio188 238 7 68212111
5Mujer Medio159 234 8105192111
6Mujer Alto 178103710 97362111
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-jerarquico", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-jerarquico", FUN=mean)
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$promos
<int><dbl>
12.463415
28.904762
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$servicio
<int><dbl>
15.95122
28.31746
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$particip
<int><dbl>
17.926829
28.587302
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$ubicació
<int><dbl>
14.121951
28.555556
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$rapidez
<int><dbl>
17.121951
28.587302
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$horarios
<int><dbl>
18.292683
28.825397
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$moviliario
<int><dbl>
16.634146
26.412698
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$recomend
<int><dbl>
18.024390
28.650794
A data.frame: 2 × 2
datosfinales$"C-jerarquico"datosfinales$edad
<int><dbl>
142.12195
247.52381
table(datosfinales$"C-jerarquico")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-jerarquico")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-jerarquico")
 1  2 
41 63 
        
          1  2
  Hombre 23 27
  Mujer  18 36
       
         1  2
  Alto  29  3
  Bajo   1 53
  Medio 11  7

Resumen de Resultados del Modelo de Clustering Jerárquico

El modelo de clustering jerárquico permitió agrupar a los clientes del restaurante en dos segmentos claramente diferenciados con base en sus percepciones de la experiencia del servicio. A través del dendrograma y el análisis de corte, se definieron dos clusters óptimos que presentan diferencias significativas en edad, nivel socioeconómico y satisfacción general. Este tipo de segmentación es útil para comprender cómo varían las expectativas y evaluaciones según el perfil del cliente.

Cluster 1: Cliente joven, exigente y de nivel alto

  • Tamaño: 41 personas.
  • Edad promedio: 42.1 años.
  • Género: 56% hombres (23), 44% mujeres (18).
  • Nivel socioeconómico:
    • 71% alto (29 personas).
    • 27% medio (11 personas), 2% bajo (1 persona).
  • Percepción del servicio:
    • Promociones: Muy bajas (2.46/10).
    • Servicio: Bajo-medio (5.95/10).
    • Ubicación: Baja (4.12/10).
    • Rapidez: Aceptable (7.12/10).
    • Horarios: Buena (8.29/10).
    • Recomendación: Moderada (8.02/10).
  • Significado estratégico:
    • Grupo crítico y demandante, especialmente sensible al valor percibido en promociones y localización.
    • Mayor riesgo de pérdida si no se abordan sus expectativas elevadas.
    • Representa un segmento importante desde el punto de vista económico, aunque menos fidelizado.

Cluster 2: Cliente mayor, satisfecho y leal

  • Tamaño: 63 personas.
  • Edad promedio: 47.5 años.
  • Género: 43% hombres (27), 57% mujeres (36).
  • Nivel socioeconómico:
    • 84% bajo (53 personas).
    • 11% medio (7 personas), 5% alto (3 personas).
  • Percepción del servicio:
    • Promociones: Muy altas (8.90/10).
    • Servicio: Excelente (8.31/10).
    • Ubicación: Muy buena (8.56/10).
    • Rapidez: Muy alta (8.59/10).
    • Horarios: Muy buena (8.83/10).
    • Recomendación: Muy alta (8.65/10).
  • Significado estratégico:
    • Clientes altamente satisfechos y fieles.
    • Constituyen la base principal del negocio por su satisfacción general y alta recomendación.
    • Aunque de estrato bajo, su experiencia positiva los convierte en promotores naturales del restaurante.

Conclusión general

La segmentación jerárquica muestra con claridad dos perfiles de clientes:

  • Un Cluster 1 joven y de mayor poder adquisitivo, que muestra insatisfacción en aspectos clave como promociones y ubicación, lo que sugiere oportunidades de mejora para evitar su deserción.
  • Un Cluster 2 de clientes mayores y de nivel bajo, muy satisfechos con el servicio general, que aportan estabilidad, fidelización y promoción positiva del negocio.

Recomendaciones estratégicas

  • Para el Cluster 1:

    • Rediseñar promociones orientadas al valor y exclusividad.
    • Mejorar la percepción de ubicación (por ejemplo, delivery eficiente, comunicación sobre accesibilidad).
    • Enfatizar calidad del servicio y beneficios premium para retener a este grupo exigente.
  • Para el Cluster 2:

    • Mantener los estándares actuales de servicio, rapidez y atención.
    • Implementar programas de fidelización sencillos.
    • Promover el boca a boca mediante campañas que reconozcan su lealtad (por ejemplo, descuentos por referidos).

La segmentación jerárquica demuestra ser una herramienta útil para entender cómo adaptar la oferta del restaurante según los distintos perfiles de clientes y así maximizar la rentabilidad y satisfacción.

Fase 6.1: Distribución 🚛

Planeación de la distribución

Para asegurar que los hallazgos y el modelo predictivo sean accesibles y comprensibles para los tomadores de decisiones, se definió una estrategia de distribución enfocada en:

  • Audiencia objetivo: Equipo directivo y de cartera.
  • Objetivo: Que puedan entender facilmente los resultados de nuestro estudio.
  • Formato de entrega:
    • Notebook en Google Colab con visualizaciones.
  • Lenguaje: Técnico pero con explicaciones interpretables para usuarios no estadísticos.
  • Medio de acceso: Compartido vía enlance del notebook.

Creación de medios de distribución

Se podrian usar los siguientes medios de distribución:

  • Aplicaciones con una interfaz interactiva: aplicación que incorpore el modelo hecho y que muestre los resultados de forma comprensible.
  • Notebook de colab: usar el mismo modelo en colab en caso de que los recursos sean limitados; se requeriria una persona que sepa interpretar los resultados.

Estas herramientas permitirian a los usuarios explorar y entender los resultados sin requerir conocimientos avanzados de programación o estadística.

Distribución de resultados

¿Qué?

Durante los últimos meses, cientos de clientes han pasado por nuestro restaurante dejando más que una factura: dejaron su opinión. Opiniones sobre el servicio, las promociones, los horarios, la ubicación. Opiniones que, si bien pueden parecer subjetivas, escondían una verdad profunda sobre cómo nos perciben, qué valoran y qué los hace volver o no.

A partir de estas percepciones, surgió una pregunta clave: ¿Podemos encontrar patrones en estas opiniones para entender mejor a nuestros clientes y tomar decisiones más acertadas?

Así nació este proyecto: segmentar a los clientes con base en su experiencia, con el fin de descubrir qué grupos existen, qué los diferencia y cómo debemos actuar para satisfacerlos mejor.

Y los resultados fueron reveladores: encontramos dos grandes tipos de clientes. Uno, más joven, exigente y de alto poder adquisitivo, pero menos satisfecho. El otro, mayor, fiel, y altamente satisfecho, aunque con menor capacidad económica.

¿Cómo?

Partimos de algo muy sencillo: los datos que ya teníamos. Las encuestas, las valoraciones y los perfiles de quienes visitaron el restaurante. Sin usar fórmulas complejas ni palabras difíciles, organizamos la información y usamos métodos de agrupación que, en pocas palabras, juntan a quienes piensan parecido.

Aplicamos diferentes modelos: K-medias, PAM, CLARA y Clustering Jerárquico. Aunque cada uno tiene su técnica, todos coincidieron en lo esencial: tenemos dos tipos de clientes muy distintos, y sus necesidades también lo son.

Una vez identificados, se analizaron sus características: edad, género, nivel socioeconómico y sus opiniones sobre aspectos clave del servicio. Esto nos permitió construir un retrato claro de quiénes son, cómo se sienten, y qué podríamos hacer para retenerlos o atraerlos.

¿Cuándo?

Este análisis cobra valor ahora mismo, cuando queremos crecer, fidelizar y diferenciarnos en un mercado altamente competitivo. Es útil hoy para tomar decisiones estratégicas en marketing, atención al cliente, promociones o diseño de experiencia.

Además, puede y debe usarse de forma recurrente: cada trimestre o semestre, al recolectar nuevas opiniones, para seguir afinando nuestras decisiones y anticiparnos a cambios en las percepciones de nuestros clientes.

¿Dónde?

Este modelo está pensado para aplicarse dentro del restaurante y sus canales de atención, tanto físicos como digitales. Las acciones sugeridas pueden implementarse desde el punto de venta, redes sociales, programas de fidelización, o incluso vía WhatsApp o domicilios.

Y si el negocio se expande o tiene varias sedes, este modelo se puede replicar en cada una, adaptándose al perfil de los clientes locales.

¿Para qué?

Porque un restaurante no sobrevive solo con buena comida. Sobrevive y crece cuando entiende a sus clientes.

Este proyecto no es un ejercicio académico. Es una hoja de ruta para que cada acción que tomemos esté respaldada por la realidad de quienes nos visitan. ¿Para qué?

  • Para fidelizar a los clientes leales, que ya nos valoran, y darles razones para quedarse y recomendar.

  • Para recuperar al cliente exigente, que podría irse si no ajustamos aspectos clave como las promociones, el servicio o la experiencia.

  • Para invertir con inteligencia, no desde la intuición, sino desde el conocimiento.

  • Para transformar el restaurante en un negocio centrado en el cliente, con decisiones alineadas al valor que ellos realmente perciben.

Conclusiones y Recomendaciones Estratégicas para el negocio

A veces, los números revelan verdades que la intuición no alcanza a ver. Al analizar las opiniones y valoraciones de los clientes que han pasado por nuestro restaurante, descubrimos algo que cambia por completo la forma en que deberíamos pensar el negocio: nuestros clientes no son todos iguales, ni tampoco esperan lo mismo de nosotros.

Gracias a un análisis detallado que agrupó a los clientes según sus respuestas, encontramos que existen dos segmentos muy distintos. Por un lado, hay un grupo mayoritario, compuesto principalmente por personas mayores y de estrato socioeconómico bajo. Este grupo se siente altamente satisfecho con nuestra propuesta actual. Valoran nuestras promociones, elogian el servicio, la rapidez, los horarios, e incluso nos recomiendan espontáneamente. Son personas que no necesariamente gastan más, pero que vuelven, recomiendan, y nos sostienen. Son la base leal y silenciosa del negocio.

Por otro lado, hay un segundo grupo más pequeño, pero con mayor capacidad adquisitiva. Son clientes más jóvenes, de nivel alto, que tienen expectativas mucho más elevadas. Para ellos, nuestras promociones no resultan atractivas, consideran la ubicación poco conveniente y califican de forma más baja la experiencia general. No están completamente insatisfechos, pero están menos comprometidos con la marca, y eso los convierte en un grupo con alto riesgo de abandono. Sin embargo, son también una gran oportunidad, porque si logramos conquistarlos, pueden convertirse en clientes de alto valor.

Este hallazgo tiene implicaciones profundas. Ya no se trata de seguir haciendo ajustes generales esperando mejorar la satisfacción global. Ahora sabemos exactamente quiénes son nuestros clientes, cómo se sienten y qué espera cada grupo de nosotros. Y lo más importante: podemos actuar con propósito.

Para el grupo leal y satisfecho, la recomendación es clara: mantener los estándares actuales, reforzar su fidelidad con programas simples de recompensa (como descuentos por recomendación o visitas frecuentes) y reconocer su papel como promotores del restaurante. No necesitan cambios drásticos, solo sentirse valorados y escuchados.

Para el grupo exigente, proponemos una estrategia distinta. Rediseñar las promociones para que se alineen mejor con su expectativa de valor. Pensar en experiencias más exclusivas, atención personalizada o servicios como un delivery eficiente pueden marcar la diferencia. Incluso acciones pequeñas, como mejorar la comunicación sobre accesibilidad o destacar la calidad del producto, pueden tener un gran impacto si se dirigen bien.

Pero no proponemos cambios masivos e improvisados. Lo recomendable es implementar un piloto: una acción específica para cada grupo, medible y controlada. Ver su impacto, ajustar lo necesario y luego escalar. De esta forma, convertimos este análisis en una herramienta de decisión estratégica, no solo en un estudio más.

Este tipo de conocimiento no solo mejora la experiencia del cliente: mejora el negocio. Nos permite invertir mejor, enfocar recursos donde realmente importan y construir una propuesta de valor más sólida. En lugar de seguir haciendo lo mismo para todos, podemos hacer lo justo para cada quien.

En resumen, este análisis nos ha dado una brújula. Ahora entendemos a nuestros clientes, y eso nos da una ventaja competitiva. Es momento de pasar del diagnóstico a la acción. Porque si sabemos lo que cada segmento valora, y actuamos con inteligencia, podemos fidelizar más, perder menos y crecer mejor.

EMPLEANDO MÉTODO DAISY- CONSIDERANDO VARIABLES CATEGÓRICAS

Para este modelo se asume que las etapas 1, 2 y 3 de la metodología CRISP usadas en el modelo 1 son válidas, por ende nos enfocaremos únicamente en las etapas 4, 5, 6 de CRISP (Modelado, Evaluación y la Distribución), en la parte 6 solamente nos enfocaremos en la distribución de los resultados.

Esto se hace debido a que las primeras etapas son válidas para aplicar este tipo de algoritmo.

Fase 4.2: Modelado 🧠

#Utilizando el metodo daisy
gower.dist <- daisy(df, metric = c("gower"))
d<-as.matrix(gower.dist)
#Creando gráfico de sedimentación
sedimentationmap<-fviz_nbclust(d,FUNcluster=pam,method="silhouette",k.max=15,diss=dist(d,method="manhattan"))
sedimentationmap
No description has been provided for this image

Modelo 2A

Identificación modelo 2A

Modelo por el método de K-medias

En esta etapa se define la estructura del modelo de clustering. Primero, se seleccionaron las variables relacionadas con la experiencia del cliente (como servicio, promociones, rapidez, etc.) y se estandarizaron para que todas tengan la misma escala.

Luego, se buscó el número óptimo de clusters (k). Para esto se uso el gráfico de sedimentación

El objetivo fue encontrar el valor de k que genere grupos con diferencias claras en la percepción del servicio, útiles para tomar decisiones.

Con esto se identificó la configuración más adecuada para segmentar a los clientes según su experiencia.

Estimación modelo 2A

#Se construye el cluster usando el método kmeans
clusterkm2 <- kmeans(x = d, centers = 3)
clusterkm2
K-means clustering with 3 clusters of sizes 42, 27, 35

Cluster means:
          1         2         3         4         5         6         7
1 0.3614240 0.2891870 0.3248362 0.3169312 0.3748068 0.3177732 0.2889666
2 0.4065795 0.5391110 0.5620926 0.4543700 0.6426253 0.4785959 0.6039258
3 0.4833258 0.6021479 0.6111338 0.5250000 0.5328710 0.3792693 0.5012661
          8         9        10        11        12        13        14
1 0.3356156 0.3016797 0.2664000 0.3144768 0.3264529 0.3133493 0.3172588
2 0.3853632 0.4820579 0.4780848 0.4641551 0.5374698 0.4355575 0.5695637
3 0.4639607 0.5415571 0.5279856 0.5342593 0.4336382 0.3471441 0.4652343
         15        16        17        18        19        20        21
1 0.2885556 0.2918877 0.3203016 0.2495344 0.2779001 0.2567361 0.3108219
2 0.5034494 0.4843430 0.5658979 0.4609254 0.4824731 0.5407722 0.5450360
3 0.5709464 0.5390643 0.4692797 0.5180187 0.5500028 0.4319076 0.4497471
         22        23        24        25        26        27        28
1 0.3244168 0.3080105 0.3108219 0.2508572 0.2900106 0.2764891 0.3085144
2 0.5596108 0.4415675 0.5450360 0.4190987 0.4781293 0.5185614 0.5685042
3 0.6256289 0.4913042 0.4497471 0.4791563 0.5481510 0.4271192 0.4664755
         29        30        31        32        33        34        35
1 0.3533321 0.3122533 0.2874927 0.3286554 0.3202045 0.2804968 0.3501176
2 0.4900328 0.4930621 0.4239116 0.4299277 0.5033616 0.4161041 0.3713763
3 0.3928212 0.3881034 0.4773060 0.3295232 0.4037207 0.4735582 0.4431204
         36        37        38        39        40        41        42
1 0.3725309 0.3076069 0.3957761 0.3179537 0.3242888 0.3957677 0.4131839
2 0.3714449 0.3515546 0.6162907 0.3660608 0.4873469 0.3981804 0.3203340
3 0.4417271 0.4166805 0.5177586 0.4347140 0.3853953 0.3105061 0.2329047
         43        44        45        46        47        48        49
1 0.3691069 0.4249711 0.5112597 0.4603358 0.4581606 0.4526492 0.5350340
2 0.3499522 0.3086857 0.3596663 0.1703104 0.2526835 0.1642061 0.2781158
3 0.2537248 0.2121022 0.2799411 0.2671923 0.1793263 0.2616897 0.1964147
         50        51        52        53        54        55        56
1 0.3530024 0.4779704 0.5241365 0.4586603 0.4922876 0.5179117 0.3854392
2 0.3908616 0.2942799 0.2931499 0.2345422 0.1822788 0.2785045 0.3950111
3 0.2800718 0.2198353 0.3940530 0.1631447 0.2876949 0.2022172 0.2860947
         57        58        59        60        61        62        63
1 0.4804417 0.4654505 0.4597485 0.4798585 0.4703305 0.4293252 0.4714029
2 0.2510259 0.1579761 0.2662160 0.2624943 0.1853403 0.3300020 0.2382802
3 0.1769366 0.2496879 0.3791723 0.3645377 0.2969413 0.2356450 0.1627831
         64        65        66        67        68        69        70
1 0.4677285 0.4680960 0.4642012 0.4600125 0.4396133 0.4851007 0.4700213
2 0.2294782 0.2288495 0.1463735 0.1469450 0.3299448 0.1725966 0.2418467
3 0.1542293 0.1540971 0.2415309 0.2385327 0.2397455 0.2773334 0.1693087
         71        72        73        74        75        76        77
1 0.4600125 0.4598660 0.4605169 0.4812799 0.4411565 0.4666262 0.4994158
2 0.1469450 0.2797962 0.2025034 0.1796705 0.3040989 0.2721051 0.2535408
3 0.2385327 0.3866856 0.3176946 0.2794633 0.2123998 0.1940618 0.1768484
         78        79        80        81        82        83        84
1 0.4949919 0.4579549 0.4537221 0.3988872 0.4793688 0.5620034 0.4753674
2 0.2936528 0.1852852 0.1692701 0.3186622 0.1798897 0.2177592 0.3493256
3 0.2260459 0.2746173 0.2651729 0.2217649 0.2870336 0.3087604 0.2668506
         85        86        87        88        89        90        91
1 0.4551041 0.5553897 0.5540669 0.5525237 0.4628202 0.4184597 0.5601663
2 0.2788017 0.2830884 0.2805164 0.2735433 0.4451254 0.2807956 0.2777157
3 0.3615974 0.2051008 0.2023230 0.1968556 0.3648602 0.3729441 0.2038662
         92        93        94        95        96        97        98
1 0.5491434 0.5533321 0.5165743 0.4719136 0.4793840 0.5407365 0.5201016
2 0.1918104 0.1953540 0.1675191 0.3362940 0.2642384 0.2851917 0.2506238
3 0.2846863 0.2881255 0.2616264 0.2508718 0.3434845 0.2176581 0.1743248
         99       100       101       102       103       104
1 0.5318741 0.4646133 0.4743239 0.5473650 0.5103280 0.5540963
2 0.3120779 0.4133582 0.4051783 0.3147985 0.2064309 0.1977317
3 0.2398980 0.3253628 0.4881204 0.2461413 0.2947128 0.2987428

Clustering vector:
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
 21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
  1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1 
 41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
  3   3   3   3   3   2   3   2   3   3   3   2   3   2   3   3   3   2   2   2 
 61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
  2   3   3   3   3   2   2   3   2   3   2   2   2   2   3   3   3   3   2   2 
 81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
  3   2   2   3   2   3   3   3   1   2   3   2   2   2   3   2   3   3   3   3 
101 102 103 104 
  1   3   2   2 

Within cluster sum of squares by cluster:
[1] 41.11882 15.84828 24.17193
 (between_SS / total_SS =  61.7 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
[6] "betweenss"    "size"         "iter"         "ifault"      

Diagnóstico modelo 2A

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 57,8% El eje Y tiene la Dim2 con un peso de 12,6%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=70,4%

Esto significa que el análisis clasifica adecuadamente a un 70,4% de los datos de las respuestas.

Lo cual supone que un 29,6% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object=clusterkm2,data=d,ellipse.type="t",repel=TRUE)
No description has been provided for this image

Modelo 2B

Identificación modelo 2B

Modelo PAM

En esta etapa se define la estructura del modelo de clustering. Primero, se seleccionaron las variables relacionadas con la experiencia del cliente (como servicio, promociones, rapidez, etc.) y se estandarizaron para que todas tengan la misma escala.

Luego, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

A diferencia de k-medias, PAM usa medoides (observaciones reales) en lugar de promedios, lo que lo hace más robusto frente a valores atípicos.

El objetivo fue encontrar el número de grupos que mejor representa perfiles diferentes de clientes, de forma clara y útil para tomar decisiones estratégicas.

Estimación modelo 2B

#Se construye el cluster usando el método PAM
clusterpam2<-pam(d,k=3,metric="euclidean")

Diagnóstico modelo 2B

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 57,8% El eje Y tiene la Dim2 con un peso de 12,6%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=70,4%

Esto significa que el análisis clasifica adecuadamente a un 70,4% de los datos de las respuestas.

Lo cual supone que un 29,6% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object=clusterpam2,data=d,ellipse.type="t",repel=TRUE)+theme_bw()+labs(title="Resultado análisis clúster") +theme(legend.position="none")
No description has been provided for this image

Modelo 2C

Identificación modelo 2C

Modelo PAM

En esta fase se seleccionaron las variables relacionadas con la experiencia del cliente (como promociones, servicio, rapidez, etc.) y se estandarizaron para que todas estén en la misma escala.

Luego, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

Como CLARA está diseñado para trabajar con bases de datos grandes, se adapta bien cuando hay muchas observaciones. Aunque en este caso la muestra es pequeña (104), se usó CLARA por su eficiencia y estabilidad.

El objetivo fue encontrar el número de grupos que mejor representa perfiles diferentes de clientes, de forma clara y útil para tomar decisiones estratégicas.

Estimación modelo 2C

#Se construye el cluster usando el método CLARA
clusterclara2 <- clara(x = d, k=3)
clusterclara2
Call:	 clara(x = d, k = 3) 
Medoids:
           1         2         3         4         5         6         7
10 0.2907848 0.1522046 0.1299383 0.2702822 0.3043210 0.2630071 0.2077601
51 0.5339175 0.6022817 0.5966821 0.5481371 0.5210648 0.4228064 0.4788250
71 0.3802138 0.5295304 0.5239308 0.4372906 0.6149802 0.4357694 0.5974317
           8         9        10        11        12        13        14
10 0.2179453 0.1839947 0.0000000 0.2196649 0.2731481 0.3028219 0.2812169
51 0.5055225 0.5248126 0.5167438 0.5740631 0.3559414 0.3157077 0.4275904
71 0.3518188 0.4403329 0.4230049 0.4545745 0.4905974 0.3657077 0.5375551
          15        16        17         18        19        20        21
10 0.2250992 0.1629299 0.3667659 0.06830908 0.1926918 0.1408399 0.3374449
51 0.5506393 0.5458774 0.5089727 0.52718254 0.5089727 0.4330467 0.4642196
71 0.5112213 0.4588404 0.5695547 0.42109788 0.4911596 0.5059744 0.5525794
          22        23        24        25        26        27        28
10 0.2180004 0.2055225 0.3374449 0.1470128 0.1988646 0.2936177 0.2865190
51 0.6102072 0.5162478 0.4642196 0.4392196 0.5071208 0.3469356 0.4707011
71 0.5707892 0.3656305 0.5525794 0.3331349 0.5084436 0.5087522 0.5960979
          29        30        31        32        33        34        35
10 0.4241843 0.3331349 0.1954365 0.3871473 0.3525794 0.1593254 0.3420635
51 0.4585207 0.4508047 0.4945877 0.3714837 0.4443232 0.4992174 0.4526345
71 0.4571980 0.4494819 0.3504078 0.3430004 0.4979387 0.3766424 0.3253858
          36        37        38        39        40        41        42
10 0.3883598 0.2761023 0.3972994 0.2640653 0.3435957 0.4962632 0.4715719
51 0.4884369 0.3780313 0.5070988 0.4326609 0.3231481 0.3569885 0.2489638
71 0.3272377 0.3052800 0.6343474 0.3660825 0.4541005 0.4032848 0.3014330
          43        44        45         46        47         48        49
10 0.4366953 0.4953373 0.5377315 0.47917769 0.5433752 0.45695547 0.5993386
51 0.2443342 0.2134700 0.2604938 0.19082892 0.1494709 0.20502646 0.2109899
71 0.2727293 0.2480379 0.3395944 0.07469136 0.1666667 0.09259259 0.1979387
          50        51        52        53        54        55        56
10 0.3330688 0.5167438 0.5106592 0.5183752 0.5301036 0.5623016 0.4148589
51 0.2979608 0.0000000 0.3889771 0.1269400 0.3096561 0.1566689 0.1828373
71 0.3658620 0.2198413 0.2728395 0.1262346 0.1546296 0.2146054 0.3365410
          57         58        59        60        61        62         63
10 0.5387456 0.44306658 0.5398589 0.4535714 0.5197972 0.4843034 0.52177028
51 0.1689153 0.23990300 0.4033620 0.3837412 0.2999669 0.3251213 0.15194004
71 0.1157407 0.02006173 0.2644731 0.2591380 0.1610780 0.3195657 0.09876543
           64         65         66        67        68        69        70
10 0.50325176 0.50170855 0.42917769 0.4230049 0.4889330 0.5069555 0.5236221
51 0.13342152 0.12879189 0.20132275 0.2198413 0.2772817 0.1568783 0.1235450
71 0.08641975 0.09104938 0.01851852 0.0000000 0.3365410 0.0962963 0.1407407
          71        72        73        74        75        76        77
10 0.4230049 0.4781305 0.4776455 0.4895503 0.5188713 0.4276345 0.5603505
51 0.2198413 0.3743496 0.2022597 0.2586089 0.2084546 0.2244709 0.1905203
71 0.0000000 0.3095348 0.1788911 0.1265101 0.2553682 0.1712963 0.1404321
          78         79         80        81        82        83        84
10 0.5520172 0.33349868 0.39923942 0.3707231 0.4791777 0.5746473 0.6078042
51 0.2062610 0.29700176 0.26459436 0.2670966 0.3074956 0.3529652 0.3152888
71 0.2413580 0.08950617 0.09969136 0.2615410 0.1456790 0.1516424 0.3287809
          85        86        87        88        89        90        91
10 0.4463404 0.6348325 0.6302028 0.6178571 0.5605379 0.4791005 0.6317460
51 0.4204916 0.2464837 0.2418541 0.2202491 0.3896274 0.3865851 0.2063602
71 0.2816027 0.2118276 0.2071980 0.2071980 0.4914793 0.2679784 0.2210869
          92        93         94        95        96        97        98
10 0.5437831 0.5499559 0.48668430 0.5386684 0.4932540 0.5940917 0.5607584
51 0.2943232 0.2881504 0.24031085 0.3270172 0.3525904 0.2557429 0.1724096
71 0.1331239 0.1392967 0.07602513 0.3386574 0.2297509 0.2605930 0.1439264
          99       100       101       102       103       104
10 0.5582892 0.5781305 0.4868166 0.6095238 0.3910053 0.5709436
51 0.2575948 0.3510472 0.5665234 0.2452491 0.3359899 0.3504960
71 0.2809634 0.3979608 0.4133488 0.2988646 0.1470128 0.1769511
Objective function:	 0.99502
Clustering vector: 	 Named int [1:104] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
 - attr(*, "names")= chr [1:104] "1" "2" "3" "4" "5" "6" "7" ...
Cluster sizes:	    	 40 43 21 
Best sample:
 [1] 2  4  6  7  8  10 14 20 22 30 32 33 34 35 45 46 50 51 53 56 58 61 63 64 65
[26] 67 68 70 71 72 73 75 79 80 84 87 88 89 90 91 93 94 95 96 97 99

Available components:
 [1] "sample"     "medoids"    "i.med"      "clustering" "objective" 
 [6] "clusinfo"   "diss"       "call"       "silinfo"    "data"      

Diagnóstico modelo 2C

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 57,8% El eje Y tiene la Dim2 con un peso de 12,6%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=70,4%

Esto significa que el análisis clasifica adecuadamente a un 70,4% de los datos de las respuestas.

Lo cual supone que un 29,6% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

#Diagrama de elipses para representar los clusters creados
fviz_cluster(object = clusterclara2, data = d, ellipse.type = "t",
             repel = TRUE) +
  theme_bw() +
  labs(title = "Resultados clustering con dos grupos") +
  theme(legend.position = "none")
No description has been provided for this image

Modelo 2D

Identificación modelo 2D

Modelo de cluster jerárquico

En esta etapa se eligieron las variables relacionadas con la experiencia del cliente (como servicio, rapidez, promociones, etc.) y se estandarizaron para trabajar en la misma escala.

Luego se aplicó un modelo de clustering jerárquico, que no requiere definir el número de grupos desde el inicio. En su lugar, se construye un dendrograma que muestra cómo se agrupan los clientes de forma progresiva, desde los más similares hasta los más distintos.

En efecto, se buscó el número óptimo de clusters. Para esto se uso el gráfico de sedimentación.

Este método es útil para descubrir la estructura natural de los datos y entender cómo se relacionan los clientes entre sí, sin necesidad de suposiciones iniciales sobre cuántos segmentos hay.

Estimación modelo 2D

# 1. Calcular matriz de distancias
distance <- dist(d, method = "euclidean")

# 2. Crear el modelo jerárquico (esto no crea grupos aún)
hc2 <- hclust(distance, method = "ward.D")

# 3. Visualizar el dendrograma (estructura de agrupamiento)
plot(hc2)

# 4. Cortar el dendrograma en k grupos → Aquí obtienes los clusters reales
clusterjerarquico2 <- cutree(hc2, k = 3)
No description has been provided for this image

Diagnóstico modelo 2D

Se usa para medir la calidad del análisis cluster realizado, y se obtiene con los ejes de la gráfica de elipse

El eje X tiene la Dim1 con un peso de 57,8% El eje Y tiene la Dim2 con un peso de 12,6%

Por ende, la calidad de clasificación de este cluster de Kmedias es la suma de la Dim1 + Dim 2

Dim1+Dim2=70,4%

Esto significa que el análisis clasifica adecuadamente a un 70,4% de los datos de las respuestas.

Lo cual supone que un 29,6% de las observaciones no fueron clasificadas correctamente

Nos interesaría que este análisis llegara al 100% de calidad en la clasificación, el nivel mínimo de la calidad recomendado es de al menos 60%

# Visualizar los clusters sobre componentes principales
fviz_cluster(list(data = d, cluster = clusterjerarquico2))
No description has been provided for this image

Fase 5.2: Evaluación 📝

Evaluación modelo 2A

# Unimos los datos originales con los grupos asignados por k-means
datosfinales <- cbind(datosfinales, clusterkm2$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[17] <- "C-kmeans2"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 17
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-claraC-jerarquicoC-kmeans2
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 971821111
2HombreAlto 138 234 8 682521111
3HombreAlto 159 234 81052421111
4HombreMedio188 238 7 682121111
5Mujer Medio159 234 81051921111
6Mujer Alto 178103710 973621111
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-kmeans2", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-kmeans2", FUN=mean)
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$promos
<int><dbl>
12.571429
29.185185
38.742857
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$servicio
<int><dbl>
15.857143
28.407407
38.428571
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$particip
<int><dbl>
17.857143
28.407407
38.828571
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$ubicació
<int><dbl>
14.095238
29.111111
38.285714
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$rapidez
<int><dbl>
17.238095
28.629630
38.457143
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$horarios
<int><dbl>
18.357143
28.666667
38.885714
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$moviliario
<int><dbl>
16.404762
26.296296
36.771429
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$recomend
<int><dbl>
18.047619
28.703704
38.600000
A data.frame: 3 × 2
datosfinales$"C-kmeans2"datosfinales$edad
<int><dbl>
143.11905
247.33333
346.62857
table(datosfinales$"C-kmeans2")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-kmeans2")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-kmeans2")
 1  2  3 
42 27 35 
        
          1  2  3
  Hombre 23 27  0
  Mujer  19  0 35
       
         1  2  3
  Alto  30  0  2
  Bajo   0 24 30
  Medio 12  3  3

Resumen de Resultados del Modelo K-Medias con Daisy (k = 3)

El modelo de clustering basado en K-Medias utilizando la métrica de Gower (Daisy) permitió segmentar a los clientes del restaurante en tres grupos diferenciados, combinando variables numéricas y categóricas. Esta metodología fue útil para descubrir patrones de comportamiento relevantes, lo que facilita la toma de decisiones estratégicas orientadas al cliente.

Cluster 1: Cliente joven, exigente y de nivel alto

  • Tamaño: 42 personas
  • Edad promedio: 43.1 años
  • Género: 55% hombres (23), 45% mujeres (19)
  • Nivel socioeconómico:
    • 71% alto (30 personas)
    • 29% medio (12 personas)

Percepción del servicio:

  • Promociones: 2.57 / 10
  • Servicio: 5.86 / 10
  • Ubicación: 4.09 / 10
  • Rapidez: 7.24 / 10
  • Horarios: 8.36 / 10
  • Recomendación: 8.05 / 10

Significado estratégico:
Grupo crítico, con alta capacidad adquisitiva y expectativas exigentes. Son sensibles al valor percibido y podrían abandonar el restaurante si no se mejora su experiencia.

Cluster 2: Cliente masculino, tradicional y satisfecho

  • Tamaño: 27 personas
  • Edad promedio: 47.3 años
  • Género: 100% hombres
  • Nivel socioeconómico:
    • 89% bajo (24 personas)
    • 11% medio (3 personas)

Percepción del servicio:

  • Promociones: 9.19 / 10
  • Servicio: 8.41 / 10
  • Ubicación: 9.11 / 10
  • Rapidez: 8.63 / 10
  • Horarios: 8.67 / 10
  • Recomendación: 8.70 / 10

Significado estratégico:
Clientes altamente satisfechos que valoran todos los aspectos del servicio. Representan una base leal y estable para el negocio.

Cluster 3: Cliente femenino, leal y satisfecho

  • Tamaño: 35 personas
  • Edad promedio: 46.6 años
  • Género: 100% mujeres
  • Nivel socioeconómico:
    • 86% bajo (30 personas)
    • 8% medio (3 personas)
    • 6% alto (2 personas)

Percepción del servicio:

  • Promociones: 8.74 / 10
  • Servicio: 8.43 / 10
  • Ubicación: 8.29 / 10
  • Rapidez: 8.46 / 10
  • Horarios: 8.89 / 10
  • Recomendación: 8.60 / 10

Significado estratégico:
Segmento muy leal, con calificaciones positivas en todos los aspectos. Son embajadoras ideales para fortalecer el marketing de boca a boca.

Conclusión General

La segmentación mediante este modelo reveló tres perfiles de clientes:

  1. Cluster 1: Exigente, de alto nivel y crítico con la experiencia actual.
  2. Cluster 2: Masculino, tradicional, satisfecho y leal.
  3. Cluster 3: Femenino, leal y satisfecho, con fuerte percepción positiva del servicio.

Esta segmentación permite al restaurante optimizar recursos y mejorar la experiencia de forma personalizada.

Recomendaciones Estratégicas

Para el Cluster 1

  • Diseñar promociones exclusivas con valor agregado.
  • Mejorar la percepción de ubicación (aliados logísticos, mapas interactivos).
  • Ofrecer beneficios premium y programas de fidelización exclusivos.

Para el Cluster 2

  • Mantener la calidad actual del servicio.
  • Crear promociones temáticas orientadas a hombres o familias.
  • Fortalecer la fidelización con incentivos por referidos.

Para el Cluster 3

  • Crear programas especiales dirigidos a mujeres (eventos, tarjetas de lealtad).
  • Potenciar campañas emocionales con enfoque comunitario.
  • Incentivar su papel como embajadoras con descuentos por referidos.

El modelo K-Medias con Daisy demuestra ser una herramienta poderosa para identificar perfiles de cliente y guiar decisiones estratégicas hacia una experiencia más rentable, cercana y personalizada.

Evaluación modelo 2B

# Unimos los datos originales con los grupos asignados por PAM
datosfinales <- cbind(datosfinales, clusterpam2$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[18] <- "C-pam2"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 18
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-claraC-jerarquicoC-kmeans2C-pam2
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 9718211111
2HombreAlto 138 234 8 6825211111
3HombreAlto 159 234 810524211111
4HombreMedio188 238 7 6821211111
5Mujer Medio159 234 810519211111
6Mujer Alto 178103710 9736211111
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-pam2", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-pam2", FUN=mean)
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$promos
<int><dbl>
12.179487
28.541667
39.073171
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$servicio
<int><dbl>
15.641026
27.291667
39.097561
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$particip
<int><dbl>
17.948718
27.541667
39.146341
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$ubicació
<int><dbl>
14.000000
27.083333
39.317073
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$rapidez
<int><dbl>
17.230769
28.125000
38.682927
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$horarios
<int><dbl>
18.435897
28.375000
38.926829
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$moviliario
<int><dbl>
16.512821
23.833333
38.048780
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$recomend
<int><dbl>
18.128205
27.666667
39.097561
A data.frame: 3 × 2
datosfinales$"C-pam2"datosfinales$edad
<int><dbl>
142.58974
246.70833
347.29268
table(datosfinales$"C-pam2")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-pam2")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-pam2")
 1  2  3 
39 24 41 
        
          1  2  3
  Hombre 22 10 18
  Mujer  17 14 23
       
         1  2  3
  Alto  30  2  0
  Bajo   0 13 41
  Medio  9  9  0

Resumen de Resultados del Modelo PAM con Daisy (k = 3)

El modelo PAM (Partitioning Around Medoids), aplicado con la métrica de Gower (Daisy), permitió segmentar a los clientes del restaurante en tres perfiles bien definidos, combinando variables cuantitativas y cualitativas. Esta segmentación robustece el análisis, ya que considera múltiples tipos de datos y tolera mejor los valores atípicos. El resultado es una herramienta de alto valor para el diseño de estrategias específicas que maximicen la satisfacción, fidelización y rentabilidad del negocio.

Cluster 1: Cliente joven, exigente y de alto nivel

  • Tamaño: 39 personas
  • Edad promedio: 42.6 años
  • Género: 56% hombres (22), 44% mujeres (17)
  • Nivel socioeconómico:
    • 77% alto (30 personas)
    • 23% medio (9 personas)

Percepción del servicio:

  • Promociones: 2.18 / 10
  • Servicio: 5.64 / 10
  • Ubicación: 4.00 / 10
  • Rapidez: 7.23 / 10
  • Horarios: 8.44 / 10
  • Recomendación: 8.13 / 10
  • Moviliario: 6.51 / 10

Significado estratégico:
Este grupo representa a los clientes más críticos y sofisticados. Aunque reconocen ciertos aspectos positivos, muestran insatisfacción clara con promociones y ubicación. Son altamente influenciables por la percepción de valor y podrían migrar si no se atienden sus exigencias.

Cluster 2: Cliente intermedio, masculino, y moderadamente satisfecho

  • Tamaño: 24 personas
  • Edad promedio: 46.7 años
  • Género: 42% hombres (10), 58% mujeres (14)
  • Nivel socioeconómico:
    • 54% bajo (13 personas)
    • 38% medio (9 personas)
    • 8% alto (2 personas)

Percepción del servicio:

  • Promociones: 8.54 / 10
  • Servicio: 7.29 / 10
  • Ubicación: 7.08 / 10
  • Rapidez: 8.13 / 10
  • Horarios: 8.38 / 10
  • Recomendación: 7.67 / 10
  • Moviliario: 3.83 / 10

Significado estratégico:
Clientes con una percepción generalmente positiva del servicio, pero sensibles a aspectos físicos como el mobiliario. Su fidelización es posible, aunque requiere inversión moderada en la experiencia en sala.

Cluster 3: Cliente femenino, leal y muy satisfecho

  • Tamaño: 41 personas
  • Edad promedio: 47.3 años
  • Género: 44% hombres (18), 56% mujeres (23)
  • Nivel socioeconómico:
    • 100% bajo (41 personas)

Percepción del servicio:

  • Promociones: 9.07 / 10
  • Servicio: 9.10 / 10
  • Ubicación: 9.32 / 10
  • Rapidez: 8.68 / 10
  • Horarios: 8.93 / 10
  • Recomendación: 9.10 / 10
  • Moviliario: 8.05 / 10

Significado estratégico:
Este grupo es altamente satisfecho y actúa como promotor natural del restaurante. Valoran profundamente todos los aspectos del servicio, y aunque pertenecen a estratos bajos, su fidelidad y entusiasmo representan un activo clave.

Conclusión General

El modelo PAM con Daisy identificó tres grupos diferenciados:

  1. Cluster 1: Jóvenes, exigentes y de alto nivel socioeconómico, con baja satisfacción en elementos clave como promociones y ubicación.
  2. Cluster 2: Clientes intermedios, con evaluaciones positivas, pero más susceptibles al ambiente físico.
  3. Cluster 3: Clientes muy satisfechos, de estrato bajo y alto compromiso con el restaurante.

Esta clasificación permite personalizar la propuesta de valor, mejorar la experiencia por segmento y dirigir esfuerzos donde tendrán mayor impacto.

Recomendaciones Estratégicas

Para el Cluster 1

  • Rediseñar las promociones con enfoque en exclusividad y valor.
  • Comunicar mejor los atributos de la ubicación o fortalecer el servicio a domicilio.
  • Crear servicios premium que justifiquen el precio y el estatus esperado.

Para el Cluster 2

  • Invertir en mobiliario y estética del restaurante.
  • Realizar encuestas internas para ajustar detalles operativos.
  • Ofrecer promociones en horarios específicos para mejorar percepción de valor.

Para el Cluster 3

  • Reconocer su fidelidad con campañas de referidos o beneficios por lealtad.
  • Mantener la calidad del servicio y comunicación directa con esta comunidad.
  • Usar este grupo como motor de marketing boca a boca, aprovechando su satisfacción elevada.

El modelo PAM con Daisy confirma que la personalización estratégica basada en datos es esencial para construir experiencias memorables y relaciones rentables con los distintos tipos de clientes.

Evaluación modelo 2C

# Unimos los datos originales con los grupos asignados por CLARA
datosfinales <- cbind(datosfinales, clusterclara2$cluster)

# Renombramos la nueva columna que indica el grupo
colnames(datosfinales)[19] <- "C-clara2"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 19
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-claraC-jerarquicoC-kmeans2C-pam2C-clara2
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 97182111111
2HombreAlto 138 234 8 68252111111
3HombreAlto 159 234 8105242111111
4HombreMedio188 238 7 68212111111
5Mujer Medio159 234 8105192111111
6Mujer Alto 178103710 97362111111
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-clara2", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-clara2", FUN=mean)
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$promos
<int><dbl>
12.375000
28.720930
39.142857
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$servicio
<int><dbl>
15.725000
28.255814
38.761905
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$particip
<int><dbl>
17.925000
28.441860
38.857143
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$ubicació
<int><dbl>
14.050000
28.069767
39.476190
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$rapidez
<int><dbl>
17.175000
28.348837
38.904762
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$horarios
<int><dbl>
18.350000
28.767442
38.809524
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$moviliario
<int><dbl>
16.475000
26.255814
37.047619
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$recomend
<int><dbl>
18.05000
28.44186
39.00000
A data.frame: 3 × 2
datosfinales$"C-clara2"datosfinales$edad
<int><dbl>
142.35000
247.51163
346.85714
table(datosfinales$"C-clara2")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-clara2")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-clara2")
 1  2  3 
40 43 21 
        
          1  2  3
  Hombre 23  6 21
  Mujer  17 37  0
       
         1  2  3
  Alto  30  2  0
  Bajo   0 34 20
  Medio 10  7  1

Resumen de Resultados del Modelo CLARA con Daisy (k = 3)

El modelo CLARA (Clustering Large Applications), utilizando la métrica de Gower (Daisy), permitió segmentar eficazmente a los clientes del restaurante en tres grupos bien definidos. Esta técnica es especialmente útil para bases de datos grandes con variables mixtas (numéricas y categóricas), brindando resultados representativos sin sacrificar eficiencia computacional.

Cluster 1: Cliente exigente, de alto nivel y poco satisfecho

  • Tamaño: 40 personas
  • Edad promedio: 42.4 años
  • Género: 58% hombres (23), 42% mujeres (17)
  • Nivel socioeconómico:
    • 75% alto (30 personas)
    • 25% medio (10 personas)

Percepción del servicio:

  • Promociones: 2.38 / 10
  • Servicio: 5.73 / 10
  • Participación: 7.93 / 10
  • Ubicación: 4.05 / 10
  • Rapidez: 7.18 / 10
  • Horarios: 8.35 / 10
  • Recomendación: 8.05 / 10
  • Moviliario: 6.48 / 10

Significado estratégico:
Clientes críticos y demandantes, mayoritariamente de alto nivel, con baja percepción del valor promocional y la ubicación. Representan un segmento con poder adquisitivo pero de baja fidelización si no se ajustan sus expectativas.

Cluster 2: Cliente mayor, satisfecho y predominantemente femenino

  • Tamaño: 43 personas
  • Edad promedio: 47.5 años
  • Género: 14% hombres (6), 86% mujeres (37)
  • Nivel socioeconómico:
    • 79% bajo (34 personas)
    • 16% medio (7 personas)
    • 5% alto (2 personas)

Percepción del servicio:

  • Promociones: 8.72 / 10
  • Servicio: 8.26 / 10
  • Participación: 8.44 / 10
  • Ubicación: 8.07 / 10
  • Rapidez: 8.35 / 10
  • Horarios: 8.77 / 10
  • Recomendación: 8.44 / 10
  • Moviliario: 6.26 / 10

Significado estratégico:
Clientes leales y altamente satisfechos, en su mayoría mujeres de estrato bajo. Son promotoras naturales del restaurante y constituyen la base más sólida para programas de fidelización.

Cluster 3: Cliente joven, masculino y entusiasta

  • Tamaño: 21 personas
  • Edad promedio: 46.9 años
  • Género: 100% hombres
  • Nivel socioeconómico:
    • 95% bajo (20 personas)
    • 5% medio (1 persona)

Percepción del servicio:

  • Promociones: 9.14 / 10
  • Servicio: 8.76 / 10
  • Participación: 8.86 / 10
  • Ubicación: 9.48 / 10
  • Rapidez: 8.90 / 10
  • Horarios: 8.81 / 10
  • Recomendación: 9.00 / 10
  • Moviliario: 7.05 / 10

Significado estratégico:
Clientes masculinos, muy satisfechos y altamente promotores. Aunque pertenecen a estratos bajos, tienen un fuerte nivel de afinidad y recomendación hacia el restaurante.

Conclusión General

El modelo CLARA con Daisy permitió identificar con claridad tres tipos de cliente:

  1. Cluster 1: De alto poder adquisitivo pero baja satisfacción. Oportunidad crítica para mejorar percepción de valor.
  2. Cluster 2: Mayoritariamente mujeres, satisfechas y fieles. Base sólida para mantener ingresos estables.
  3. Cluster 3: Hombres jóvenes del estrato bajo, muy satisfechos. Potencial para explotar el marketing boca a boca.

Recomendaciones Estratégicas

Para el Cluster 1

  • Mejorar las promociones con enfoque en exclusividad y experiencias diferenciadas.
  • Enfatizar ventajas logísticas y servicios complementarios (ej. parqueadero, delivery eficiente).
  • Lanzar campañas de retención con beneficios personalizados.

Para el Cluster 2

  • Mantener altos estándares de servicio.
  • Implementar programas de lealtad simples y eficaces.
  • Desarrollar estrategias de reconocimiento a clientes frecuentes.

Para el Cluster 3

  • Activar campañas de referidos y contenido en redes sociales.
  • Posicionar este grupo como embajadores del restaurante.
  • Mantener precios accesibles y enfoque en experiencia positiva.

El modelo CLARA con Daisy demuestra que incluso con recursos limitados, un restaurante puede tomar decisiones más inteligentes y rentables al comprender profundamente a sus clientes.

Evaluación modelo 2D

# Unimos el cluster jerárquico al data frame
datosfinales <- cbind(datosfinales, clusterjerarquico2)

# Renombramos la nueva columna que indica el cluster jerárquico
colnames(datosfinales)[ncol(datosfinales)] <- "C-jerarquico2"

# Mostramos las primeras filas
head(datosfinales)
A data.frame: 6 × 20
generonsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedadC-kmeansC-pamC-claraC-jerarquicoC-kmeans2C-pam2C-clara2C-jerarquico2
<fct><fct><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int><int>
1HombreMedio178103710 971821111111
2HombreAlto 138 234 8 682521111111
3HombreAlto 159 234 81052421111111
4HombreMedio188 238 7 682121111111
5Mujer Medio159 234 81051921111111
6Mujer Alto 178103710 973621111112
#Revisando características sobre variables escalares
aggregate(datosfinales$promos ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$servicio ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$particip ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$ubicació ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$rapidez ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$horarios ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$moviliario ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$recomend ~ datosfinales$"C-jerarquico2", FUN=mean)
aggregate(datosfinales$edad ~ datosfinales$"C-jerarquico2", FUN=mean)
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$promos
<int><dbl>
12.090909
27.531250
39.025641
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$servicio
<int><dbl>
15.181818
27.875000
38.846154
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$particip
<int><dbl>
18.030303
27.906250
38.923077
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$ubicació
<int><dbl>
13.606061
27.187500
39.205128
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$rapidez
<int><dbl>
17.303030
27.406250
39.102564
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$horarios
<int><dbl>
18.454545
28.250000
39.051282
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$moviliario
<int><dbl>
16.181818
24.562500
38.358974
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$recomend
<int><dbl>
17.969697
27.875000
39.205128
A data.frame: 3 × 2
datosfinales$"C-jerarquico2"datosfinales$edad
<int><dbl>
142.96970
244.71875
348.00000
table(datosfinales$"C-jerarquico2")
#Comparación del cluster con las demás variables
table(datosfinales$genero,datosfinales$"C-jerarquico2")
#Comparación del cluster con las demás variables
table(datosfinales$nse,datosfinales$"C-jerarquico2")
 1  2  3 
33 32 39 
        
          1  2  3
  Hombre 22  7 21
  Mujer  11 25 18
       
         1  2  3
  Alto  25  7  0
  Bajo   0 15 39
  Medio  8 10  0

Resumen de Resultados del Modelo de Clustering Jerárquico (k = 3)

El modelo de clustering jerárquico permitió segmentar a los clientes del restaurante en tres perfiles diferenciados, basados en sus evaluaciones del servicio, nivel socioeconómico, edad y género. Esta técnica, que no requiere definir previamente el número de grupos, permitió identificar patrones naturales en la percepción del cliente.

Cluster 1: Cliente exigente, joven y de alto nivel

  • Tamaño: 33 personas
  • Edad promedio: 42.97 años
  • Género: 67% hombres (22), 33% mujeres (11)
  • Nivel socioeconómico:
    • 76% alto (25 personas)
    • 24% medio (8 personas)

Percepción del servicio:

  • Promociones: 2.09 / 10
  • Servicio: 5.18 / 10
  • Participación: 8.03 / 10
  • Ubicación: 3.61 / 10
  • Rapidez: 7.30 / 10
  • Horarios: 8.45 / 10
  • Recomendación: 7.97 / 10
  • Moviliario: 6.18 / 10

Interpretación estratégica:
Perfil joven, con alto poder adquisitivo, pero crítica percepción sobre promociones y ubicación. Representa un grupo importante para estrategias de fidelización mediante valor agregado.

Cluster 2: Cliente mixto, moderadamente satisfecho

  • Tamaño: 32 personas
  • Edad promedio: 44.72 años
  • Género: 22% hombres (7), 78% mujeres (25)
  • Nivel socioeconómico:
    • 47% bajo (15 personas)
    • 31% medio (10 personas)
    • 22% alto (7 personas)

Percepción del servicio:

  • Promociones: 7.53 / 10
  • Servicio: 7.88 / 10
  • Participación: 7.91 / 10
  • Ubicación: 7.19 / 10
  • Rapidez: 7.41 / 10
  • Horarios: 8.25 / 10
  • Recomendación: 7.88 / 10
  • Moviliario: 4.56 / 10

Interpretación estratégica:
Grupo intermedio, con buen nivel de satisfacción general, aunque con baja calificación en infraestructura. Representa una oportunidad de mejora tangible a bajo costo (mobiliario) para incrementar la experiencia general.

Cluster 3: Cliente mayor, altamente satisfecho y de estrato bajo

  • Tamaño: 39 personas
  • Edad promedio: 48.00 años
  • Género: 54% hombres (21), 46% mujeres (18)
  • Nivel socioeconómico:
    • 100% bajo (39 personas)

Percepción del servicio:

  • Promociones: 9.03 / 10
  • Servicio: 8.85 / 10
  • Participación: 8.92 / 10
  • Ubicación: 9.21 / 10
  • Rapidez: 9.10 / 10
  • Horarios: 9.05 / 10
  • Recomendación: 9.21 / 10
  • Moviliario: 8.36 / 10

Interpretación estratégica:
Clientes muy satisfechos, constantes y leales. A pesar de su bajo poder adquisitivo, son promotores activos del restaurante. Constituyen un pilar clave para la estabilidad del negocio.

Conclusión General

El modelo jerárquico de 3 clusters revela tres segmentos estratégicamente valiosos:

  1. Cluster 1: Exigente, joven y de alto nivel. Tiene potencial económico, pero necesita mejoras en percepción de valor.
  2. Cluster 2: Grupo intermedio, satisfecho pero sensible a mejoras en infraestructura física.
  3. Cluster 3: Base leal y satisfecha, con potencial de convertirse en embajadores del restaurante.

Recomendaciones Estratégicas

Para el Cluster 1

  • Implementar promociones exclusivas y programas VIP.
  • Fortalecer la percepción de ubicación con mejoras logísticas (señalización, alianzas con apps de transporte, comunicación).
  • Enfocar campañas en diferenciación del servicio.

Para el Cluster 2

  • Realizar inversiones puntuales en mobiliario y comodidad.
  • Potenciar el vínculo emocional con la marca para incrementar lealtad.
  • Incluir encuestas cortas post-visita para refinar la oferta.

Para el Cluster 3

  • Mantener altos estándares de servicio.
  • Promover campañas de referidos, dado su alto nivel de recomendación.
  • Diseñar programas de fidelización sencillos y accesibles.

Este modelo demuestra cómo el análisis de datos permite identificar necesidades concretas y diseñar estrategias diferenciadas para cada tipo de cliente, optimizando la rentabilidad y fortaleciendo la relación con el consumidor.

Fase 6.2: Distribución 🚛

¿Qué?

Durante los últimos meses, más de 100 personas dejaron algo más valioso que su consumo en nuestro restaurante: dejaron su percepción. Opiniones sobre promociones, rapidez, servicio, ubicación, horarios, recomendación y hasta el mobiliario. Opiniones que, en apariencia dispersas, escondían una verdad poderosa: nuestros clientes no son todos iguales.

Detrás de cada calificación había un perfil, una expectativa, una historia de consumo diferente. Entonces surgió una pregunta esencial para el futuro del negocio: ¿Podemos identificar patrones en estas percepciones para entender mejor a nuestros clientes, optimizar recursos y tomar decisiones estratégicas más efectivas?

Así nació este proyecto de segmentación: identificar los distintos tipos de clientes según cómo viven su experiencia con nosotros. Y los hallazgos fueron más que reveladores: no tenemos un solo cliente típico, sino al menos tres grupos distintos, cada uno con motivaciones y niveles de satisfacción únicos. Desde los más exigentes hasta los más leales, cada uno representa una oportunidad… o un riesgo.

¿Cómo?

A partir de los datos reales de nuestros clientes –sus edades, niveles socioeconómicos, géneros y valoraciones detalladas sobre el servicio– aplicamos cuatro modelos de segmentación: K-Medias, PAM, CLARA y Clustering Jerárquico, todos bajo la misma métrica robusta y confiable (Gower, o Daisy), que permite analizar simultáneamente variables numéricas y cualitativas.

Cada modelo confirmó la existencia de tres grupos bien definidos:

  • Un primer grupo, joven, de alto nivel adquisitivo, exigente, pero poco satisfecho. Califican mal promociones, ubicación y servicio, aunque valoran los horarios y rapidez.

  • Un segundo grupo, de nivel socioeconómico bajo o medio, satisfecho, leal, y con percepciones positivas en casi todos los aspectos del restaurante. Sienten afinidad emocional con la marca.

  • Un tercer grupo, intermedio, con opiniones variadas pero sensibles a detalles físicos como el mobiliario y ambientación. Son más neutrales, pero fáciles de fidelizar con pequeños cambios.

El análisis fue detallado, visual, y traducido a perfiles concretos, accionables. Lo importante aquí no es la técnica, sino lo que nos permite ver: quiénes son nuestros clientes, qué valoran, y cómo podemos conectar mejor con ellos.

¿Cuándo?

Este análisis tiene aplicación inmediata. Nos encontramos en una etapa en la que queremos crecer sin perder la esencia, fidelizar sin regalar, y diferenciarnos en un mercado saturado de opciones. Justo ahora es cuando necesitamos saber con precisión dónde enfocar nuestra estrategia, qué vale la pena mejorar y en quién conviene invertir.

Y no es una foto de un solo momento: esta herramienta se puede usar de forma recurrente cada trimestre o semestre, integrándola a las encuestas de satisfacción o interacciones en canales digitales. Así, nuestra inteligencia comercial evoluciona con el cliente.

¿Dónde?

Las decisiones que surgen de este modelo pueden aplicarse en múltiples frentes:

  • En el punto de venta físico, ajustando ambientación, promociones visibles y atención personalizada.

  • En canales digitales, diseñando campañas segmentadas por perfil (jóvenes exigentes vs clientes leales).

  • En programas de fidelización, con recompensas distintas según el valor del cliente.

Incluso en alianzas estratégicas, como acuerdos con apps de transporte para mejorar la percepción de ubicación, o beneficios exclusivos para referidos.

Si el negocio crece o se expande a otras sedes, esta metodología puede replicarse fácilmente, adaptándose a cada contexto local.

¿Para qué?

Porque un restaurante rentable no es el que vende más, sino el que entiende mejor a su cliente.

Este proyecto no es solo analítica, es una brújula estratégica. Nos dice dónde estamos perdiendo valor, dónde lo estamos ganando, y qué debemos hacer para crecer con inteligencia.

  • Para fidelizar a quienes ya nos valoran y convertirlos en embajadores de marca.

  • Para recuperar a quienes podrían abandonarnos si no mejoramos detalles clave.

  • Para invertir mejor, reduciendo el desperdicio de recursos en acciones genéricas que no conectan.

  • Para construir un negocio más sólido, rentable y alineado con lo que realmente importa a nuestros clientes.

Y para ti, como dueño, esto significa una ventaja competitiva medible: clientes más satisfechos, ingresos más estables, decisiones basadas en evidencia, y una marca que evoluciona con inteligencia. En resumen: menos riesgo, más retorno, y un crecimiento sostenible.

Conclusiones, recomendaciones y resultados

A simple vista, todos los clientes pueden parecer iguales: comen, pagan y se van. Pero cuando escuchamos sus opiniones y analizamos cómo perciben nuestro servicio, descubrimos que no todos vienen por las mismas razones ni esperan lo mismo. A partir de sus respuestas, agrupamos a nuestros comensales en tres grandes tipos. Cada grupo tiene características únicas, distintas formas de valorar su experiencia y diferentes necesidades. Esta información es oro puro para cualquier negocio que quiera crecer cuidando a sus clientes más importantes.

Entre estas personas pudimos identificar 3 grupos:

  • Primer grupo: exigentes, jóvenes y con alto poder adquisitivo. Estas personas tienen una visión crítica del restaurante. Valoran los horarios y la rapidez, pero son muy duros al calificar nuestras promociones y la ubicación del local. Su edad promedio ronda los 42 años y la mayoría pertenece a estratos altos. Aunque podrían convertirse en excelentes clientes por su capacidad de consumo, también son los más propensos a irse si no reciben un servicio a la altura de sus expectativas.

  • Segundo grupo: clientes mixtos, satisfechos pero sensibles al ambiente. Este grupo tiene un nivel de satisfacción general bueno, especialmente en atención, rapidez y horarios. Sin embargo, su percepción de la comodidad del lugar (el mobiliario) es baja. Son personas que probablemente regresen, pero podrían sentirse más conectadas si se hicieran pequeños cambios físicos que mejoren su experiencia. Aquí hay hombres y mujeres de distintas edades y estratos.

  • Tercer grupo: clientes mayores, fieles y muy satisfechos. Este es el segmento más agradecido. Califican todo muy bien: atención, promociones, rapidez, ubicación, horarios y hasta el mobiliario. Aunque en su mayoría pertenecen a estratos bajos, su nivel de recomendación y fidelidad es altísimo. Son nuestros mejores promotores: vuelven con frecuencia, nos recomiendan y se sienten a gusto en el restaurante.

Con base en lo anterior le recomendamos al negocio lo siguiente:

  • Escuchar más activamente a cada segmento. Implementar encuestas breves después de la visita, segmentadas por perfil, ayudará a monitorear cambios en la percepción.

  • Personalizar la comunicación. Usar mensajes distintos según el tipo de cliente: exclusividad para los exigentes, reconocimiento para los fieles, y novedades para los intermedios.

  • Medir impacto. Evaluar regularmente si las mejoras aplicadas (como nuevas promociones o ajustes en mobiliario) generan cambios positivos en la percepción de los clientes.

Con base en esto, podemos recomendar una serie de tareas estratégicas:

  • Para el cliente exigente: Rediseñar las promociones con beneficios exclusivos. No se trata de descuentos, sino de experiencias: un menú especial, una atención prioritaria o un pequeño detalle que haga la diferencia. Además, reforzar la logística (como alianzas con aplicaciones de transporte o delivery rápido) puede mejorar su percepción de la ubicación. Este grupo debe sentir que venir a nuestro restaurante es un privilegio.

  • Para el cliente mixto: Invertir en mejorar el mobiliario o pequeños aspectos del entorno como iluminación, música ambiental o disposición de mesas. Son detalles que elevan la experiencia sin implicar grandes gastos. También se pueden crear promociones temáticas en horarios específicos para reforzar el vínculo.

  • Para el cliente fiel y satisfecho: No hay que dar por sentada su lealtad. Al contrario, es momento de premiarla: programas de referidos, reconocimiento a clientes frecuentes o pequeños obsequios de agradecimiento pueden fortalecer aún más el vínculo. Este grupo es clave para mantener ingresos estables y para generar recomendaciones espontáneas y creíbles.

Estos hallazgos no son solo números: son historias que nos cuentan cómo nos ven, qué valoran y qué esperan de nosotros. Comprender a nuestros clientes desde esta perspectiva nos permite tomar decisiones más inteligentes, menos basadas en intuición y más apoyadas en evidencia real. Es momento de actuar con estrategia, con empatía y con un enfoque claro: hacer que cada cliente, sin importar su perfil, quiera volver una y otra vez.

ANÁLISIS FACTORIAL PARA IDENTIFICAR SEGMENTOS CLAVE

Para este modelo se asume que las etapas 1, 2 y 3 de la metodología CRISP usadas en el modelo 1 son válidas, por ende nos enfocaremos únicamente en las etapas 4, 5, 6 de CRISP (Modelado, Evaluación y la Distribución)

Esto se hace debido a que las primeras etapas son válidas para aplicar este tipo de algoritmo.

#Instalación de librerías para análisis factorial
install.packages("psych")
install.packages("polycor")
install.packages("ggcorrplot")
library(psych)
library(polycor)
library(ggcorrplot)
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

also installing the dependencies ‘mnormt’, ‘GPArotation’


Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

also installing the dependency ‘admisc’


Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)


Attaching package: ‘psych’


The following objects are masked from ‘package:ggplot2’:

    %+%, alpha



Attaching package: ‘polycor’


The following object is masked from ‘package:psych’:

    polyserial


Fase 4.3: Modelado 🧠

En esta etapa se seleccionaron las variables que miden la experiencia del cliente (como promociones, rapidez, servicio, mobiliario, etc.) para reducirlas a un conjunto más pequeño de factores latentes que resuman la información.

Antes de aplicar el modelo, se verificó que los datos cumplieran con los requisitos básicos usando:

  • La prueba de esfericidad de Bartlett, para confirmar que las variables están correlacionadas.

  • El índice KMO, que indica si los datos son adecuados para un análisis factorial.

Luego, se determinó el número óptimo de factores observando:

  • El porcentaje de varianza explicada, buscando que los primeros factores expliquen la mayor parte de la información.

  • El gráfico de sedimentación (scree plot), para ver dónde la ganancia de información se estabiliza.

El objetivo fue encontrar un conjunto reducido de dimensiones (por ejemplo, “calidad del servicio” o “comodidad del lugar”) que expliquen la percepción del cliente y sirvan como base para análisis posteriores, como clustering.

Modelo 3A

Correlaciones policóricas

Se usan para validar que las variables que se están empleando en el análisis sean de la misma procedencia, es decir, midan o evaluen el mismo fenómeno.

#hetcor(items)$correlations
ggcorrplot(hetcor(df)$correlations,type="lower",hc.order=T)
No description has been provided for this image

Se evidencia que la variable género es poco correlacionado, sin embargo la mantendremos para este modelo. El modelo 3B se hará sin ella

Prueba de esfericidad de Bartlett

Esta prueba mide la correlación general entre todas las variables y determina si son suficientes para poder hacer el análisis factorial.

Es una prueba de hipótesis

H0:las variables no están correlacionadas H1:las variables si están correlacionadas

Obtendremos el p-valor, y compararemos con un nivel de error alfa del %

  • p-valor<alfa --> Rechazar H0 -- > Las variables están correlacionadas, podemos pasar al análisis factorial

  • p-valor>alfa --> No Rechazar H0 --> Las variables no están correlacionadas, detener el análisis

#Prueba de Bartlett
cortest.bartlett(hetcor(df)$correlations)
Warning message in cortest.bartlett(hetcor(df)$correlations):
“n not specified, 100 used”
$chisq
554.459209968079
$p.value
2.53773201476352e-78
$df
66

Prueba KMO (Kaiser - Meyer - Ohlin)

Esta prueba se usa para evaluar la calidad general de los datos.

La prueba KMO se mide de 0 a 1.

  • 0 - 0.49: calidad de datos inaceptable
  • 0.5 - 0.59: calidad de datos miserable
  • 0.6 - 0.69: calidad de datos mediocre
  • 0.7 - 0.79: calidad de datos estándar
  • 0.8 - 0.89: calidad de datos meritoria
  • 0.9 - 1: calidad de datos maravillosa

El valor aceptable de KMO es mayor a 0.7

#Se realiza prueba KMO
KMO(hetcor(df)$correlations)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = hetcor(df)$correlations)
Overall MSA =  0.67
MSA for each item = 
    genero        nse     promos   servicio   particip   ubicació domicilios 
      0.25       0.67       0.70       0.65       0.50       0.83       0.65 
   rapidez   horarios moviliario   recomend       edad 
      0.73       0.58       0.75       0.68       0.68 

Aqui vemos como efectivamente la variable género se encuentra muy poco relacionada con el resto de variables

Determinación del número de componentes: Diagrama de sedimentación

Usaremos este diagrama para determinar el número óptimo de componentes a generar.

#Se hace el diagrama de sedimentación
scree(hetcor(df)$correlations)
No description has been provided for this image

La gráfica nos muestra que el número de componentes óptimo es de 4. Esto se infiere a partir de que buscamos que las componentes sean independientes entre si, lo cual sucede cuando el eigenvalue de estas componentes sea aproximadamente igual a uno.

No obstante, se puede intentar también el análisis usando cuatro o tres componentes, por sus cercanía con el valor de eigenvalue=1

Cálculo de las puntuaciones factoriales

Las puntuaciones factoriales son los valores de varianza extraida de cada variable, y su manera de correlacionarse con cada componente.

#Puntuaciones factoriales
matcor1<-hetcor(df)$correlations
mf1<-fa(matcor1,nfactors=4)
mf1
Loading required namespace: GPArotation

Factor Analysis using method =  minres
Call: fa(r = matcor1, nfactors = 4)
Standardized loadings (pattern matrix) based upon correlation matrix
             MR1   MR2   MR4   MR3    h2    u2 com
genero      0.10  0.17 -0.08 -0.02 0.038 0.962 2.2
nse         0.04 -0.01  0.79 -0.14 0.636 0.364 1.1
promos      0.88  0.05  0.14 -0.10 0.887 0.113 1.1
servicio    0.25  0.00  0.54  0.36 0.742 0.258 2.2
particip    0.17 -0.02 -0.11  0.72 0.576 0.424 1.2
ubicació    0.67  0.06  0.17  0.21 0.745 0.255 1.4
domicilios  0.98  0.01 -0.07  0.06 0.939 0.061 1.0
rapidez     0.16  0.84 -0.04 -0.13 0.744 0.256 1.1
horarios   -0.10  0.66  0.00  0.09 0.441 0.559 1.1
moviliario -0.29  0.29  0.17  0.44 0.334 0.666 2.9
recomend   -0.06  0.73  0.03  0.11 0.561 0.439 1.1
edad        0.12  0.31 -0.05 -0.20 0.128 0.872 2.1

                       MR1  MR2  MR4  MR3
SS loadings           2.59 1.93 1.18 1.08
Proportion Var        0.22 0.16 0.10 0.09
Cumulative Var        0.22 0.38 0.47 0.56
Proportion Explained  0.38 0.28 0.17 0.16
Cumulative Proportion 0.38 0.67 0.84 1.00

 With factor correlations of 
     MR1  MR2  MR4  MR3
MR1 1.00 0.24 0.48 0.25
MR2 0.24 1.00 0.16 0.18
MR4 0.48 0.16 1.00 0.18
MR3 0.25 0.18 0.18 1.00

Mean item complexity =  1.5
Test of the hypothesis that 4 factors are sufficient.

df null model =  66  with the objective function =  5.89
df of  the model are 24  and the objective function was  0.46 

The root mean square of the residuals (RMSR) is  0.03 
The df corrected root mean square of the residuals is  0.05 

Fit based upon off diagonal values = 0.99
Measures of factor score adequacy             
                                                   MR1  MR2  MR4  MR3
Correlation of (regression) scores with factors   0.98 0.91 0.88 0.85
Multiple R square of scores with factors          0.97 0.84 0.78 0.73
Minimum correlation of possible factor scores     0.93 0.67 0.56 0.46

Modelo 3B

Prueba de esfericidad de Bartlett

Esta prueba mide la correlación general entre todas las variables y determina si son suficientes para poder hacer el análisis factorial.

Es una prueba de hipótesis

H0:las variables no están correlacionadas H1:las variables si están correlacionadas

Obtendremos el p-valor, y compararemos con un nivel de error alfa del %

  • p-valor<alfa --> Rechazar H0 -- > Las variables están correlacionadas, podemos pasar al análisis factorial

  • p-valor>alfa --> No Rechazar H0 --> Las variables no están correlacionadas, detener el análisis

#Omisión de variables con poca correlación
df_correlacionados<-select(df,c(-genero) )
head(df_correlacionados)
A data.frame: 6 × 11
nsepromosservicioparticipubicaciódomiciliosrapidezhorariosmoviliariorecomendedad
<fct><int><int><int><int><int><int><int><int><int><int>
1Medio178103710 9718
2Alto 138 234 8 6825
3Alto 159 234 810524
4Medio188 238 7 6821
5Medio159 234 810519
6Alto 178103710 9736
#Prueba de Bartlett
cortest.bartlett(hetcor(df_correlacionados)$correlations)
Warning message in cortest.bartlett(hetcor(df_correlacionados)$correlations):
“n not specified, 100 used”
$chisq
538.850558382517
$p.value
1.32490890511717e-80
$df
55

Prueba KMO (Kaiser - Meyer - Ohlin)

Esta prueba se usa para evaluar la calidad general de los datos.

La prueba KMO se mide de 0 a 1.

  • 0 - 0.49: calidad de datos inaceptable
  • 0.5 - 0.59: calidad de datos miserable
  • 0.6 - 0.69: calidad de datos mediocre
  • 0.7 - 0.79: calidad de datos estándar
  • 0.8 - 0.89: calidad de datos meritoria
  • 0.9 - 1: calidad de datos maravillosa

El valor aceptable de KMO es mayor a 0.7

#Se realiza la prueba KMO
KMO(hetcor(df_correlacionados)$correlations)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = hetcor(df_correlacionados)$correlations)
Overall MSA =  0.71
MSA for each item = 
       nse     promos   servicio   particip   ubicació domicilios    rapidez 
      0.69       0.71       0.69       0.53       0.87       0.69       0.73 
  horarios moviliario   recomend       edad 
      0.66       0.75       0.68       0.74 

Como se puede apreciar, el valor global de KMO fue 0.71, lo que indica que esta base tiene una calidad de datos estándar y se puede usar para el análisis factorial.

Determinación del número de componentes: Diagrama de sedimentación

Usaremos este diagrama para determinar el número óptimo de componentes a generar.

#Se realiza el diagrama de sedimentación
scree(hetcor(df_correlacionados)$correlations)
No description has been provided for this image

La gráfica nos muestra que el número de componentes óptimo es de 3. Esto se infiere a partir de que buscamos que las componentes sean independientes entre si, lo cual sucede cuando el eigenvalue de estas componentes sea aproximadamente igual a uno.

No obstante, se puede intentar también el análisis usando cuatro o tres componentes, por sus cercanía con el valor de eigenvalue=1

Cálculo de las puntuaciones factoriales

Las puntuaciones factoriales son los valores de varianza extraida de cada variable, y su manera de correlacionarse con cada componente.

#Puntuaciones factoriales
matcor2<-hetcor(df_correlacionados)$correlations
mf2<-fa(matcor2,nfactors=3)
mf2
Factor Analysis using method =  minres
Call: fa(r = matcor2, nfactors = 3)
Standardized loadings (pattern matrix) based upon correlation matrix
             MR1   MR2   MR3   h2    u2 com
nse         0.48 -0.04  0.05 0.23 0.775 1.0
promos      0.96  0.05 -0.17 0.92 0.076 1.1
servicio    0.66 -0.06  0.42 0.68 0.323 1.7
particip    0.23 -0.01  0.50 0.34 0.663 1.4
ubicació    0.82  0.04  0.16 0.76 0.236 1.1
domicilios  0.90  0.02 -0.04 0.81 0.195 1.0
rapidez     0.10  0.88 -0.11 0.82 0.184 1.1
horarios   -0.09  0.63  0.14 0.42 0.582 1.1
moviliario -0.12  0.25  0.56 0.39 0.613 1.5
recomend   -0.03  0.70  0.18 0.55 0.451 1.1
edad        0.06  0.31 -0.19 0.12 0.877 1.7

                       MR1  MR2  MR3
SS loadings           3.20 1.87 0.95
Proportion Var        0.29 0.17 0.09
Cumulative Var        0.29 0.46 0.55
Proportion Explained  0.53 0.31 0.16
Cumulative Proportion 0.53 0.84 1.00

 With factor correlations of 
     MR1  MR2  MR3
MR1 1.00 0.26 0.16
MR2 0.26 1.00 0.14
MR3 0.16 0.14 1.00

Mean item complexity =  1.3
Test of the hypothesis that 3 factors are sufficient.

df null model =  55  with the objective function =  5.7
df of  the model are 25  and the objective function was  0.69 

The root mean square of the residuals (RMSR) is  0.04 
The df corrected root mean square of the residuals is  0.07 

Fit based upon off diagonal values = 0.98
Measures of factor score adequacy             
                                                   MR1  MR2  MR3
Correlation of (regression) scores with factors   0.98 0.93 0.83
Multiple R square of scores with factors          0.95 0.86 0.70
Minimum correlation of possible factor scores     0.91 0.73 0.39

Fase 5.3: Evaluación 📝

Evaluación modelo 3A

#Elaboramos el diagrama del análisis factorial
fa.diagram(mf1)
No description has been provided for this image

Varianza Explicada por Factor: Modelo 3A

image.png

MR1 y MR2 explican el 66% de la varianza total, siendo las dimensiones más relevantes.

Segmentaciones Identificadas (Factores)

MR1: Factor Promocional y Logístico

  • Variables con alta carga:
    • domicilios → 1.00
    • promos → 0.90
    • ubicació → 0.87
    • rapidez → 0.80
  • Interpretación: Agrupa elementos relacionados con logística, conveniencia y beneficios. Es la dimensión más importante para los clientes.

MR2: Factor Experiencial

  • Variables destacadas:
    • recomend → 0.73
    • horarios → 0.60
    • edad → 0.31
  • Interpretación: Representa la importancia de recomendaciones, disponibilidad y perfil etario.

MR4: Factor Sociodemográfico

  • Variables:
    • genero → 0.17
    • nse → 0.04
  • Interpretación: Factor más débil, pero útil para segmentar por características demográficas (sexo y nivel socioeconómico).

MR3: Factor de Participación y Atención

  • Variables importantes:
    • servicio → 0.94
    • particip → 0.78
    • mobiliario → 0.17
  • Interpretación: Relacionado con la interacción directa con el espacio físico y la calidad de atención.

Variables Más Significativas

  • domicilios: 1.00 en MR1 → altamente determinante
  • promos: 0.90 en MR1
  • servicio: 0.94 en MR3
  • particip: 0.78 en MR3
  • recomend, rapidez, ubicació: Todas con valores ≥ 0.70

Recomendaciones Estratégicas

  1. Priorizar servicios a domicilio y promociones, especialmente para usuarios sensibles a la logística.
  2. Invertir en la experiencia del cliente: atención, servicio, participación y mobiliario son clave.
  3. Segmentar la comunicación según edad y hábitos de recomendación.
  4. Usar datos demográficos (sexo, NSE) como filtros secundarios para personalización.
  5. Diseñar estrategias específicas por segmento identificado (MR1-MR4).

Evaluación modelo 3B

#Elaboramos el diagrama del análisis factorial
fa.diagram(mf2)
No description has been provided for this image

Análisis Factorial: Modelo 3B

image.png

MR1 y MR2 explican el 84% de la varianza total, siendo las dimensiones más influyentes.

Segmentaciones Identificadas (Factores)

MR1: Factor de Conveniencia y Servicio

  • Variables con alta carga:
    • promos → 0.96
    • domicilios → 0.90
    • ubicació → 0.82
    • servicio → 0.66
    • nse → 0.48
  • Interpretación: Segmento que valora altamente promociones, acceso, domicilios y servicio, junto con el perfil socioeconómico. Este es el factor más fuerte y determinante.

MR2: Factor de Rapidez y Recomendación

  • Variables destacadas:
    • rapidez → 0.90
    • recomend → 0.70
    • horarios → 0.63
  • Interpretación: Segmento enfocado en eficiencia en el tiempo y validación social (recomendaciones y horarios). Segundo más importante.

MR3: Factor de Experiencia en el Lugar

  • Variables importantes:
    • mobiliario → 0.61
    • particip → 0.50
  • Interpretación: Relacionado con la experiencia física del cliente, comodidad y participación activa. Es el factor más débil, pero relevante para el diseño de espacios.

Variables Más Significativas

  • promos: 0.96 (MR1) → Altamente discriminante
  • domicilios: 0.90 (MR1)
  • rapidez: 0.90 (MR2)
  • ubicació: 0.82 (MR1)
  • recomend, servicio, horarios: todas con cargas ≥ 0.63

Recomendaciones Estratégicas

  1. Fortalecer promociones y domicilios, clave para la mayoría de los clientes.
  2. Optimizar rapidez del servicio y visibilidad de las recomendaciones (MR2).
  3. Diseñar entornos agradables y participativos, especialmente para segmentos sensibles al mobiliario y experiencia en el lugar.
  4. Segregar campañas según factores:
    • MR1 → conveniencia y logística
    • MR2 → velocidad y reputación
    • MR3 → ambiente y diseño
  5. Aprovechar el NSE como variable de filtro adicional para personalizar ofertas.

Fase 6.3: Distribución 🚛

¿Qué?

Se realizó un análisis factorial exploratorio sobre los resultados de una encuesta aplicada a los clientes del restaurante. Esta encuesta evaluaba 10 aspectos clave del servicio y la experiencia del consumidor, como la atención del personal, la rapidez en la atención, las promociones, la ubicación, los tiempos de espera, el mobiliario, entre otros. El objetivo fue reducir esta información a un conjunto más simple de variables latentes que resumieran de forma clara los principales elementos que explican la satisfacción del cliente.

¿Cómo?

Se aplicó una técnica estadística conocida como análisis factorial con método de extracción de componentes principales y rotación Varimax. Esta metodología permitió identificar agrupaciones de variables que se comportan de forma similar, revelando patrones ocultos en las respuestas. Para asegurar la validez del análisis, se evaluó la adecuación de los datos con medidas como el índice KMO y la prueba de esfericidad de Bartlett. Posteriormente, se determinaron los factores más relevantes según el criterio de eigenvalores mayores a 1 y la proporción de varianza explicada.

¿Dónde?

El estudio se llevó a cabo en un restaurante local, donde se aplicó la encuesta directamente a los clientes que asistieron durante un periodo de observación reciente. Este trabajo se enmarca dentro de un ejercicio de mejora del servicio al cliente y toma de decisiones basada en datos dentro del mismo restaurante.

¿Cuándo?

El análisis se realizó una vez se consolidaron las encuestas aplicadas durante las últimas semanas, en el marco de un estudio más amplio orientado a entender el perfil de los clientes y cómo mejorar su experiencia. La recolección de datos y el procesamiento estadístico se hicieron en una fase inicial del estudio de segmentación de mercado.

¿Para qué?

El propósito de este análisis fue identificar los componentes esenciales que estructuran la percepción del cliente frente al servicio del restaurante. Al agrupar variables relacionadas, se facilitaron los análisis posteriores de segmentación, al reducir la complejidad de los datos y enfocarse en los elementos que realmente diferencian a los clientes. En últimas, este trabajo busca orientar acciones estratégicas que mejoren la atención, fidelicen clientes y optimicen los recursos, ajustando las decisiones comerciales a lo que los clientes realmente valoran.

Conclusiones y Recomendaciones Estratégicas para el Negocio

A veces, entender al cliente no requiere más encuestas, sino mejor interpretación. Al analizar cuidadosamente las respuestas y percepciones de quienes nos visitan, descubrimos un mapa más claro de nuestras audiencias. Este análisis revela que nuestros clientes no solo nos evalúan, sino que lo hacen desde necesidades distintas. No todos esperan lo mismo de nuestro negocio, y eso es una gran oportunidad.

Gracias a un análisis profundo de los datos, encontramos tres tipos de clientes bien diferenciados. Cada uno valora cosas diferentes, y si entendemos esas diferencias, podemos servirles mejor, fidelizarlos más y hacer crecer el negocio con decisiones más inteligentes.

  • Primer segmento: Los que valoran la conveniencia y el servicio Este es el grupo más grande y más satisfecho. Son clientes que valoran muchísimo nuestras promociones, la facilidad para pedir a domicilio, la buena ubicación y el trato del personal. También influyen factores como el nivel socioeconómico, pero más allá de eso, lo que los mueve es la sensación de que les hacemos la vida más fácil. Para este grupo, estamos haciendo muchas cosas bien. Nos recomiendan, regresan y son nuestra base más fiel. Son sensibles a los beneficios concretos, así que cualquier esfuerzo por mantener promociones claras, garantizar un servicio rápido, y asegurar una experiencia sin fricciones, será recompensado con lealtad. Aquí no hay que reinventar la rueda: hay que seguir puliendo lo que ya funciona.

  • Segundo segmento: Los que buscan rapidez y reputación Este grupo también es importante. No son necesariamente los más frecuentes, pero sí son exigentes. Valoran que el servicio sea ágil, sin tiempos de espera innecesarios, y le dan gran peso a las recomendaciones de otros y a la percepción general de la marca. La confianza para ellos se construye con eficiencia y buena reputación. Aquí hay una oportunidad clara: mejorar la velocidad del servicio y visibilizar nuestras recomendaciones. Mostrar reseñas, destacar buenos comentarios, e incluso capacitar al personal para agilizar procesos en horas pico puede marcar una diferencia real para este grupo. Ellos no quieren solo un producto, quieren certeza.

  • Tercer segmento: Los que priorizan la experiencia física Aunque más pequeño, este grupo tiene voz. Son quienes se fijan en el mobiliario, en el ambiente, en cómo se sienten dentro del local. No son los más frecuentes, pero sí los que más notan si algo está fuera de lugar. Valoran participar, sentirse parte de algo, y tener una experiencia cómoda y estética.Para ellos, las recomendaciones van en otra dirección. Diseñar un ambiente más cuidado, cómodo y participativo, puede ayudar a elevar su percepción. No se trata de una remodelación completa, pero sí de detalles que comunican atención: desde una silla cómoda hasta un cartel bien diseñado.

La estrategia es clara: no se trata de cambiar todo para todos, sino de hacer lo justo para cada segmento.

  • Para los leales y satisfechos (conveniencia y servicio): continuar con las promociones efectivas, garantizar calidad constante en domicilios y trato amable. Recompensar su lealtad con detalles simples, como descuentos por visitas frecuentes o pequeños beneficios por recomendación.

  • Para los exigentes (rapidez y reputación): invertir en procesos para acelerar el servicio en momentos clave y trabajar en la visibilidad social del negocio (testimonios, reseñas, reconocimiento de marca). Aquí, la confianza lo es todo.

  • Para los detallistas (experiencia física): cuidar el ambiente. No necesitas grandes cambios, pero sí demostrar que los detalles importan. Un entorno más cómodo o visualmente más agradable puede convertir una visita casual en una experiencia memorable.

Y lo más importante: no implementemos todo de golpe. Probemos primero con acciones piloto, una para cada segmento, midamos resultados y luego decidimos si escalar. Así, convertimos este diagnóstico en una herramienta de crecimiento real, no en un simple informe.

Los dueños del restaurante felices porque mi análisis les ayudó a entender la experiencia de sus clientes

image.png

Respuesta a las preguntas

https://docs.google.com/document/d/1XglSyv_eAOBQZsazcKTCVo0ksCywLCYbxNf5sJR5wPc/edit?usp=sharing