library(readxl)
library(dplyr)
library(ggplot2)
library(knitr)

Logo Corporativo

1. Introducción

Enfoque del análisis

El presente análisis adopta un enfoque descriptivo–exploratorio con orientación estratégica.
Se busca evaluar el desempeño comercial y la rentabilidad de Adidas identificando diferencias por región (West, South, Northeast), producto (Womens Apparel, Mens Athletic Footwear), método de venta (Outlet, In-store, Online) y distribuidor (West Gear, Walmart).

Este enfoque se selecciona porque permite identificar patrones, variabilidad y relaciones clave entre variables financieras, facilitando la toma de decisiones basada en datos.


2. Carga y Limpieza de Datos

adidas <- read_excel("DatosCaso1.xlsx")

adidas <- adidas %>%
  mutate(
    precio_unidad = as.numeric(gsub("[^0-9.]", "", precio_unidad)),
    ventas_total = as.numeric(gsub("[^0-9.]", "", ventas_total)),
    utilidad_operativa = as.numeric(gsub("[^0-9.]", "", utilidad_operativa)),
    unidades_vendidas = as.numeric(gsub("\\.", "", unidades_vendidas))
  )

3. Desempeño de Ventas

3.1 Ventas por Región (West, South, Northeast)

ventas_region <- adidas %>%
  filter(region %in% c("West","South","Northeast")) %>%
  group_by(region) %>%
  summarise(
    ventas_totales = sum(ventas_total),
    unidades_totales = sum(unidades_vendidas),
    promedio_ventas = mean(ventas_total),
    sd_ventas = sd(ventas_total)
  )

ventas_region
## # A tibble: 3 × 5
##   region    ventas_totales unidades_totales promedio_ventas sd_ventas
##   <chr>              <dbl>            <dbl>           <dbl>     <dbl>
## 1 Northeast       25078267           501279          10555.    11637.
## 2 South           20603356           492260          11923.    12168.
## 3 West            36436157           686985          14884.    13399.
ggplot(ventas_region, aes(x=region, y=ventas_totales)) +
  geom_col() +
  theme_minimal() +
  labs(title="Ventas Totales por Región")

Hallazgo relevante:
Las diferencias en ventas totales y desviación estándar indican concentración y variabilidad distinta entre regiones, lo que sugiere prioridades estratégicas diferenciadas.


3.2 Ventas por Producto

ventas_producto <- adidas %>%
  filter(producto %in% c("Womens Apparel","Mens Athletic Footwear")) %>%
  group_by(producto) %>%
  summarise(
    ventas_totales = sum(ventas_total),
    promedio = mean(ventas_total),
    sd = sd(ventas_total)
  )

ventas_producto
## # A tibble: 0 × 4
## # ℹ 4 variables: producto <chr>, ventas_totales <dbl>, promedio <dbl>, sd <dbl>

Interpretación:
La comparación permite identificar cuál categoría lidera en ingresos y cuál presenta mayor volatilidad.


3.3 Método de Venta y Distribuidor (Variabilidad y Atípicos)

resumen_metodo <- adidas %>%
  group_by(metodo_venta, distribuidor) %>%
  summarise(
    promedio = mean(ventas_total),
    sd = sd(ventas_total)
  )
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by metodo_venta and distribuidor.
## ℹ Output is grouped by metodo_venta.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(metodo_venta, distribuidor))` for per-operation
##   grouping (`?dplyr::dplyr_by`) instead.
resumen_metodo
## # A tibble: 18 × 4
## # Groups:   metodo_venta [3]
##    metodo_venta distribuidor  promedio     sd
##    <chr>        <chr>            <dbl>  <dbl>
##  1 In-store     Amazon          18954.  8959.
##  2 In-store     Foot Locker     17043. 13687.
##  3 In-store     Kohl's          20532. 10540.
##  4 In-store     Sports Direct   18788. 12503.
##  5 In-store     Walmart         44355. 20439.
##  6 In-store     West Gear       22422. 15288.
##  7 Online       Amazon           8607.  9484.
##  8 Online       Foot Locker      8770. 10585.
##  9 Online       Kohl's           9369.  8549.
## 10 Online       Sports Direct   10064. 10527.
## 11 Online       Walmart         11006.  8133.
## 12 Online       West Gear        8679.  9840.
## 13 Outlet       Amazon          11039.  9411.
## 14 Outlet       Foot Locker     11524. 13128.
## 15 Outlet       Kohl's          16642. 12661.
## 16 Outlet       Sports Direct   12228. 11862.
## 17 Outlet       Walmart         18921. 17451.
## 18 Outlet       West Gear       12471. 14472.
ggplot(adidas, aes(x=metodo_venta, y=ventas_total)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title="Detección de Atípicos por Método de Venta")

Hallazgo:
La dispersión y presencia de valores extremos evidencian diferencias en estabilidad entre canales.


4. Rentabilidad

4.1 Utilidad y Margen por Producto y Región

rentabilidad <- adidas %>%
  group_by(producto, region) %>%
  summarise(
    utilidad_prom = mean(utilidad_operativa),
    margen_prom = mean(margen_operativo),
    sd_utilidad = sd(utilidad_operativa)
  )
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by producto and region.
## ℹ Output is grouped by producto.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(producto, region))` for per-operation grouping
##   (`?dplyr::dplyr_by`) instead.
rentabilidad
## # A tibble: 30 × 5
## # Groups:   producto [6]
##    producto                region    utilidad_prom margen_prom sd_utilidad
##    <chr>                   <chr>             <dbl>       <dbl>       <dbl>
##  1 Men's Apparel           Midwest           3005.       0.451       2838.
##  2 Men's Apparel           Northeast         2989.       0.367       3280.
##  3 Men's Apparel           South             3829.       0.416       3487.
##  4 Men's Apparel           Southeast         5627.       0.394       4865.
##  5 Men's Apparel           West              4950.       0.437       4897.
##  6 Men's Athletic Footwear Midwest           3109.       0.405       2650.
##  7 Men's Athletic Footwear Northeast         3724.       0.416       3280.
##  8 Men's Athletic Footwear South             5226.       0.433       5035.
##  9 Men's Athletic Footwear Southeast         6537.       0.403       4938.
## 10 Men's Athletic Footwear West              5254.       0.367       3858.
## # ℹ 20 more rows
ggplot(rentabilidad, aes(x=producto, y=utilidad_prom, fill=region)) +
  geom_col(position="dodge") +
  theme_minimal() +
  labs(title="Utilidad Promedio por Producto y Región")

4.2 Distribución porcentual de utilidad (Gráfico de Torta)

utilidad_total_producto <- adidas %>%
  group_by(producto) %>%
  summarise(utilidad_total = sum(utilidad_operativa))

ggplot(utilidad_total_producto, aes(x="", y=utilidad_total, fill=producto)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0) +
  theme_void() +
  labs(title="Participación de Utilidad por Producto")

Interpretación estratégica:
Los segmentos con mayor margen y utilidad promedio representan foco prioritario de inversión.


5. Relación entre Variables Clave

5.1 Precio vs Unidades Vendidas

cor(adidas$precio_unidad, adidas$unidades_vendidas)
## [1] 0.2658685
ggplot(adidas, aes(x=precio_unidad, y=unidades_vendidas)) +
  geom_point() +
  theme_minimal() +
  labs(title="Precio vs Unidades Vendidas")

Interpretación:
Permite evaluar posible elasticidad: si existe relación negativa, precios más altos reducen volumen.


5.2 Ventas Totales vs Utilidad Operativa

cor(adidas$ventas_total, adidas$utilidad_operativa)
## [1] 0.9353717
ggplot(adidas, aes(x=ventas_total, y=utilidad_operativa)) +
  geom_point() +
  theme_minimal() +
  labs(title="Ventas Totales vs Utilidad Operativa")

Segmentación por Método de Venta

adidas %>%
  group_by(metodo_venta) %>%
  summarise(correlacion = cor(ventas_total, utilidad_operativa))
## # A tibble: 3 × 2
##   metodo_venta correlacion
##   <chr>              <dbl>
## 1 In-store           0.924
## 2 Online             0.964
## 3 Outlet             0.911

Hallazgo:
La correlación positiva confirma coherencia financiera, pero puede variar por canal.


6. Combinaciones Estratégicas

estrategicas <- adidas %>%
  group_by(producto, region, metodo_venta) %>%
  summarise(
    ventas = sum(ventas_total),
    utilidad = sum(utilidad_operativa)
  ) %>%
  arrange(desc(utilidad))
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by producto, region, and metodo_venta.
## ℹ Output is grouped by producto and region.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(producto, region, metodo_venta))` for per-operation
##   grouping (`?dplyr::dplyr_by`) instead.
head(estrategicas)
## # A tibble: 6 × 5
## # Groups:   producto, region [5]
##   producto              region    metodo_venta  ventas utilidad
##   <chr>                 <chr>     <chr>          <dbl>    <dbl>
## 1 Men's Street Footwear Northeast In-store     3376000 1337275 
## 2 Women's Apparel       South     Outlet       2285570 1254117.
## 3 Men's Street Footwear Southeast Online       2740850 1242924.
## 4 Women's Apparel       Southeast Online       2359548 1133437.
## 5 Men's Street Footwear West      Online       2355444 1026538.
## 6 Men's Street Footwear West      Outlet       2827944 1025207.

Conclusión Estratégica:
Las combinaciones con mayor utilidad consolidan oportunidades de expansión y asignación prioritaria de recursos.


7. Conclusiones Generales

El análisis descriptivo permite fundamentar decisiones comerciales con base en evidencia cuantitativa.