Introducción

En el presente informe se desarrolla un análisis descriptivo y exploratorio de la base de datos comercial de la empresa Adidas, con el propósito de evaluar el desempeño de sus ventas y su rentabilidad en distintos segmentos del mercado. La información analizada incluye variables clave como precio por unidad, unidades vendidas, ventas totales, utilidad operativa, margen operativo, método de venta, distribuidor, región y ciudad.

Los resultados obtenidos servirán como base para proponer recomendaciones orientadas a la toma de decisiones estratégicas de la compañía.

Instalación y carga de librerias

# Cargar librerías necesarias
library(readxl)
library(dplyr)
library(ggplot2)
library(plotly)
library(knitr)
library(kableExtra)
library(tidyr)
library(RecordLinkage)
library(leaflet)
library(htmltools)
library(corrplot)

Base de datos

El código siguiente carga un archivo de Excel con datos de las ventas registradas en la empresa Adidas.

library(readxl)
datos<- read_excel("DatosCaso1.xlsx")


id=1:dim(datos)[1]
datos=data.frame(id,datos)

Ahora obtenemos los nombres exactos de las variables que tenemos en la base de datos

library(dplyr)
names(datos)
##  [1] "id"                 "distribuidor"       "region"            
##  [4] "estado"             "ciudad"             "producto"          
##  [7] "precio_unidad"      "unidades_vendidas"  "ventas_total"      
## [10] "utilidad_operativa" "margen_operativo"   "metodo_venta"

Desempeño de ventas

# Resumen estadístico de las variables financieras
resumen <- datos %>% 
  select(precio_unidad, unidades_vendidas, ventas_total, utilidad_operativa, metodo_venta) %>% 
  summary()

resumen
##  precio_unidad    unidades_vendidas  ventas_total   utilidad_operativa
##  Min.   :  7.00   Min.   :   0.0    Min.   :    0   Min.   :    0     
##  1st Qu.: 35.00   1st Qu.: 106.0    1st Qu.: 4065   1st Qu.: 1753     
##  Median : 45.00   Median : 176.0    Median : 7804   Median : 3263     
##  Mean   : 45.22   Mean   : 256.9    Mean   :12455   Mean   : 4895     
##  3rd Qu.: 55.00   3rd Qu.: 350.0    3rd Qu.:15864   3rd Qu.: 6192     
##  Max.   :110.00   Max.   :1275.0    Max.   :82500   Max.   :39000     
##  metodo_venta      
##  Length:9648       
##  Class :character  
##  Mode  :character  
##                    
##                    
## 
ventas_stats <- datos %>%
  summarise(
    Media_Ventas = mean(ventas_total),
    Mediana_Ventas = median(ventas_total),
    SD_Ventas = sd(ventas_total),
    Min_Ventas = min(ventas_total),
    Max_Ventas = max(ventas_total),
    Media_Unidades = mean(unidades_vendidas),
    Mediana_Unidades = median(unidades_vendidas),
    SD_Unidades = sd(unidades_vendidas)
  )

ventas_stats
Media_Ventas Mediana_Ventas SD_Ventas Min_Ventas Max_Ventas Media_Unidades Mediana_Unidades SD_Unidades
12455.08 7803.5 12716.39 0 82500 256.93 176 214.252

En relación con las unidades vendidas, el promedio por registro es de 256.93 unidades, mientras que la mediana se sitúa en 176 unidades. La diferencia entre ambas medidas indica una distribución asimétrica positiva, lo que sugiere que existen operaciones con volúmenes significativamente altos que elevan el promedio general.

La desviación estándar (214.25) es elevada en comparación con la mediana, lo que evidencia una alta variabilidad en el volumen de unidades comercializadas. Esto indica que el comportamiento de las ventas en términos de cantidad no es homogéneo, sino que existen diferencias importantes entre operaciones.

ventas_region <- datos %>%
  group_by(region) %>%
  summarise(
    Ventas_Totales = sum(ventas_total),
    Promedio_Ventas = mean(ventas_total)
  )

ventas_region
region Ventas_Totales Promedio_Ventas
Midwest 16674434 8907.283
Northeast 25078267 10554.826
South 20603356 11923.238
Southeast 21374436 17462.775
West 36436157 14884.051

Aunque la región West lidera en ventas totales, la región Southeast presenta el mayor valor promedio por operación (17,462). Esto indica que, en promedio, cada registro de venta en Southeast genera mayores ingresos que en las demás regiones.

library(scales)

# Crear tabla resumida
ventas_region <- datos %>%
  group_by(region) %>%
  summarise(Ventas = sum(ventas_total))

# Gráfico profesional
ggplot(ventas_region, 
       aes(x = reorder(region, Ventas), 
           y = Ventas)) +
  geom_bar(stat = "identity", fill = "#1f77b4") +
  
  # Etiquetas encima de las barras (en millones)
  geom_text(aes(label = paste0(round(Ventas/1000000,1), " M")),
            vjust = -0.5,
            size = 4) +
  
  scale_y_continuous(labels = label_number(scale = 1e-6, suffix = " M")) +
  
  theme_minimal(base_size = 13) +
  labs(title = "Ventas Totales por Región",
       subtitle = "Valores expresados en millones",
       x = "Región",
       y = "Ventas Totales (Millones)") +
  
  theme(plot.title = element_text(face = "bold"),
        axis.text.x = element_text(face = "bold"))

Se observa una concentración significativa de ventas en la región West, lo que evidencia una posible dependencia geográfica del ingreso de acuerdo a las ventas en millones

### Diagrama de cajas"

ggplot(datos, aes(y = ventas_total)) +
  geom_boxplot(fill = "orange") +
  theme_minimal() +
  labs(title = "Boxplot Ventas Totales")

El diagrama de cajas y bigotes permite analizar la distribución de las ventas totales, así como identificar la presencia de valores atípicos y el nivel de variabilidad en los datos. En este gráfico, la línea ubicada dentro de la caja representa la mediana de las ventas totales, lo que indica el valor central alrededor del cual se concentran la mayoría de las observaciones.

La caja muestra el rango intercuartílico, es decir, el intervalo donde se encuentra aproximadamente el 50% de los datos. En este caso, se observa que la mayor parte de las ventas totales se concentra en valores relativamente bajos a moderados, lo que sugiere que la mayoría de las transacciones o registros de ventas no alcanzan niveles extremadamente altos. Los bigotes del gráfico se extienden hacia valores mínimos y máximos que aún se consideran dentro de un rango esperado de variación.

Sin embargo, se observa una cantidad considerable de puntos por encima del bigote superior, los cuales representan valores atípicos. Estos puntos indican registros de ventas significativamente más altos que el resto de los datos. La presencia de estos valores sugiere que, aunque la mayoría de las ventas se concentran en rangos más bajos, existen algunos casos donde se alcanzan montos de ventas mucho mayores. Esto podría estar relacionado con pedidos de gran volumen, promociones específicas, ventas en determinadas regiones o productos con mayor demanda. Rentabilidad ventas

rentabilidad_stats <- datos %>%
  summarise(
    Media_Utilidad = mean(utilidad_operativa),
    SD_Utilidad = sd(utilidad_operativa),
    Media_Margen = mean(margen_operativo),
    SD_Margen = sd(margen_operativo)
  )

rentabilidad_stats
Media_Utilidad SD_Utilidad Media_Margen SD_Margen
4894.794 4866.464 0.4229913 0.0971974
margen_region <- datos %>%
  group_by(region) %>%
  summarise(Margen_Promedio = mean(margen_operativo))

ggplot(margen_region, aes(x = reorder(region, Margen_Promedio),
                          y = Margen_Promedio)) +
  geom_bar(stat = "identity", fill = "darkgreen") +
  theme_minimal() +
  labs(title = "Margen Operativo Promedio por Región")

La región South presenta el margen operativo promedio más alto, lo que indica que en esta zona las ventas tienden a generar una mayor rentabilidad para la empresa en comparación con las demás regiones. Esto podría estar relacionado con una estructura de precios más favorable, menores costos operativos o una combinación de productos que generan mayores márgenes.

En segundo lugar, se encuentran las regiones Midwest y Southeast, las cuales también muestran márgenes relativamente altos. Esto sugiere que estas regiones mantienen un desempeño positivo en términos de rentabilidad, contribuyendo de manera importante a la utilidad operativa de la empresa.

#relación entre las ventas y la utilidad
ggplot(datos, aes(x = ventas_total,
                  y = utilidad_operativa)) +
  geom_point(alpha = 0.6, color = "purple") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_minimal() +
  labs(title = "Ventas vs Utilidad Operativa")

El diagrama de dispersión evidencia una relación lineal positiva fuerte entre las ventas totales y la utilidad operativa. A medida que las ventas aumentan, la utilidad crece de forma proporcional, lo que sugiere un comportamiento consistente del margen operativo. La pendiente de la recta de regresión indica que una fracción significativa de cada dólar vendido se convierte en utilidad operativa. Sin embargo, se observa mayor dispersión en niveles altos de ventas, lo cual podría indicar variaciones en eficiencia operativa entre segmentos del negocio.

cor(datos$ventas_total, datos$utilidad_operativa)
## [1] 0.9353717

La correlación entre las variables de ventas y utilidad es de 0.97, es decir hay una relación significativa entre estas dos. Cuando las ventas aumentan, la utilidad operativa casi siempre aumenta también, y lo hace de manera muy consistente.

Relación entre variables clave

# Relación entre precio y unidades vendidas
ggplot(datos, aes(x = precio_unidad,
                  y = unidades_vendidas))+
  geom_point(alpha = 0.6, color = "red") +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_minimal() +
  labs(title = "Precio vs Unidades Vendidas")

A partir de la gráfica se observa una relación positiva leve, representada por la pendiente ascendente de la línea de regresión. Esto sugiere que, en promedio, a medida que el precio del producto aumenta, también se registra un ligero incremento en las unidades vendidas. Sin embargo, esta relación no es particularmente fuerte, ya que los puntos se encuentran ampliamente dispersos alrededor de la recta de tendencia.

Adicionalmente, se observa una concentración vertical de puntos en determinados niveles de precio, lo que indica que existen muchos registros con el mismo valor de precio pero con diferentes cantidades de unidades vendidas. Este patrón suele ocurrir cuando los precios están estandarizados o definidos en niveles específicos dentro de la estrategia comercial de la empresa, mientras que la cantidad vendida varía dependiendo de otros factores como la demanda, la ubicación de la tienda, promociones, estacionalidad o condiciones del mercado.

cor(datos$precio_unidad, datos$unidades_vendidas)
## [1] 0.2658685

La correlación es de 26%, es positiva, sin embargo esta relación es leve ya que hay factores que demuestran que esta correlación no es tan fuerte.

vars_numericas <- datos %>%
  select(precio_unidad,
         unidades_vendidas,
         ventas_total,
         utilidad_operativa,
         margen_operativo)

cor_matrix <- cor(vars_numericas)

corrplot(cor_matrix, method = "color", type = "upper")

A partir de la matriz se observa que variables como unidades vendidas, ventas totales y utilidad operativa presentan correlaciones positivas relativamente altas, lo cual es consistente desde el punto de vista financiero, ya que un mayor volumen de ventas suele traducirse en mayores ingresos y, en consecuencia, en una mayor utilidad operativa. Por otro lado, el precio por unidad muestra relaciones más moderadas con las demás variables, mientras que el margen operativo presenta correlaciones más bajas e incluso negativas con algunas de ellas, lo que sugiere que este indicador puede verse influenciado por factores adicionales relacionados con la estructura de costos y la eficiencia operativa.

Análisis por producto

ventas_producto <- datos %>%
  group_by(producto) %>%
  summarise(Ventas = sum(ventas_total, na.rm = TRUE)) %>%
  ungroup() 
ventas_producto <- ventas_producto %>%
  mutate(Participacion = Ventas / sum(Ventas) * 100)

ventas_producto
producto Ventas Participacion
Men’s Apparel 16520632 13.74810
Men’s Athletic Footwear 20577180 17.12387
Men’s Street Footwear 27680769 23.03532
Women’s Apparel 23870985 19.86490
Women’s Athletic Footwear 14315521 11.91306
Women’s Street Footwear 17201563 14.31476
ventas_producto <- datos %>%
  group_by(producto) %>%
  summarise(Ventas = sum(ventas_total)) %>%
  mutate(Participacion = Ventas / sum(Ventas))

ggplot(ventas_producto, 
       aes(x = "", 
           y = Participacion, 
           fill = producto)) +
  geom_col(width = 1) +
  coord_polar("y") +
  theme_void() +
  labs(title = "Participación de Ventas por Producto")

A partir de la tabla y el gráfico circular se observa que la categoría con mayor participación es Men’s Street Footwear, la cual representa aproximadamente el 23.03% del total de las ventas. En segundo lugar se encuentra Women’s Apparel con una participación cercana al 19.86%, seguida por Men’s Athletic Footwear con aproximadamente 17.12%. Estos resultados indican que el calzado masculino, especialmente el orientado al estilo urbano, constituye una de las principales fuentes de ingresos dentro del portafolio de productos.

Análisis por combinaciones

combo_prod_region <- datos %>%
  group_by(producto, region) %>%
  summarise(Ventas = sum(ventas_total)) %>%
  arrange(desc(Ventas)) %>%
  slice_head(n = 10)

combo_prod_region
producto region Ventas
Men’s Apparel West 4827378
Men’s Apparel Northeast 3475037
Men’s Apparel Southeast 3183237
Men’s Apparel South 2811194
Men’s Apparel Midwest 2223786
Men’s Athletic Footwear West 6761339
Men’s Athletic Footwear Northeast 3895862
Men’s Athletic Footwear Southeast 3653645
Men’s Athletic Footwear South 3647045
Men’s Athletic Footwear Midwest 2619289
Men’s Street Footwear West 7389988
Men’s Street Footwear Northeast 6841324
Men’s Street Footwear Midwest 4707360
Men’s Street Footwear Southeast 4693836
Men’s Street Footwear South 4048261
Women’s Apparel West 7038046
Women’s Apparel Northeast 5045208
Women’s Apparel South 4224937
Women’s Apparel Southeast 4109786
Women’s Apparel Midwest 3453008
Women’s Athletic Footwear West 4670820
Women’s Athletic Footwear Southeast 2674048
Women’s Athletic Footwear Northeast 2668013
Women’s Athletic Footwear South 2629097
Women’s Athletic Footwear Midwest 1673543
Women’s Street Footwear West 5748586
Women’s Street Footwear South 3242822
Women’s Street Footwear Northeast 3152823
Women’s Street Footwear Southeast 3059884
Women’s Street Footwear Midwest 1997448
library(dplyr)

combo_prod_region <- datos %>%
  group_by(producto, region) %>%
  summarise(Ventas = sum(ventas_total, na.rm = TRUE)) %>%
  ungroup()

top10_combo <- combo_prod_region %>%
  arrange(desc(Ventas)) %>%
  slice_head(n = 10)
#Top 10 mejores combinaciones producto-region
library(ggplot2)
library(scales)

ggplot(top10_combo,
       aes(x = reorder(paste(producto, region, sep = " - "), Ventas),
           y = Ventas)) +
  geom_col(fill = "#28B463") +
  coord_flip() +
  scale_y_continuous(labels = label_number(scale = 1e-6, suffix = " M")) +
  theme_minimal() +
  labs(title = "Top 10 Combinaciones Producto - Región",
       x = "Producto - Región",
       y = "Ventas (Millones)")

El gráfico presenta las diez combinaciones de producto y región con mayores ventas totales. Se observa que varias de las combinaciones con mejor desempeño se concentran en la región Oeste, lo que indica que esta zona representa uno de los mercados más fuertes para la empresa. En particular, productos como el calzado urbano para hombres y la ropa para mujeres destacan dentro de esta región, evidenciando una alta demanda en estas categorías.

Asimismo, algunas combinaciones de productos también muestran un buen desempeño en regiones como el Noreste y el Sur, lo que sugiere que ciertos productos mantienen una demanda relevante en distintos mercados geográficos. Sin embargo, el predominio de la región Oeste dentro de las combinaciones con mayores ventas sugiere que esta área podría considerarse estratégica para el crecimiento y la consolidación de las ventas.

ventas_heat <- datos %>%
  group_by(producto, region) %>%
  summarise(Ventas = sum(ventas_total))

ggplot(ventas_heat, 
       aes(x = region,
           y = producto,
           fill = Ventas)) +
  geom_tile() +
  scale_fill_gradient(low = "white", high = "darkblue") +
  theme_minimal() +
  labs(title = "Mapa de Calor: Ventas por Producto y Región",
       x = "Región",
       y = "Producto")

Al igual que la anterior gráfica, este mapa de calor nos muestra que la región predominante es Este

Combinación producto+método de venta

combo_prod_metodo <- datos %>%
  group_by(producto, metodo_venta) %>%
  summarise(Ventas = sum(ventas_total)) %>%
  arrange(desc(Ventas)) %>%
  slice_head(n = 10)

combo_prod_metodo
producto metodo_venta Ventas
Men’s Apparel Online 6334120
Men’s Apparel Outlet 5254012
Men’s Apparel In-store 4932500
Men’s Athletic Footwear Online 7625859
Men’s Athletic Footwear Outlet 7016446
Men’s Athletic Footwear In-store 5934875
Men’s Street Footwear Online 10365158
Men’s Street Footwear In-store 8885200
Men’s Street Footwear Outlet 8430411
Women’s Apparel Online 8966155
Women’s Apparel Outlet 7879955
Women’s Apparel In-store 7024875
Women’s Athletic Footwear Online 5371092
Women’s Athletic Footwear Outlet 4892429
Women’s Athletic Footwear In-store 4052000
Women’s Street Footwear Online 6303273
Women’s Street Footwear Outlet 6063365
Women’s Street Footwear In-store 4834925
ggplot(combo_prod_metodo,
       aes(x = reorder(paste(producto, metodo_venta, sep = " - "), Ventas),
           y = Ventas)) +
  geom_bar(stat = "identity", fill = "#AF7AC5") +
  coord_flip() +
  scale_y_continuous(labels = label_number(scale = 1e-6, suffix = " M")) +
  theme_minimal() +
  labs(title = "Top 10 Combinaciones Producto - Método de Venta",
       x = "Producto - Método",
       y = "Ventas (Millones)")

Se observa que varias de las combinaciones con mejor desempeño corresponden al canal de venta en línea, lo que sugiere que este método de comercialización tiene una participación importante en la generación de ingresos de la empresa. En particular, productos como el calzado urbano para hombres y la ropa para mujeres destacan en este canal, evidenciando una fuerte demanda cuando se comercializan a través de plataformas digitales.

También se observa que otros métodos de venta, como las tiendas físicas y los outlets, aparecen dentro de las combinaciones con mayores ventas. Esto indica que, aunque el canal en línea presenta un alto desempeño, los canales tradicionales continúan siendo relevantes para la distribución de los productos. Por ejemplo, el calzado urbano para hombres y el calzado deportivo para hombres mantienen niveles de ventas significativos tanto en tiendas físicas como en outlets.

library(ggplot2)
library(dplyr)
library(scales)

# Crear tabla producto - método de venta
heatmap_prod_metodo <- datos %>%
  group_by(producto, metodo_venta) %>%
  summarise(Ventas = sum(ventas_total, na.rm = TRUE)) %>%
  ungroup()

# Crear mapa de calor
ggplot(heatmap_prod_metodo,
       aes(x = metodo_venta,
           y = producto,
           fill = Ventas)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "lightyellow", high = "darkred",
                      labels = label_number(scale = 1e-6, suffix = " M")) +
  theme_minimal() +
  labs(title = "Mapa de calor: Ventas por Producto y Método de Venta",
       x = "Método de venta",
       y = "Producto",
       fill = "Ventas")

Análisis Producto + Región + Margen

library(dplyr)
library(ggplot2)
library(scales)

# Crear dataset Producto + Región
prod_region_margen <- datos %>%
  group_by(producto, region) %>%
  summarise(
    Ventas = sum(ventas_total, na.rm = TRUE),
    Margen = mean(margen_operativo, na.rm = TRUE),
    Unidades = sum(unidades_vendidas, na.rm = TRUE)
  ) %>%
  ungroup()

# Gráfico de burbujas
ggplot(prod_region_margen,
       aes(x = Ventas,
           y = Margen,
           size = Unidades,
           color = producto)) +
  geom_point(alpha = 0.7) +
  scale_size_continuous(range = c(4,15)) +
  scale_x_continuous(labels = label_number(scale = 1e-6, suffix = " M")) +
  scale_color_brewer(palette = "YlGnBu") +
  theme_minimal() +
  labs(title = "Relación entre Ventas, Margen Operativo y Unidades por Producto y Región",
       subtitle = "El tamaño de la burbuja representa el volumen de unidades vendidas",
       x = "Ventas Totales (Millones)",
       y = "Margen Operativo Promedio",
       size = "Unidades vendidas",
       color = "Producto")

A partir del gráfico de burbujas, es posible identificar diferencias en la rentabilidad de los productos al observar la posición vertical de las burbujas, que representa el margen operativo promedio. En general, varias de las combinaciones asociadas al producto “Men’s Street Footwear” se ubican en la parte superior del gráfico, lo que indica que este producto presenta algunos de los márgenes operativos más altos dentro del conjunto de datos. Esto sugiere que este tipo de producto tiende a generar una mayor rentabilidad en comparación con otros, especialmente cuando se combina con niveles relativamente altos de ventas.

Por otro lado, algunos productos como “Women’s Athletic Footwear” y “Women’s Street Footwear” aparecen en ciertos casos con márgenes operativos más bajos dentro de la gráfica. Esto indica que, aunque pueden generar ventas relevantes o un volumen considerable de unidades vendidas, su rentabilidad relativa tiende a ser menor en comparación con otros productos.

Asimismo, categorías como “Men’s Apparel” y “Women’s Apparel” muestran un comportamiento intermedio dentro del gráfico, ubicándose en niveles de margen operativo moderados. Esto sugiere que estos productos aportan de manera constante a las ventas de la empresa, aunque no necesariamente destacan como los de mayor rentabilidad.

Recomendaciones

A partir del análisis descriptivo realizado sobre las ventas, unidades vendidas, márgenes operativos y las distintas combinaciones de producto, región y método de venta, es posible identificar algunos patrones relevantes que permiten formular recomendaciones para la toma de decisiones en la empresa.

En primer lugar, se recomienda que la empresa continúe fortaleciendo la comercialización de aquellos productos que han demostrado un mejor desempeño tanto en ventas como en rentabilidad. En particular, categorías como “Men’s Street Footwear” han mostrado un equilibrio favorable entre volumen de ventas y margen operativo, lo que sugiere que este tipo de productos representa una oportunidad estratégica para incrementar los ingresos y la rentabilidad. En este sentido, Adidas podría considerar reforzar las estrategias de marketing, disponibilidad de inventario y promoción de estos productos en los mercados donde presentan mayor demanda.

En segundo lugar, los resultados evidencian que algunas regiones presentan niveles de rentabilidad superiores a otras. Por ejemplo, la región South presenta el mayor margen operativo promedio, lo que indica que las operaciones en esta zona generan una mayor rentabilidad relativa. Por esta razón, la empresa podría analizar las prácticas comerciales, estructuras de costos o estrategias de precio aplicadas en esta región para evaluar si pueden replicarse en otros mercados con el fin de mejorar la rentabilidad general.

Asimismo, el análisis de los métodos de venta sugiere que el canal en línea desempeña un papel importante en la generación de ventas para varios productos. Por lo tanto, se recomienda continuar fortaleciendo las estrategias de comercio electrónico, optimizando la experiencia digital del cliente y ampliando la disponibilidad de productos en este canal, ya que podría representar una fuente importante de crecimiento en el futuro.

Finalmente, el análisis de la distribución de las ventas totales muestra la presencia de algunos valores atípicos asociados a ventas significativamente más altas que el promedio. Esto sugiere que existen ciertas combinaciones de producto, región o canal de venta que generan resultados excepcionalmente positivos. En este sentido, se recomienda realizar análisis más específicos sobre estos casos para identificar qué factores impulsan estas ventas y así replicar estas estrategias en otros segmentos del mercado.