1 Introducción

Este informe presenta un análisis descriptivo, exploratorio y diagnóstico del desempeño comercial y financiero de Adidas a partir de una base de datos con 9,648 registros de ventas, desagregados por distribuidor, región, estado, ciudad, producto y método de venta.

El objetivo es identificar patrones de comportamiento en ventas y rentabilidad que sirvan de insumo para recomendaciones de tipo prescriptivo dirigidas al equipo directivo de la compañía. Las variables analizadas incluyen precio por unidad, unidades vendidas, ventas totales, utilidad operativa y margen operativo.

Nota metodológica: la base de datos no contiene una variable de fecha/periodo, por lo cual no es posible calcular tasas de crecimiento temporal; este análisis se enfoca en comparaciones transversales (cross-sectional) entre segmentos.

glimpse(datos)
## Rows: 9,648
## Columns: 12
## $ distribuidor         <fct> Foot Locker, Foot Locker, Foot Locker, Foot Locke…
## $ region               <fct> Northeast, Northeast, Northeast, Northeast, North…
## $ estado               <fct> New York, New York, New York, New York, New York,…
## $ ciudad               <fct> New York, New York, New York, New York, New York,…
## $ producto             <fct> Men's Street Footwear, Men's Athletic Footwear, W…
## $ precio_unidad        <dbl> 50, 50, 40, 45, 60, 50, 50, 50, 40, 45, 60, 50, 5…
## $ unidades_vendidas    <dbl> 1200, 1000, 1000, 850, 900, 1000, 1250, 900, 950,…
## $ ventas_total         <dbl> 60000, 50000, 40000, 38250, 54000, 50000, 62500, …
## $ utilidad_operativa   <dbl> 30000.00, 15000.00, 14000.00, 13387.50, 16200.00,…
## $ margen_operativo     <dbl> 0.50, 0.30, 0.35, 0.35, 0.30, 0.25, 0.50, 0.30, 0…
## $ metodo_venta         <fct> In-store, In-store, In-store, In-store, In-store,…
## $ margen_operativo_pct <dbl> 50, 30, 35, 35, 30, 25, 50, 30, 35, 35, 30, 25, 5…
cat("Número de observaciones:", nrow(datos), "\n")
## Número de observaciones: 9648
cat("Número de variables:", ncol(datos), "\n")
## Número de variables: 12
cat("Productos distintos:", n_distinct(datos$producto), "\n")
## Productos distintos: 6
cat("Regiones distintas:", n_distinct(datos$region), "\n")
## Regiones distintas: 5
cat("Ciudades distintas:", n_distinct(datos$ciudad), "\n")
## Ciudades distintas: 52
cat("Distribuidores distintos:", n_distinct(datos$distribuidor), "\n")
## Distribuidores distintos: 6
cat("Métodos de venta:", paste(levels(datos$metodo_venta), collapse = ", "), "\n")
## Métodos de venta: In-store, Online, Outlet

2 Estadísticas descriptivas generales

resumen_gral <- datos %>%
  summarise(across(c(precio_unidad, unidades_vendidas, ventas_total,
                      utilidad_operativa, margen_operativo_pct),
                    list(Media = ~mean(.x, na.rm = TRUE),
                         Mediana = ~median(.x, na.rm = TRUE),
                         Desv_Est = ~sd(.x, na.rm = TRUE),
                         CV_pct = ~cv(.x),
                         Min = ~min(.x, na.rm = TRUE),
                         Q1 = ~quantile(.x, 0.25, na.rm = TRUE),
                         Q3 = ~quantile(.x, 0.75, na.rm = TRUE),
                         Max = ~max(.x, na.rm = TRUE)),
                    .names = "{.col}__{.fn}")) %>%
  pivot_longer(everything(), names_to = c("Variable", "Estadístico"), names_sep = "__") %>%
  pivot_wider(names_from = Estadístico, values_from = value)

resumen_gral %>%
  mutate(across(where(is.numeric), ~round(.x, 2))) %>%
  kable(caption = "Estadísticas descriptivas de las variables clave") %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"), full_width = FALSE)
Estadísticas descriptivas de las variables clave
Variable Media Mediana Desv_Est CV_pct Min Q1 Q3 Max
precio_unidad 45.22 45.00 14.71 32.52 7 35.00 55.00 110
unidades_vendidas 256.93 176.00 214.25 83.39 0 106.00 350.00 1275
ventas_total 12455.08 7803.50 12716.39 102.10 0 4065.25 15864.50 82500
utilidad_operativa 4894.79 3262.98 4866.46 99.42 0 1753.44 6192.36 39000
margen_operativo_pct 42.30 41.00 9.72 22.98 10 35.00 49.00 80

Interpretación: el coeficiente de variación (CV) permite comparar la dispersión relativa entre variables con distintas escalas. Valores de CV superiores al 40-50% indican alta heterogeneidad en el comportamiento de la variable entre transacciones, lo cual sugiere revisar si dicha variabilidad está asociada a diferencias por región, producto o canal de venta —análisis que se desarrolla en las siguientes secciones.


3 Desempeño de ventas

3.1 Ventas totales y unidades vendidas por región

ventas_region <- datos %>%
  group_by(region) %>%
  summarise(Ventas_Totales = sum(ventas_total),
            Unidades = sum(unidades_vendidas),
            Ticket_Promedio = mean(ventas_total)) %>%
  arrange(desc(Ventas_Totales))

kable(ventas_region, caption = "Ventas y unidades por región",
      format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Ventas y unidades por región
region Ventas_Totales Unidades Ticket_Promedio
West 36,436,157 686,985 14,884.051
Northeast 25,078,267 501,279 10,554.826
Southeast 21,374,436 407,000 17,462.775
South 20,603,356 492,260 11,923.238
Midwest 16,674,434 391,337 8,907.283
ggplot(ventas_region, aes(x = fct_reorder(region, Ventas_Totales), y = Ventas_Totales)) +
  geom_col(fill = "#000000") +
  coord_flip() +
  scale_y_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Ventas totales por región", x = "Región", y = "Ventas totales (USD)") +
  theme_minimal(base_size = 12)

Interpretación: la región líder en ventas totales es West, con $36,436,157, mientras que la de menor desempeño es Midwest. Esta brecha regional es un primer indicio de dónde concentrar esfuerzos comerciales o replicar buenas prácticas.

3.2 Ventas por ciudad (Top 10)

top_ciudades <- datos %>%
  group_by(ciudad) %>%
  summarise(Ventas_Totales = sum(ventas_total)) %>%
  arrange(desc(Ventas_Totales)) %>%
  slice_head(n = 10)

ggplot(top_ciudades, aes(x = fct_reorder(ciudad, Ventas_Totales), y = Ventas_Totales)) +
  geom_col(fill = "#E03A3A") +
  coord_flip() +
  scale_y_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Top 10 ciudades por ventas totales", x = "Ciudad", y = "Ventas totales (USD)") +
  theme_minimal(base_size = 12)

Interpretación: la ciudad New York concentra el mayor volumen de ventas ($5,676,160). La concentración geográfica observada en el top 10 sugiere posibles focos de inversión en marketing local o expansión hacia ciudades con desempeño aún bajo.

3.3 Ventas por distribuidor / minorista

ventas_dist <- datos %>%
  group_by(distribuidor) %>%
  summarise(Ventas_Totales = sum(ventas_total),
            Utilidad = sum(utilidad_operativa),
            Margen_Prom = mean(margen_operativo_pct)) %>%
  arrange(desc(Ventas_Totales))

kable(ventas_dist, caption = "Ventas, utilidad y margen promedio por distribuidor",
      digits = 2, format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Ventas, utilidad y margen promedio por distribuidor
distribuidor Ventas_Totales Utilidad Margen_Prom
West Gear 32,409,558 12,196,891 41.79
Foot Locker 29,024,945 11,317,027 41.79
Sports Direct 24,616,622 10,641,609 44.49
Kohl’s 13,512,453 5,182,260 41.93
Walmart 10,506,085 3,902,749 40.65
Amazon 10,096,987 3,984,432 41.79
ggplot(ventas_dist, aes(x = fct_reorder(distribuidor, Ventas_Totales), y = Ventas_Totales)) +
  geom_col(fill = "#1F77B4") +
  coord_flip() +
  scale_y_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Ventas totales por distribuidor", x = "Distribuidor", y = "Ventas totales (USD)") +
  theme_minimal(base_size = 12)

Interpretación: el distribuidor West Gear es el principal canal en volumen de ventas. Vale la pena contrastar este resultado con su margen promedio (columna Margen_Prom): un distribuidor con altas ventas pero bajo margen podría estar afectando la rentabilidad global de la marca vía descuentos o condiciones comerciales.

3.4 Ventas y participación por producto

ventas_producto <- datos %>%
  group_by(producto) %>%
  summarise(Ventas_Totales = sum(ventas_total),
            Unidades = sum(unidades_vendidas)) %>%
  mutate(Participacion_pct = Ventas_Totales / sum(Ventas_Totales) * 100) %>%
  arrange(desc(Ventas_Totales))

kable(ventas_producto, caption = "Ventas y participación por línea de producto",
      digits = 2, format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Ventas y participación por línea de producto
producto Ventas_Totales Unidades Participacion_pct
Men’s Street Footwear 27,680,769 593,320 23.04
Women’s Apparel 23,870,985 433,827 19.86
Men’s Athletic Footwear 20,577,180 435,526 17.12
Women’s Street Footwear 17,201,563 392,269 14.31
Men’s Apparel 16,520,632 306,683 13.75
Women’s Athletic Footwear 14,315,521 317,236 11.91
ggplot(ventas_producto, aes(x = "", y = Participacion_pct, fill = producto)) +
  geom_col(width = 1) +
  coord_polar(theta = "y") +
  scale_fill_manual(values = colorRampPalette(paleta)(nrow(ventas_producto))) +
  labs(title = "Participación de cada producto en las ventas totales", fill = "Producto") +
  theme_void(base_size = 12)

Interpretación: la línea Men’s Street Footwear representa el 23% de las ventas totales, siendo el producto más relevante en el portafolio. Los productos con baja participación son candidatos a evaluar si se mantienen, se reposicionan o se retiran del catálogo.

3.5 Variabilidad y valores atípicos en ventas

ggplot(datos, aes(x = fct_reorder(region, ventas_total, .fun = median), y = ventas_total)) +
  geom_boxplot(fill = "#8C8C8C", outlier.color = "#E03A3A", outlier.alpha = 0.4) +
  coord_flip() +
  scale_y_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Distribución de ventas totales por región (con atípicos)",
       x = "Región", y = "Ventas totales por transacción (USD)") +
  theme_minimal(base_size = 12)

ggplot(datos, aes(x = fct_reorder(producto, unidades_vendidas, .fun = median), y = unidades_vendidas)) +
  geom_boxplot(fill = "#B5B5B5", outlier.color = "#000000", outlier.alpha = 0.4) +
  coord_flip() +
  labs(title = "Distribución de unidades vendidas por producto",
       x = "Producto", y = "Unidades vendidas por transacción") +
  theme_minimal(base_size = 12)

Interpretación: los boxplots evidencian la presencia de valores atípicos (outliers) por encima del bigote superior en varias regiones y productos, lo que indica transacciones puntuales de venta excepcionalmente altas (posiblemente compras masivas de distribuidores grandes o promociones). La dispersión (ancho de la caja) también difiere entre categorías: mientras algunas regiones/productos muestran ventas homogéneas, otras presentan alta variabilidad, lo que puede reflejar mercados menos estables o más sensibles a factores externos (estacionalidad, promociones, competencia).


4 Rentabilidad

4.1 Distribución de la utilidad operativa y el margen operativo

ggplot(datos, aes(x = utilidad_operativa)) +
  geom_histogram(fill = "#000000", bins = 40, color = "white") +
  scale_x_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Distribución de la utilidad operativa", x = "Utilidad operativa (USD)", y = "Frecuencia") +
  theme_minimal(base_size = 12)

ggplot(datos, aes(x = margen_operativo_pct)) +
  geom_histogram(fill = "#E03A3A", bins = 30, color = "white") +
  labs(title = "Distribución del margen operativo", x = "Margen operativo (%)", y = "Frecuencia") +
  theme_minimal(base_size = 12)

margen_media   <- mean(datos$margen_operativo_pct)
margen_mediana <- median(datos$margen_operativo_pct)
margen_sd      <- sd(datos$margen_operativo_pct)
margen_cv      <- cv(datos$margen_operativo_pct)

Interpretación: el margen operativo promedio es de 42.3% (mediana 41%), con una desviación estándar de 9.7 puntos porcentuales y un coeficiente de variación de 23%. Un CV moderado indica que, si bien existe una tendencia central clara, hay categorías con rentabilidad sustancialmente distinta a la media, lo cual justifica el análisis por segmento que se presenta a continuación.

4.2 Margen y utilidad por producto, región y método de venta

margen_producto <- datos %>%
  group_by(producto) %>%
  summarise(Margen_Promedio = mean(margen_operativo_pct),
            Utilidad_Total = sum(utilidad_operativa)) %>%
  arrange(desc(Margen_Promedio))

ggplot(margen_producto, aes(x = fct_reorder(producto, Margen_Promedio), y = Margen_Promedio)) +
  geom_col(fill = "#2CA02C") +
  coord_flip() +
  labs(title = "Margen operativo promedio por producto", x = "Producto", y = "Margen operativo promedio (%)") +
  theme_minimal(base_size = 12)

margen_region <- datos %>%
  group_by(region) %>%
  summarise(Margen_Promedio = mean(margen_operativo_pct)) %>%
  arrange(desc(Margen_Promedio))

margen_metodo <- datos %>%
  group_by(metodo_venta) %>%
  summarise(Margen_Promedio = mean(margen_operativo_pct),
            Ventas_Totales = sum(ventas_total)) %>%
  arrange(desc(Margen_Promedio))

kable(margen_region, caption = "Margen operativo promedio por región", digits = 2) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Margen operativo promedio por región
region Margen_Promedio
South 46.69
Midwest 43.53
Southeast 41.92
Northeast 41.05
West 39.67
kable(margen_metodo, caption = "Margen operativo promedio y ventas por método de venta",
      digits = 2, format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Margen operativo promedio y ventas por método de venta
metodo_venta Margen_Promedio Ventas_Totales
Online 46.42 44,965,657
Outlet 39.49 39,536,618
In-store 35.61 35,664,375

Interpretación: el producto más rentable en términos de margen promedio es Men’s Street Footwear (44.6%), mientras que el método de venta Online presenta el mayor margen promedio entre los canales disponibles. Comparar esta tabla con la de participación en ventas (sección anterior) permite identificar si los productos/canales de mayor volumen son también los más rentables, o si existe una desalineación entre volumen y rentabilidad que deba corregirse.

4.3 Relación entre ventas y utilidad

cor_ventas_utilidad <- cor(datos$ventas_total, datos$utilidad_operativa)

ggplot(datos, aes(x = ventas_total, y = utilidad_operativa, color = metodo_venta)) +
  geom_point(alpha = 0.35) +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  scale_x_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  scale_y_continuous(labels = label_dollar(prefix = "$", big.mark = ",")) +
  labs(title = "Relación entre ventas totales y utilidad operativa",
       x = "Ventas totales (USD)", y = "Utilidad operativa (USD)", color = "Método de venta") +
  theme_minimal(base_size = 12)

Interpretación: la correlación entre ventas totales y utilidad operativa es de 0.94, lo que indica una relación fuerte y positiva: a mayor volumen de ventas, mayor utilidad generada, tal como se espera. Sin embargo, la dispersión alrededor de la línea de tendencia muestra que no todas las transacciones con ventas altas logran una utilidad proporcional, lo que refuerza la importancia de gestionar el margen y no solo el volumen.


5 Relación entre variables clave

5.1 Matriz de correlación

vars_num <- datos %>% select(precio_unidad, unidades_vendidas, ventas_total,
                              utilidad_operativa, margen_operativo_pct)
mat_cor <- cor(vars_num)

corrplot(mat_cor, method = "color", type = "upper", addCoef.col = "black",
         tl.col = "black", tl.srt = 45, number.cex = 0.8,
         col = colorRampPalette(c("#E03A3A","white","#1F77B4"))(200),
         title = "Matriz de correlación de variables clave", mar = c(0,0,2,0))

Interpretación: la matriz resume las asociaciones lineales entre las variables numéricas. Se espera una correlación alta entre unidades_vendidas y ventas_total (relación casi mecánica), mientras que la relación de precio_unidad con unidades_vendidas y con margen_operativo es la que aporta información diagnóstica más relevante para la estrategia comercial.

5.2 Precio por unidad vs. unidades vendidas

cor_precio_unidades <- cor(datos$precio_unidad, datos$unidades_vendidas)

ggplot(datos, aes(x = precio_unidad, y = unidades_vendidas)) +
  geom_point(alpha = 0.3, color = "#000000") +
  geom_smooth(method = "lm", se = FALSE, color = "#E03A3A") +
  labs(title = "Precio por unidad vs. unidades vendidas",
       x = "Precio por unidad (USD)", y = "Unidades vendidas") +
  theme_minimal(base_size = 12)

Interpretación: la correlación entre precio y unidades vendidas es de 0.27. Sorprendentemente la relación es positiva, lo que sugiere que el precio no es la variable dominante en la decisión de compra (posible efecto de marca, calidad percibida o segmento premium).

5.3 Precio por unidad vs. margen operativo

cor_precio_margen <- cor(datos$precio_unidad, datos$margen_operativo_pct)

ggplot(datos, aes(x = precio_unidad, y = margen_operativo_pct)) +
  geom_point(alpha = 0.3, color = "#1F77B4") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  labs(title = "Precio por unidad vs. margen operativo",
       x = "Precio por unidad (USD)", y = "Margen operativo (%)") +
  theme_minimal(base_size = 12)

Interpretación: la correlación entre precio y margen operativo es de -0.14, lo que sugiere que el precio por sí solo no garantiza mayor rentabilidad porcentual; el margen depende también de costos, canal y volumen de descuentos aplicados.

5.4 Variables más asociadas con la utilidad operativa

cor_utilidad <- sapply(vars_num %>% select(-utilidad_operativa), function(x) cor(x, datos$utilidad_operativa))
cor_utilidad_df <- data.frame(Variable = names(cor_utilidad), Correlacion_con_Utilidad = round(cor_utilidad,3)) %>%
  arrange(desc(abs(Correlacion_con_Utilidad)))

kable(cor_utilidad_df, caption = "Ranking de variables según su asociación con la utilidad operativa") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Ranking de variables según su asociación con la utilidad operativa
Variable Correlacion_con_Utilidad
ventas_total ventas_total 0.935
unidades_vendidas unidades_vendidas 0.872
precio_unidad precio_unidad 0.504
margen_operativo_pct margen_operativo_pct -0.047

Interpretación: la variable con mayor asociación con la utilidad operativa es ventas_total (r = 0.935). Esto sugiere que, para maximizar utilidad, la palanca de gestión más directa observada en los datos es esta variable, por encima de otras como el precio unitario de forma aislada.


6 Análisis general: combinaciones estratégicas

6.1 Ventas por producto y región

tabla_prod_region <- datos %>%
  group_by(producto, region) %>%
  summarise(Ventas_Totales = sum(ventas_total), .groups = "drop")

ggplot(tabla_prod_region, aes(x = region, y = producto, fill = Ventas_Totales)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "#F2F2F2", high = "#000000", labels = label_dollar(prefix="$", big.mark=",")) +
  labs(title = "Ventas totales por combinación producto × región",
       x = "Región", y = "Producto", fill = "Ventas (USD)") +
  theme_minimal(base_size = 11) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

top_combo_region <- tabla_prod_region %>% arrange(desc(Ventas_Totales)) %>% slice_head(n = 5)
kable(top_combo_region, caption = "Top 5 combinaciones producto-región por ventas",
      format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Top 5 combinaciones producto-región por ventas
producto region Ventas_Totales
Men’s Street Footwear West 7,389,988
Women’s Apparel West 7,038,046
Men’s Street Footwear Northeast 6,841,324
Men’s Athletic Footwear West 6,761,339
Women’s Street Footwear West 5,748,586

6.2 Ventas por producto y método de venta

tabla_prod_metodo <- datos %>%
  group_by(producto, metodo_venta) %>%
  summarise(Ventas_Totales = sum(ventas_total), .groups = "drop")

ggplot(tabla_prod_metodo, aes(x = metodo_venta, y = producto, fill = Ventas_Totales)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "#F2F2F2", high = "#E03A3A", labels = label_dollar(prefix="$", big.mark=",")) +
  labs(title = "Ventas totales por combinación producto × método de venta",
       x = "Método de venta", y = "Producto", fill = "Ventas (USD)") +
  theme_minimal(base_size = 11)

Interpretación: la combinación con mayor volumen de ventas es Men’s Street Footwear en la región West, con $7,389,988. Estas combinaciones “ganadoras” son las que Adidas debería priorizar en inventario, publicidad y negociación con distribuidores, mientras que las celdas más claras de los mapas de calor representan oportunidades de crecimiento aún no explotadas.

6.3 Participación de productos (treemap)

ggplot(ventas_producto, aes(area = Ventas_Totales, fill = producto, label = producto)) +
  geom_treemap() +
  geom_treemap_text(colour = "white", place = "centre", grow = FALSE, reflow = TRUE) +
  scale_fill_manual(values = colorRampPalette(paleta)(nrow(ventas_producto))) +
  labs(title = "Participación de productos en las ventas totales (treemap)") +
  theme(legend.position = "none")


7 Principales hallazgos

  • Ventas: la región West y la ciudad New York concentran el mayor volumen de ventas; el distribuidor West Gear es el canal más fuerte en volumen.
  • Producto líder: Men’s Street Footwear representa el 23% de las ventas totales.
  • Rentabilidad: el margen operativo promedio es de 42.3%; el producto más rentable es Men’s Street Footwear y el canal más rentable es Online.
  • Relación ventas–utilidad: correlación de 0.94, confirmando que el crecimiento en ventas se traduce en utilidad, aunque con dispersión relevante entre transacciones.
  • Precio vs. demanda: correlación de 0.27 entre precio y unidades vendidas.
  • Variable más asociada a la utilidad: ventas_total.
  • Valores atípicos: se identifican transacciones outlier en varias regiones y productos, que ameritan revisión puntual (posibles ventas mayoristas o eventos promocionales).
  • Combinación más estratégica: Men’s Street Footwear en West.

8 Conclusiones y recomendaciones (analítica prescriptiva)

Con base en el análisis descriptivo y diagnóstico realizado, se plantean las siguientes recomendaciones para el equipo directivo de Adidas:

  1. Priorizar inversión comercial en la región y ciudad líderes en ventas para consolidar su posición, replicando sus prácticas (mix de producto, canal, pricing) en regiones de menor desempeño.
  2. Revisar la estrategia de precios de los productos con menor margen operativo, evaluando si es posible optimizar costos o ajustar precios sin afectar significativamente el volumen, dado el nivel de sensibilidad al precio observado.
  3. Fortalecer el canal de venta más rentable (Online) incentivando su crecimiento, sin descuidar el volumen que aportan los demás canales.
  4. Gestionar el portafolio de productos dando prioridad a las combinaciones producto-región-canal identificadas como más estratégicas, y reevaluando la permanencia de las líneas con baja participación y bajo margen.
  5. Investigar los valores atípicos detectados en los boxplots para determinar si corresponden a oportunidades replicables (grandes pedidos, promociones exitosas) o a riesgos operativos que deban controlarse.
  6. Recolectar información temporal (fecha de venta) en futuras versiones de la base de datos, de forma que sea posible calcular tasas de crecimiento y detectar estacionalidad, lo cual no fue posible con la información disponible en este ejercicio.

Informe generado en R Markdown como parte del Caso 1 — Analítica Descriptiva, curso Analítica de Datos para la Toma de Decisiones, Pontificia Universidad Javeriana de Cali. Profesora: Julieth Stefens Cerón.