source('functions.R')12 Análisis de Correspondencia Múltiples
Todo lo anterior queda sustituido por el uso de esta función.
# 1. Simulación de 25 encuestados (ID_Sujeto) y 4 variables categóricas
set.seed(2026) # Fijamos semilla para reproducibilidad
datos_consumo <- data.frame(
ID_Sujeto = paste0("Sujeto_", 1:25),
Generacion = sample(c("Z", "Millennial", "X", "Boomer"), 25, replace = TRUE),
Canal = sample(c("Online", "Fisico", "Hibrido"), 25, replace = TRUE),
Fidelidad = sample(c("Alta", "Media", "Baja"), 25, replace = TRUE),
Dispositivo = sample(c("Movil", "PC", "Tablet"), 25, replace = TRUE),
stringsAsFactors = FALSE
)
# Inducimos algunas asociaciones lógicas para que el mapa muestre patrones claros
datos_consumo$Canal[datos_consumo$Generacion %in% c("Z", "Millennial")] <- "Online"
datos_consumo$Dispositivo[datos_consumo$Generacion == "Z"] <- "Movil"
datos_consumo$Canal[datos_consumo$Generacion == "Boomer"] <- "Fisico"
datos_consumo$Dispositivo[datos_consumo$Generacion == "Boomer"] <- "PC"
# 2. Aplicación de etiquetas de variable (Metadatos tipo SPSS)
datos_consumo <- apply_labels(datos_consumo,
Generacion = "Cohorte Generacional del Encuestado",
Canal = "Canal Principal de Compra",
Fidelidad = "Nivel de Fidelidad a la Marca",
Dispositivo= "Dispositivo Principal de Navegación"
)
# 3. Llamada al motor MCA
bw8mca(
df = datos_consumo,
vars = c("Generacion", "Canal", "Fidelidad", "Dispositivo"),
weight_var = NULL,
id_var = "ID_Sujeto",
nd = 2, # Extraemos las 2 primeras dimensiones
map_type = "symmetric", # Coordenadas principales para comparar todo con todo
mass_scale = c(FALSE, TRUE), # Escalamos visualmente las categorías según su N
contrib_type = c("none", "none"),
arrows_opt = c(FALSE, FALSE),
publish = TRUE
)