Unidad 6 - Taller 13: el mapa de los socios

Taller práctico evaluable · Semana 13 · 06278-ECO

Autor/a

PhD. Eduard F. Martínez-González

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 cada kmeans() (y nstart = 25 siempre) — sin eso, tus grupos no son reproducibles y las cifras no coinciden al calificar.
  • 📤 Entrega: sube el .R a 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)

  1. Reproduce la entrega del practicante: selecciona las 4 variables de comportamiento y corre kmeans() con centers = 4 y nstart = 25 directamente sobre los datos, sin escalar (con su set.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).
  2. Calcula la desviación estándar de las 4 variables (sapply(vars, sd)).
  3. 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)

  1. Escala las 4 variables con scale() y verifica (medias ≈ 0, desviaciones = 1).
  2. El codo: calcula la WCSS para k = 1…8 (con set.seed(13) antes del barrido) y grafícala.
  3. La silueta: calcula la silueta promedio para k = 2…8 (calcula dist() una sola vez, como en la práctica).
  4. 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)

  1. 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.
  2. Construye la tabla de perfilamiento con los datos originales (promedio de las 4 variables + n() por cluster) y expórtala a output/perfil_segmentos.csv.
  3. Dos gráficos de perfilamiento, exportados a output/ con ggsave():
    • dispersión de visitas_mes vs. gasto_adicional_mes/1000 (en miles de pesos) coloreada por segmento;
    • boxplot de antiguedad_meses por segmento.
  4. 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

La presentación (script ordenado, comentarios en su sección, que corra con Source) se descuenta hasta -0.3 si dificulta la revisió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
Advertencia

Recordatorios que la rúbrica aplica sin piedad

  1. Script que no corre completo → se pierde el punto de la sección donde se rompe.
  2. Cifra citada sin código que la produzca → no cuenta.
  3. kmeans() sin su set.seed(13) inmediatamente antes o sin nstart = 25 → los grupos no son reproducibles y el punto 3 se califica sobre 50%.
  4. 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).
  5. 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.