Unidad 6 - Taller 13: el mapa de los socios
Taller práctico evaluable · Semana 13 · 06278-ECO
1 Instrucciones generales
Cómo funciona este taller
- Es individual y evaluable, y se desarrolla en el tiempo restante de la clase (⏱️ diseñado para ≈ 55 minutos).
- Se resuelve sin la guía del profesor: todo está en este documento, en la práctica y en la teoría. Es el mismo pipeline de la práctica, con otro negocio y un paso extra: auditar una segmentación ajena antes de construir la tuya.
- El entregable es tu script:
apellido_nombre_taller13.R, con los análisis como comentarios (##). - ⚠️ Regla de oro doble: (1) el script corre completo con Source, sin errores; (2) toda cifra citada sale de código presente en el script.
- 🌱 Semillas:
set.seed(13)en la línea inmediatamente anterior a cadakmeans()(ynstart = 25siempre) — sin eso, tus grupos no son reproducibles y las cifras no coinciden al calificar. - 📤 Entrega: sube el
.Ra Intu antes de terminar la clase.
El dato (a data/ de tu proyecto): socios_califit.csv — los 280 socios activos de CaliFit, con su comportamiento del último trimestre: id_socio, visitas_mes (visitas promedio al mes), antiguedad_meses (meses desde la afiliación), gasto_adicional_mes (pesos al mes en tienda, clases extra y parqueadero) y clases_mes (clases grupales al mes).
Distribuye tu tiempo: Punto 0 ≈ 5 min · Punto 1 ≈ 12 min · Punto 2 ≈ 12 min · Punto 3 ≈ 14 min · Punto 4 ≈ 12 min.
2 El encargo de CaliFit
🏋️ La gerente comercial de CaliFit te recibe con una carpeta: “El practicante que se fue el mes pasado nos dejó una ‘segmentación de socios’: corrió el algoritmo directo sobre la base y entregó cuatro grupos que bautizó Oro, Plata, Bronce y Cobre, según cuánto gastan en la tienda. La junta quiere lanzar campañas segmentadas el lunes usando esos grupos. Necesito dos cosas: primero, ¿me puedo fiar de esa segmentación? — audítela con criterio técnico, no con opiniones. Y segundo, si está mal hecha, entrégueme la buena: cuántos tipos de socios tenemos de verdad, cómo se llaman y qué hago con cada uno.”
Tienes las dos herramientas para este encargo: el pipeline completo de la práctica y — para la auditoría — el experimento del Momento 2.
3 Punto 0 — Proyecto y radiografía (0.5 puntos)
Crea apellido_nombre_taller13.R con encabezado, carga por ruta relativa y haz la radiografía.
## ============================================
## Taller 13 — CaliFit: el mapa de los socios
## Nombre: ______________ Código: ___________
## Fecha: ______________
## Qué hace: audita una segmentación mal construida y
## entrega la segmentación correcta con perfiles y acciones
## ============================================
## Librerías / Libraries
pacman::p_load(dplyr, ggplot2, cluster)
## Cargar datos / Load data
## Radiografía: dim, str, summary## Punto 0c — responde como comentario:
## ¿Este problema es supervisado o no supervisado (hay target)?
## ¿Qué columnas entran al clustering? ¿Por qué id_socio NO entra,
## si también es un número?4 Punto 1 — La auditoría de “Oro, Plata, Bronce y Cobre” (1.0 puntos)
- Reproduce la entrega del practicante: selecciona las 4 variables de comportamiento y corre
kmeans()concenters = 4ynstart = 25directamente sobre los datos, sin escalar (con suset.seed(13)antes — el practicante al menos era reproducible). Construye la tabla de perfilamiento de sus grupos (promedio de cada variable +n()por cluster, como en la práctica). - Calcula la desviación estándar de las 4 variables (
sapply(vars, sd)). - El veredicto (comentario, 3-4 líneas): ¿por qué los grupos del practicante son en realidad franjas de una sola variable? Apóyate en (a) y (b): busca en su tabla dos clusters que se comporten casi igual y difieran solo en gasto, y verifica si existe algún grupo que capture a los socios que casi no van (visitas ≈ 0). Cierra con una frase para la gerente: ¿se puede lanzar la campaña del lunes con estos grupos?
## Punto 1a — la segmentación del practicante (sin escalar) + perfil
## Punto 1b — las escalas de las variables
## Punto 1c — veredicto de la auditoría (comentario)5 Punto 2 — La segmentación bien hecha: escala y elección de k (1.0 puntos)
- Escala las 4 variables con
scale()y verifica (medias ≈ 0, desviaciones = 1). - El codo: calcula la WCSS para k = 1…8 (con
set.seed(13)antes del barrido) y grafícala. - La silueta: calcula la silueta promedio para k = 2…8 (calcula
dist()una sola vez, como en la práctica). - Comentario (2-3 líneas): ¿qué sugiere el codo, qué sugiere la silueta y con qué k te quedas? Si las dos señales no gritan el mismo número, di cuál usaste para desempatar.
## Punto 2a — escalar + verificación
## Punto 2b — codo (tabla y gráfico)
## Punto 2c — silueta
## Punto 2d — comentario: mi k elegido y por qué6 Punto 3 — Los segmentos y su perfil (1.25 puntos)
- Corre el
kmeans()final sobre los datos escalados con tu k elegido (set.seed(13)antes,nstart = 25) y reporta el tamaño de cada segmento. - Construye la tabla de perfilamiento con los datos originales (promedio de las 4 variables +
n()por cluster) y expórtala aoutput/perfil_segmentos.csv. - Dos gráficos de perfilamiento, exportados a
output/conggsave():- dispersión de
visitas_mesvs.gasto_adicional_mes/1000(en miles de pesos) coloreada por segmento; - boxplot de
antiguedad_mesespor segmento.
- dispersión de
- Comentario (2 líneas): ¿qué segmento no existía en la entrega del practicante y qué lo hace visible ahora?
## Punto 3a — k-means final + tamaños
## Punto 3b — tabla de perfilamiento + export
## Punto 3c — gráficos + export
## Punto 3d — comentario: el segmento que apareció7 Punto 4 — El memorando de la gerente (1.25 puntos)
Cierra el script con el memorando, como comentario y en lenguaje de negocio:
## ============================================
## MEMORANDO PARA LA GERENTE COMERCIAL — CaliFit
## ============================================
## a) El mapa (una línea por segmento): NOMBRE de negocio +
## perfil en una frase, citando al menos dos cifras de tu tabla.
## Ejemplo del formato (con otro negocio): "Leales cotidianos
## (n=5.400): compran 7.5 veces/mes con ticket de $52.000."
## Nombres tipo "Cluster 1" u "Oro/Plata" no cuentan.
##
## b) El plan del lunes (4-5 líneas): UNA acción concreta por
## segmento y cuál priorizarías esta semana con el presupuesto
## que hay, y por qué (cita cifras: tamaño del grupo, visitas,
## gasto...).
## Ojo con el segmento que casi no visita el gimnasio pero sigue
## pagando su mensualidad: ¿qué riesgo tiene "reactivarlo" con
## una campaña masiva? Di qué harías tú.
##
## c) La letra menuda (2 líneas): ¿por qué el centroide de un
## segmento NO describe a todos sus socios, y por qué las
## asignaciones no son certezas? ¿Qué recomiendas hacer antes de
## automatizar las campañas con estos grupos?8 Rúbrica de evaluación
| Punto | Qué se evalúa | Puntos |
|---|---|---|
| 0. Proyecto y radiografía | Script con encabezado; carga por ruta relativa; radiografía; el 0c identifica no-supervisado y excluye id_socio con argumento |
0.5 |
| 1. Auditoría | Reproduce al practicante sin escalar + perfil (a: 0.4); desviaciones estándar (b: 0.3); veredicto con las dos evidencias y frase a la gerente (c: 0.3) | 1.0 |
| 2. Escala y k | Escalado verificado (a: 0.2); codo con semilla (b: 0.3); silueta (c: 0.3); k elegido y justificado (d: 0.2) | 1.0 |
| 3. Segmentos y perfil | k-means final con semilla + tamaños (a: 0.3); tabla con datos originales exportada (b: 0.35); 2 gráficos exportados (c: 0.4); el segmento nuevo (d: 0.2) | 1.25 |
| 4. Memorando | Un nombre accionable con cifras por segmento (a: 0.5); plan del lunes con prioridad y el matiz del segmento dormido (b: 0.5); centroide/certezas + recomendación (c: 0.25) | 1.25 |
| Total | 5.0 |
Recordatorios que la rúbrica aplica sin piedad
- Script que no corre completo → se pierde el punto de la sección donde se rompe.
- Cifra citada sin código que la produzca → no cuenta.
kmeans()sin suset.seed(13)inmediatamente antes o sinnstart = 25→ los grupos no son reproducibles y el punto 3 se califica sobre 50%.- El clustering se corre sobre datos escalados, pero la tabla del 3b se lee en unidades originales (la gerente piensa en pesos y visitas, no en desviaciones estándar).
- Los comentarios de análisis (0c, 1c, 2d, 3d y el memorando) los redactas tú.
9 Declaración de uso de IA
Cierra tu script con este bloque diligenciado:
## ============================================
## DECLARACIÓN DE USO DE IA
## Herramienta y modelo usados: _______________ (o "No usé IA")
## Para qué la usé: ____________________________________________
## Qué verifiqué por mi cuenta: ________________________________
## ============================================Nota: la IA puede ayudarte con la sintaxis de kmeans o silhouette sin problema. Pero el veredicto de la auditoría, los nombres de los segmentos y el plan del lunes son tu juicio — que es exactamente lo que CaliFit (y esta rúbrica) están pagando.