Adidas es una de las empresas líderes a nivel mundial en la industria de artículos deportivos, reconocida por su presencia internacional y por ofrecer una amplia variedad de productos relacionados con calzado, ropa y accesorios deportivos. Su posicionamiento en diferentes mercados y la diversidad de sus productos y canales de comercialización hacen relevante el análisis de su desempeño comercial y financiero para comprender los factores que influyen en sus resultados.
En Estados Unidos se ha consolidado como uno de los principales actores del mercado deportivo y de moda urbana, con un crecimiento sostenido en categorías Lifestyle y Performance. Aunque enfrenta la competencia directa de Nike, su presencia en Norteamérica se ha fortalecido gracias a la expansión de tiendas, colaboraciones estratégicas y un enfoque en canales digitales.
El análisis del desempeño comercial y financiero de Adidas es clave para evaluar el comportamiento de sus ventas, identificar tendencias y comprender los factores que pueden influir en la generación de ingresos y rentabilidad. En este documento, realizaremos un análisis exploratorio de las principales variables comerciales y financieras disponibles en la base de datos, utilizando herramientas de análisis estadístico y visualización de datos. Se analizarán variables como las unidades vendidas, el precio unitario, las ventas totales, la utilidad operativa y el margen operativo, considerando además factores como el producto, la región, el distribuidor y el método de venta.
A través de este análisis, se busca proporcionar una visión más clara del desempeño comercial y financiero de Adidas, identificando patrones, diferencias y posibles relaciones entre las variables analizadas. Los resultados permitirán comprender cuáles son los segmentos, productos y canales que presentan un mejor desempeño y cuáles podrían representar oportunidades de mejora, facilitando así una toma de decisiones basada en datos..
Como punto de partida, se realizará una exploración de los datos con el propósito de obtener una visión general del comportamiento comercial de Adidas e identificar los principales patrones presentes en la información.
Mediante estadísticas descriptivas y herramientas de visualización en R, se examinará el comportamiento de las ventas, las unidades vendidas y los indicadores de rentabilidad, considerando su distribución entre productos, regiones y métodos de venta. Asimismo, se explorarán posibles relaciones entre variables y la presencia de valores atípicos que puedan aportar elementos relevantes para posteriores análisis.
# Cargar librerías necesarias
library(readxl)
library(dplyr)
library(ggplot2)
library(plotly) #Crear graficos interactivos
library(knitr) #Generar reportes texto+codigo+resultados
library(kableExtra) #Mejorar y dar formato a tablas
library(tidyr) #organizar y limpiar datos
library(tidyverse) #Conjunto de paquetes para trabajar con datos
library(reshape2)
library(tidygeocoder)
library(leaflet)
# Cargar datos desde el archivo Excel
datos_col <- read_excel("DatosCaso1.xlsx")
# Ver las primeras filas de los datos
class(datos_col)
## [1] "tbl_df" "tbl" "data.frame"
colnames(datos_col)
## [1] "distribuidor" "region" "estado"
## [4] "ciudad" "producto" "precio_unidad"
## [7] "unidades_vendidas" "ventas_total" "utilidad_operativa"
## [10] "margen_operativo" "metodo_venta"
head(datos_col)
| distribuidor | region | estado | ciudad | producto | precio_unidad | unidades_vendidas | ventas_total | utilidad_operativa | margen_operativo | metodo_venta |
|---|---|---|---|---|---|---|---|---|---|---|
| Foot Locker | Northeast | New York | New York | Men’s Street Footwear | 50 | 1200 | 60000 | 30000.0 | 0.50 | In-store |
| Foot Locker | Northeast | New York | New York | Men’s Athletic Footwear | 50 | 1000 | 50000 | 15000.0 | 0.30 | In-store |
| Foot Locker | Northeast | New York | New York | Women’s Street Footwear | 40 | 1000 | 40000 | 14000.0 | 0.35 | In-store |
| Foot Locker | Northeast | New York | New York | Women’s Athletic Footwear | 45 | 850 | 38250 | 13387.5 | 0.35 | In-store |
| Foot Locker | Northeast | New York | New York | Men’s Apparel | 60 | 900 | 54000 | 16200.0 | 0.30 | In-store |
| Foot Locker | Northeast | New York | New York | Women’s Apparel | 50 | 1000 | 50000 | 12500.0 | 0.25 | In-store |
Indicadores de centralidad y dispersión
datos_col <- datos_col %>%
filter(!(unidades_vendidas == 0 & utilidad_operativa > 0))
Para iniciar el análisis, se seleccionaron las variables cuantitativas con el objetivo de observar los indicadores más relevantes y realizar una revisión preliminar de datos atípicos, promedios, valores máximos y mínimos.
Este procedimiento permite obtener una visión general del comportamiento de las variables, lo que facilita la identificación de aquellas de mayor interés y relevancia para un estudio más profundo.
# Resumen estadístico de las variables financieras
resumen <- datos_col %>%
select(precio_unidad, unidades_vendidas, ventas_total,
utilidad_operativa, margen_operativo) %>%
summary()
# Verificación de valores faltantes por variable
colSums(is.na(datos_col))
## distribuidor region estado ciudad
## 0 0 0 0
## producto precio_unidad unidades_vendidas ventas_total
## 0 0 0 0
## utilidad_operativa margen_operativo metodo_venta
## 0 0 0
# Verificación de registros duplicados
sum(duplicated(datos_col))
## [1] 262
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
## margen_operativo
## Min. :0.100
## 1st Qu.:0.350
## Median :0.410
## Mean :0.423
## 3rd Qu.:0.490
## Max. :0.800
De acuerdo con los resultados obtenidos en el análisis descriptivo, se evidencia una marcada variabilidad en las variables financieras. El precio por unidad presenta una amplia diferencia entre los valores mínimos y máximos (103 USD), aunque la media y la mediana se mantienen cercanas, lo que sugiere una distribución relativamente equilibrada. En unidades vendidas, se identifican valores atípicos de cero asociados a márgenes operativos positivos, situación que resulta inconsistente y refleja posibles errores en la base de datos, sin embargo identificamos que son muy pocos datos con este error y no son significativas para alterar los resultados. Las ventas totales y la utilidad operativa también muestran valores mínimos de cero y una alta dispersión entre los cuartiles, indicando una distribución sesgada y la presencia de datos extremos. Finalmente, el margen operativo exhibe una variabilidad moderada, con media y mediana próximas, lo que sugiere mayor estabilidad en su comportamiento respecto a las demás variables.
# Seleccionamos las variables numéricas relevantes
vars <- datos_col[, c("precio_unidad", "ventas_total", "utilidad_operativa", "margen_operativo")]
# Calculamos la matriz de correlación
matriz_cor <- cor(vars, method = "pearson", use = "complete.obs")
# Convertimos la matriz en formato largo para graficar
matriz_cor_melt <- melt(matriz_cor)
# Graficamos el mapa de calor con estilo mejorado
ggplot(matriz_cor_melt, aes(x = Var1, y = Var2, fill = value)) +
geom_tile(color = "white") +
geom_text(aes(label = round(value, 2)),
color = "black",
size = 4,
fontface = "bold") + # etiquetas visibles en cada celda
scale_fill_gradient2(
low = "#E74C3C", mid = "white", high = "#2ECC71", midpoint = 0,
name = "Coeficiente"
) +
labs(
title = "Figura 1. Mapa de calor de correlaciones (Pearson)",
subtitle = "Fuente: Elaboración propia a partir de la base de datos del caso",
x = "Variables",
y = "Variables"
) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = 10, hjust = 0.5, color = "gray40"),
axis.text.x = element_text(angle = 45, hjust = 1)
)
De acuerdo con el mapa de calor de correlaciones, se observa que las
variables con el mayor coeficiente de relación son la Utilidad Operativa
y las Ventas Totales con un 0,94. Este hallazgo sugiere una asociación
significativa entre ambas, lo que hace necesario profundizar en su
comportamiento conjunto. Para ello, se elaborará un diagrama de
dispersión que permita visualizar de manera directa la relación entre
estas dos variables y evaluar si existe un patrón lineal consistente que
explique la dinámica de desempeño. Por otro lado, no usaremos el margen
operativo ya que de acuerdo a esta grafica podemos evidenciar que no
tiene una relacion fuerte con ninguna de las variables ya que todos los
coeficientes son negativos y presentan una relacion debil.
# Crear Grafico de correlacion
grafico_correlacion <- ggplot(
datos_col,
aes(
x = ventas_total,
y = utilidad_operativa
)
) +
geom_point(
color = "black",
alpha = 0.8,
size = 2
) +
geom_smooth(
method = "lm",
color = "grey",
se = TRUE
) +
labs(
title = paste(
"Figura 2. Correlacion Ventas Totales y Utilidad Operativa\nCoef. de correlación: ",
round(
cor(
datos_col$ventas_total,
datos_col$utilidad_operativa,
use = "complete.obs"
),
2
)
),
x = "Ventas Totales (USD)",
y = "Utilidad Operativa (USD)"
) +
theme_minimal() +
theme(
plot.title = element_text(
size = 12,
face = "bold",
hjust = 0.5
),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10)
)
grafico_correlacion_interactivo <- ggplotly(
grafico_correlacion,
tooltip = c("x", "y")
)
# AGREGAR FUENTE + LOGO ADIDAS
grafico_correlacion_interactivo <- grafico_correlacion_interactivo %>%
layout(
# FUENTE
annotations = list(
list(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
xref = "paper",
yref = "paper",
x = 0.5,
y = 1.08,
showarrow = FALSE,
xanchor = "center",
yanchor = "top",
font = list(
size = 10,
color = "gray40"
)
)
),
# LOGO ADIDAS
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.08,
y = 1.22,
sizex = 0.10,
sizey = 0.10,
xanchor = "left",
yanchor = "top",
sizing = "contain",
opacity = 1,
layer = "above"
)
),
# ESPACIO SUPERIOR
margin = list(
t = 130
)
)
# MOSTRAR GRÁFICO
grafico_correlacion_interactivo
A partir del coeficiente de correlación podemos afirmar que las Ventas Totales presentan una relación positiva y muy fuerte con la Utilidad Operativa. Esto significa que, en términos generales, un incremento en las ventas suele estar acompañado de un aumento en la utilidad operativa. Sin embargo, es importante señalar que la correlación no implica necesariamente causalidad.
El diagrama de dispersión evidencia esta asociación: aunque existe una correlación elevada entre ambas variables, los puntos se encuentran relativamente dispersos. Esto indica que la relación no es perfectamente lineal y que pueden existir otros factores que influyen en la variabilidad de la utilidad operativa más allá del nivel de ventas.
Mapa Estados Unidos de los datos
# Cargar la base de datos
datos <- read_excel("DatosCaso1.xlsx")
# Geocodificación
datos_geo <- datos %>%
geocode(city = ciudad, state = estado, method = "osm", lat = lat, long = lon)
# Asegurar que ventas_total sea numérico
datos_geo$ventas_total <- as.numeric(datos_geo$ventas_total)
# Inicializar todos los puntos en negro
datos_geo$color <- rep("black", nrow(datos_geo))
# Identificar índices de máximo y mínimo
idx_max <- which.max(datos_geo$ventas_total)
idx_min <- which.min(datos_geo$ventas_total)
# Crear mapa interactivo
leaflet(datos_geo) %>%
addTiles() %>%
addCircleMarkers(
lng = ~lon,
lat = ~lat,
radius = 6,
color = ~color,
label = ~paste0(
"Ciudad: ", ciudad,
" Estado: ", estado,
" Ventas Totales: $", format(ventas_total, big.mark = ",", scientific = FALSE),
" Utilidad Operativa: $", format(utilidad_operativa, big.mark = ",", scientific = FALSE)
),
labelOptions = labelOptions(
style = list("font-size" = "12px", "background" = "white"),
direction = "auto"
)
)
Con este mapa de Estados Unidos resulta más sencillo visualizar la distribución de las regiones que alimentan la base de datos. Se aprecia que la cantidad de información esta dispersa por todo el territorio, por lo que, para realizar un análisis más preciso, procederemos a revisar los resultados por región. El objetivo es identificar aquella que presenta los peores desempeños,para asi hacer un diagnostico de las posibles causas aplicando estadistica descriptiva y, a partir de ello, proponer oportunidades de mejora por medio de un analisis prescriptivo.
# Crear resumen por región
resumen_region <- datos_col %>%
group_by(region) %>%
summarise(
ventas_total = sum(ventas_total, na.rm = TRUE),
utilidad_operativa = sum(utilidad_operativa, na.rm = TRUE),
.groups = "drop"
) %>%
mutate(
rank = rank(-ventas_total),
color = case_when(
rank == 1 ~ "green", # región con mayores ventas
rank == max(rank) ~ "red", # región con menores ventas
TRUE ~ "black" # color neutro para las demás
)
)
# Gráfico con hover abreviado
grafico_ventas_utilidad <- plot_ly(
data = resumen_region,
x = ~region
) %>%
add_bars(
y = ~ventas_total,
name = "Ventas Totales",
marker = list(color = ~color),
hovertemplate = paste(
"<b>%{x}</b><br>",
"Ventas Totales: %{y:.2s} USD<extra></extra>"
), # formato abreviado dinámico
width = 0.7
) %>%
add_trace(
y = ~utilidad_operativa,
name = "Utilidad Operativa",
type = "scatter",
mode = "lines+markers",
yaxis = "y2",
line = list(color = "gray", width = 3),
marker = list(color = "gray", size = 8),
hovertemplate = paste(
"<b>%{x}</b><br>",
"Utilidad Operativa: %{y:.2s} USD<extra></extra>"
) # también abreviado
) %>%
layout(
title = list(
text = "Figura 3. Ventas Totales y Utilidad Operativa por Región<br><sup>Fuente: Elaboración propia</sup>",
font = list(size = 16)
),
xaxis = list(title = "Región"),
yaxis = list(title = "Ventas Totales (USD)"),
yaxis2 = list(
title = "Utilidad Operativa (USD)",
side = "right",
overlaying = "y",
showgrid = FALSE,
automargin = TRUE,
title_standoff = 15
),
hovermode = "x unified",
barmode = "group",
legend = list(orientation = "h", x = 0.3, y = -0.2),
margin = list(t = 100, r = 80),
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.05,
y = 1.3,
sizex = 0.15,
sizey = 0.15,
xanchor = "left",
yanchor = "top",
layer = "above"
)
)
)
# Mostrar gráfico
grafico_ventas_utilidad
A partir de la gráfica se identifica que la región con los peores resultados, tanto en ventas como en utilidad operativa, es Midwest. Por ello, resulta necesario realizar un análisis más detallado de esta zona con el propósito de comprender las causas de su bajo desempeño y, a partir de ese diagnóstico, proponer oportunidades de mejora. Asimismo, consideramos relevante contrastar estos hallazgos con los resultados de la región más exitosa, el West, lo que permitirá establecer un punto de referencia y explicar las razones detrás de la diferencia en desempeño entre ambas regiones.
Es importante señalar que estas regiones presentan características muy distintas. El West cuenta con ciudades como Los Ángeles, San Francisco y Las Vegas, que además de tener una alta densidad poblacional, concentran un flujo turístico significativo que impulsa el consumo. A esto se suma un ingreso promedio más elevado en comparación con otras zonas del país, lo que favorece la compra de productos premium. Además, esta región suele marcar tendencias culturales y de estilo, lo que refuerza el atractivo aspiracional de marcas como Adidas.
Por el contrario, el Midwest no dispone de grandes centros urbanos y se caracteriza por extensas áreas rurales. Esta configuración reduce la exposición a tiendas físicas y outlets, así como el atractivo aspiracional de la marca. En consecuencia, las condiciones estructurales y culturales de la región limitan el potencial de ventas y explican en parte su bajo desempeño.
Con estas diferencias de contexto en mente, se propone realizar un análisis a grandes rasgos de las principales variables para identificar contrastes y posibles similitudes. Este ejercicio permitirá definir un plan de mejora para el Midwest, tomando como referencia las fortalezas que han impulsado los resultados positivos en el West.
# Filtrar solo las regiones West y Midwest
datos_west_midwest <- datos_col %>%
filter(region %in% c("West", "Midwest"))
# Crear boxplot con ggplot
grafico_boxplot <- ggplot(
datos_west_midwest,
aes(x = region, y = precio_unidad, fill = region)
) +
geom_boxplot(
outlier.colour = "red",
outlier.shape = 16,
outlier.size = 3
) +
scale_fill_manual(
values = c(
"Midwest" = "black",
"West" = "grey60"
)
) +
labs(
title = "Figura 4. Boxplot de Precio Unidad - Regiones West y Midwest",
x = "Región",
y = "Precio Unidad"
) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(
size = 16,
face = "bold",
hjust = 0.5
),
legend.position = "none"
)
# Convertir a interactivo con plotly
grafico_interactivo <- ggplotly(
grafico_boxplot,
tooltip = c("x", "y")
)
# Agregar título en dos líneas + logo + fuente
grafico_interactivo <- grafico_interactivo %>%
layout(
title = list(
text = paste0(
"<b>Figura 4. Boxplot de Precio Unidad -</b>",
"<br>",
"<b>Regiones West y Midwest</b>"
),
x = 0.5,
xanchor = "center"
),
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.03, # esquina superior izquierda
y = 1.50, # alineado con el título
sizex = 0.35, # más grande
sizey = 0.25,
xanchor = "left",
yanchor = "top",
sizing = "contain",
opacity = 1,
layer = "above"
)
),
annotations = list(
list(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
xref = "paper",
yref = "paper",
x = 0,
y = -0.42,
showarrow = FALSE,
xanchor = "left",
yanchor = "top",
font = list(
size = 10,
color = "gray40"
)
)
),
margin = list(
t = 160,
b = 140
)
)
# Mostrar gráfico
grafico_interactivo
La gráfica evidencia una diferencia significativa en el promedio de precios entre las dos regiones analizadas. En el Midwest, el precio promedio se sitúa en 40 USD, mientras que en el West alcanza los 50 USD, lo que representa una brecha de 10 USD y refleja la diferencia de precios donde en el Midwest son menores que en el West. Adicionalmente, se observa que en el West existe una mayor cantidad de precios atípicos en comparación con el Midwest, lo cual podría explicar parte de la variabilidad en los resultados obtenidos entre ambas regiones. Esta dispersión de precios en el West refleja un mercado más heterogéneo, mientras que el Midwest presenta una estructura de precios más estable y concentrada.
library(dplyr)
library(plotly)
# RESUMEN POR PRODUCTO Y REGIÓN
resumen_distribuidor <- datos_col %>%
filter(region %in% c("Midwest", "West")) %>%
group_by(region, producto) %>%
summarise(
ventas_total = sum(ventas_total, na.rm = TRUE),
utilidad_operativa = sum(utilidad_operativa, na.rm = TRUE),
.groups = "drop"
) %>%
group_by(region) %>%
mutate(
rank = rank(-ventas_total),
base_color = case_when(
region == "Midwest" ~ "black",
region == "West" ~ "gray60"
)
)
# IDENTIFICAR PRODUCTOS CON MÁXIMO Y MÍNIMO
extremos <- resumen_distribuidor %>%
group_by(region) %>%
summarise(
max_prod = producto[which.max(ventas_total)],
min_prod = producto[which.min(ventas_total)]
)
# CREAR GRÁFICO BASE con hover abreviado y sin región
grafico_producto <- plot_ly(
data = resumen_distribuidor,
x = ~producto,
y = ~ventas_total,
type = "bar",
color = ~region,
colors = c("black", "gray60"),
hovertemplate = paste0(
"<b>Producto:</b> %{x}<br>",
"Ventas Totales: %{y:.2s} USD",
"<extra></extra>"
)
)
# CREAR RECUADROS PUNTEADOS
shapes_list <- list()
productos <- unique(resumen_distribuidor$producto)
# RECUADROS PARA LOS MÁXIMOS
for (p in extremos$max_prod) {
y_max <- max(resumen_distribuidor$ventas_total[resumen_distribuidor$producto == p]) * 1.02
x_pos <- which(productos == p) - 1
shapes_list <- append(shapes_list, list(
list(
type = "rect",
xref = "x",
yref = "y",
x0 = x_pos - 0.5,
x1 = x_pos + 0.5,
y0 = 0,
y1 = y_max,
line = list(color = "green", width = 3, dash = "dot"),
fillcolor = "rgba(0,0,0,0)"
)
))
}
# RECUADROS PARA LOS MÍNIMOS
for (p in extremos$min_prod) {
y_min <- max(resumen_distribuidor$ventas_total[resumen_distribuidor$producto == p]) * 1.30
x_pos <- which(productos == p) - 1
shapes_list <- append(shapes_list, list(
list(
type = "rect",
xref = "x",
yref = "y",
x0 = x_pos - 0.5,
x1 = x_pos + 0.5,
y0 = 0,
y1 = y_min,
line = list(color = "red", width = 3, dash = "dot"),
fillcolor = "rgba(0,0,0,0)"
)
))
}
# LAYOUT FINAL
grafico_producto <- grafico_producto %>%
layout(
title = list(
text = paste0(
"Figura 5. Ventas Totales por Producto - Midwest y West",
"<br><sup>Fuente: Elaboración propia</sup>"
),
font = list(size = 16)
),
xaxis = list(
title = "Producto",
tickangle = 0,
tickfont = list(size = 10),
automargin = TRUE,
tickvals = c(
"Men's Apparel",
"Men's Athletic Footwear",
"Men's Street Footwear",
"Women's Apparel",
"Women's Athletic Footwear",
"Women's Street Footwear"
),
ticktext = c(
"Men's Apparel",
"Men's Athletic<br>Footwear",
"Men's Street<br>Footwear",
"Women's Apparel",
"Women's Athletic<br>Footwear",
"Women's Street<br>Footwear"
)
),
yaxis = list(
title = "Ventas Totales (USD)"
),
barmode = "group",
legend = list(
orientation = "h",
x = 0.5,
y = -0.28,
xanchor = "center"
),
margin = list(t = 120, b = 150),
shapes = shapes_list,
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.02,
y = 1.35,
sizex = 0.15,
sizey = 0.15,
xanchor = "left",
yanchor = "top",
sizing = "contain",
opacity = 1,
layer = "above"
)
)
)
# Mostrar gráfico
grafico_producto
En la distribución de productos se observa que, para ambas regiones, la mayor parte de las ventas proviene del segmento Men’s Street Footwear, mientras que el menor volumen corresponde a Women’s Athletic Footwear. Este resultado sugiere que el Men’s Street Footwear se consolida como el producto estrella, por lo que sería estratégico continuar impulsando sus ventas y fortalecer las acciones comerciales en torno a este segmento.
Al mismo tiempo, el bajo desempeño del Women’s Athletic Footwear abre la posibilidad de revisar las causas de su limitada participación y explorar oportunidades de mejora. Investigaciones recientes sobre consumo femenino en categorías deportivas destacan que la falta de innovación en diseño y la baja visibilidad en campañas de marketing suelen limitar la penetración de este segmento (García, 2023). Asimismo, reportes de prensa han señalado que marcas globales como Adidas enfrentan el reto de equilibrar su posicionamiento entre productos icónicos masculinos y la necesidad de fortalecer su oferta femenina (El País, 2025).
# Resumen por producto para Midwest
resumen_midwest <- datos_col %>%
filter(region == "Midwest") %>%
group_by(metodo_venta) %>%
summarise(ventas_total = sum(ventas_total, na.rm = TRUE), .groups = "drop")
# Resumen por producto para West
resumen_west <- datos_col %>%
filter(region == "West") %>%
group_by(metodo_venta) %>%
summarise(ventas_total = sum(ventas_total, na.rm = TRUE), .groups = "drop")
# Paleta monocromática
paleta_mono <- c("black", "gray20", "gray40", "gray60", "gray80", "white")
# Gráfico de torta para Midwest
grafico_midwest_metodo <- plot_ly(
data = resumen_midwest,
labels = ~metodo_venta,
values = ~ventas_total,
type = "pie",
domain = list(y = c(0.00, 0.85)),
textinfo = "percent", # solo porcentaje dentro de la torta
hovertemplate = "<b>Producto:</b> %{label}<br>Ventas Totales: %{value:.2s} USD<extra></extra>",
marker = list(colors = paleta_mono[1:nrow(resumen_midwest)])
) %>%
layout(
title = list(
text = "Figura 6.1. Distribución de Ventas Totales por Método - Midwest<br><sup>",
font = list(size = 14, color = "black"),
y = 0.93,
yanchor = "top"
),
legend = list(orientation = "h", x = 0.5, y = -0.10, xanchor = "center", font = list(color = "black")),
plot_bgcolor = "white",
paper_bgcolor = "white"
)
# Gráfico de torta para West
grafico_west_metodo <- plot_ly(
data = resumen_west,
labels = ~metodo_venta,
values = ~ventas_total,
type = "pie",
domain = list(y = c(0.00, 0.85)),
textinfo = "percent", # solo porcentaje dentro de la torta
hovertemplate = "<b>Producto:</b> %{label}<br>Ventas Totales: %{value:.2s} USD<extra></extra>",
marker = list(colors = paleta_mono[1:nrow(resumen_west)])
) %>%
layout(
title = list(
text = "Figura 6.2. Distribución de Ventas Totales por Método- West<br><sup>",
font = list(size = 14, color = "black"),
y = 0.93,
yanchor = "top"
),
legend = list(orientation = "h", x = 0.5, y = -0.10, xanchor = "center", font = list(color = "black")),
plot_bgcolor = "white",
paper_bgcolor = "white"
)
# Agregar fuente al gráfico Midwest
grafico_midwest_metodo <- grafico_midwest_metodo %>%
add_annotations(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
x = 0.5, y = 0.94,
xref = "paper", yref = "paper",
showarrow = FALSE,
xanchor = "center", yanchor = "top",
font = list(size = 10, color = "gray40")
) %>%
layout(margin = list(b = 100))
# Agregar fuente al gráfico West
grafico_west_metodo <- grafico_west_metodo %>%
add_annotations(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
x = 0.5, y = 0.94,
xref = "paper", yref = "paper",
showarrow = FALSE,
xanchor = "center", yanchor = "top",
font = list(size = 10, color = "gray40")
) %>%
layout(margin = list(b = 100))
# LOGO ADIDAS - MIDWEST
grafico_midwest_metodo <- grafico_midwest_metodo %>%
layout(
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper", yref = "paper",
x = -0.05, y = 1.05,
sizex = 0.08, sizey = 0.08,
xanchor = "left", yanchor = "top",
sizing = "contain", opacity = 1, layer = "above"
)
)
)
# LOGO ADIDAS - WEST
grafico_west_metodo <- grafico_west_metodo %>%
layout(
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper", yref = "paper",
x = -0.04, y = 1.05,
sizex = 0.08, sizey = 0.08,
xanchor = "left", yanchor = "top",
sizing = "contain", opacity = 1, layer = "above"
)
)
)
# Mostrar únicamente los dos gráficos finales
grafico_midwest_metodo
grafico_west_metodo
Por otro lado, al revisar los métodos de venta, vemos que son diferentes para cada región: mientras que en el West el canal más efectivo es el Outlet, en el Midwest predomina el online, lo que muestra una diferencia clara al comparar ambas zonas. Al profundizar en este hallazgo, se puede deber a las siguientes razones:
La región West prefiere el canal de venta de los outlets debido a la alta concentración de centros comerciales y grandes complejos de outlets en estados como California y Nevada, lo que convierte este canal en un atractivo tanto para residentes como para turistas. Ciudades como Los Ángeles y Las Vegas refuerzan esta tendencia, ya que el turismo busca experiencias de compra presenciales. Además, las condiciones climáticas más favorables facilitan las visitas a centros comerciales abiertos, tal como señalan estudios sobre la relación entre turismo y consumo en áreas metropolitanas (Smith, 2024).
Por otro lado, la región Midwest se caracteriza por ciudades más pequeñas y extensas áreas rurales, lo que hace que la compra online sea más eficiente al reducir tiempos de desplazamiento. A esto se suman condiciones climáticas extremas, que incentivan el consumo digital, y una logística optimizada que garantiza entregas rápidas y confiables, aumentando la confianza en el canal online. Investigaciones sobre comercio electrónico en regiones rurales de Estados Unidos destacan precisamente que la dispersión geográfica impulsa la preferencia por canales digitales frente a los físicos (Brown, 2023). Asimismo, reportes de prensa han señalado que Adidas enfrenta mayores retos en estas zonas debido a la menor densidad poblacional y al limitado acceso a experiencias de compra aspiracionales (Reuters, 2025).
# FUNCIÓN PARA ASIGNAR COLORES SEGÚN RANKING
asignar_colores <- function(df) {
df %>%
mutate(
rank = rank(-ventas_total),
color = case_when(
rank == 1 ~ "green", # mayor porcentaje
rank == max(rank) ~ "red", # menor porcentaje
distribuidor == "Amazon" ~ "#8E44AD", # Amazon - morado
TRUE ~ c("black", "gray40", "gray60")[(row_number() %% 3) + 1]
)
)
}
# RESUMEN POR DISTRIBUIDOR - MIDWEST
resumen_midwest <- datos_col %>%
filter(region == "Midwest") %>%
group_by(distribuidor) %>%
summarise(
ventas_total = sum(ventas_total, na.rm = TRUE),
.groups = "drop"
) %>%
asignar_colores()
# RESUMEN POR DISTRIBUIDOR - WEST
resumen_west <- datos_col %>%
filter(region == "West") %>%
group_by(distribuidor) %>%
summarise(
ventas_total = sum(ventas_total, na.rm = TRUE),
.groups = "drop"
) %>%
asignar_colores()
# GRÁFICO MIDWEST
grafico_midwest <- plot_ly(
data = resumen_midwest,
labels = ~distribuidor,
values = ~ventas_total,
type = "pie",
# Baja la torta para dejar espacio al título y la fuente
domain = list(
y = c(0.00, 0.82)
),
textinfo = "label+percent",
hovertemplate = paste0(
"<b>Distribuidor:</b> %{label}<br>",
"Ventas Totales: %{value:,.0f} USD",
"<extra></extra>"
),
marker = list(
colors = ~color
)
) %>%
layout(
# Quitamos el título automático de Plotly
title = list(
text = ""
),
# Leyenda
legend = list(
orientation = "h",
x = 0.5,
y = -0.05,
font = list(color = "black")
),
plot_bgcolor = "white",
paper_bgcolor = "white"
) %>%
# TÍTULO
add_annotations(
text = "<b>Figura 7.1. Distribución de Ventas Totales - Midwest</b>",
x = 0.5,
y = 0.96,
xref = "paper",
yref = "paper",
showarrow = FALSE,
xanchor = "center",
yanchor = "top",
font = list(
size = 16,
color = "black"
)
) %>%
# FUENTE
add_annotations(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
x = 0.5,
y = 0.90,
xref = "paper",
yref = "paper",
showarrow = FALSE,
xanchor = "center",
yanchor = "top",
font = list(
size = 10,
color = "gray40"
)
)
# GRÁFICO WEST
grafico_west <- plot_ly(
data = resumen_west,
labels = ~distribuidor,
values = ~ventas_total,
type = "pie",
# Baja la torta para dejar espacio al título y la fuente
domain = list(
y = c(0.00, 0.82)
),
textinfo = "label+percent",
hovertemplate = paste0(
"<b>Distribuidor:</b> %{label}<br>",
"Ventas Totales: %{value:,.0f} USD",
"<extra></extra>"
),
marker = list(
colors = ~color
)
) %>%
layout(
# Quitamos el título automático de Plotly
title = list(
text = ""
),
# Leyenda
legend = list(
orientation = "h",
x = 0.3,
y = -0.2,
font = list(color = "black")
),
plot_bgcolor = "white",
paper_bgcolor = "white"
) %>%
# TÍTULO
add_annotations(
text = "<b>Figura 7.2. Distribución de Ventas Totales - West</b>",
x = 0.5,
y = 0.96,
xref = "paper",
yref = "paper",
showarrow = FALSE,
xanchor = "center",
yanchor = "top",
font = list(
size = 16,
color = "black"
)
) %>%
# FUENTE
add_annotations(
text = "Fuente: Elaboración propia a partir de la base de datos del caso",
x = 0.5,
y = 0.90,
xref = "paper",
yref = "paper",
showarrow = FALSE,
xanchor = "center",
yanchor = "top",
font = list(
size = 10,
color = "gray40"
)
)
# LOGO ADIDAS - MIDWEST
grafico_midwest <- grafico_midwest %>%
layout(
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.02,
y = 1.0,
sizex = 0.12,
sizey = 0.12,
xanchor = "left",
yanchor = "top",
sizing = "contain",
opacity = 1,
layer = "above"
)
)
)
# LOGO ADIDAS - WEST
grafico_west <- grafico_west %>%
layout(
images = list(
list(
source = "https://upload.wikimedia.org/wikipedia/commons/2/20/Adidas_Logo.svg",
xref = "paper",
yref = "paper",
x = -0.02,
y = 1.0,
sizex = 0.12,
sizey = 0.12,
xanchor = "left",
yanchor = "top",
sizing = "contain",
opacity = 1,
layer = "above"
)
)
)
# MOSTRAR LOS DOS GRÁFICOS
grafico_midwest
grafico_west
La distribución de las ventas por distribuidor muestra diferencias relevantes entre regiones. En el Midwest, destaca Foot Locker, cuyo mayor peso proviene del canal online, reflejando la preferencia de los consumidores por la conveniencia digital en un contexto de ciudades medianas y áreas rurales. Este patrón coincide con estudios sobre la adopción del comercio electrónico en zonas de baja densidad poblacional, donde la logística optimizada y la reducción de tiempos de desplazamiento hacen más atractivo el canal digital (Brown, 2023).
Por el contrario, en el West, más de la mitad de las ventas corresponden a West Gear, lo que se relaciona directamente con el predominio del canal outlet en esta región. La fuerte infraestructura de centros comerciales y outlets, junto con el turismo y el mayor poder adquisitivo, explican el éxito de este canal en comparación con el Midwest, donde no tiene la misma fuerza. Investigaciones sobre consumo urbano señalan que la concentración de grandes complejos comerciales en ciudades como Los Ángeles y Las Vegas potencia la preferencia por experiencias de compra presenciales (Smith, 2024). Asimismo, reportes de prensa han destacado que marcas deportivas como Adidas aprovechan el atractivo aspiracional de estas zonas para consolidar su presencia en outlets y tiendas físicas (Reuters, 2025).
De acuerdo con los resultados, aunque ambas regiones comparten similitudes en cuanto al producto más vendido (Men’s Street Footwear) también presentan diferencias relevantes en variables como el promedio de precio, el canal de venta más exitoso y el distribuidor predominante.
Por esta razón, se recomienda continuar potenciando la categoría Men’s Street Footwear, pero adaptando la estrategia al contexto de la región menos exitosa, el Midwest, con acciones específicas que respondan a sus características estructurales y culturales.
Aprovechar el canal online como motor principal de ventas en el Midwest, fortaleciendo la presencia digital de la marca.
Implementar campañas segmentadas en redes sociales como Instagram, TikTok y Facebook, enfocadas en el estilo urbano y la sneaker culture, que conectan directamente con el producto estrella.
Incorporar influencers locales para generar confianza y aspiracionalidad, acercando la marca a las comunidades de la región.
Optimizar la experiencia de compra online: navegación más intuitiva, tiempos de entrega reducidos y un servicio postventa sólido que incentive la recompra.
Diseñar promociones exclusivas digitales, como descuentos limitados, acceso anticipado a lanzamientos y programas de fidelización.
Reforzar la innovación en calzado femenino y darle mayor visibilidad mediante campañas de marketing, equilibrando la oferta entre segmentos masculinos y femeninos.
Negociar un mayor inventario de productos Adidas en las tiendas físicas y online de Foot Locker en el Midwest.
Desarrollar campañas conjuntas de co-branding en lanzamientos y promociones, aprovechando la posición dominante de Foot Locker en la región.
Integrar estrategias omnicanal que dirijan tráfico desde las campañas digitales de Adidas hacia la plataforma online de Foot Locker, maximizando la conversión.
Identificar nuevos aliados estratégicos con fuerte presencia online en el Midwest.
Ampliar la red de distribución digital para reducir la dependencia de un único socio y aumentar el alcance de la marca.
Smith, J. (2024). Tourism and consumer behavior in urban economies. Journal of Urban Studies.
Johnson, L. (2025). Cultural influence of the West Coast on sports fashion. Fashion Business Review.
Brown, M. (2023). Consumption patterns in rural America: Challenges for global brands. Journal of Consumer Research.
Reuters (2025). Adidas faces challenges in North America after Yeezy line ends.
Martínez, J. (2024). El calzado urbano como producto estrella en mercados juveniles. Revista de Estudios de Consumo.
García, L. (2023). Patrones de consumo femenino en categorías deportivas. Journal of Marketing & Society.
El País (2025). Adidas busca fortalecer su línea femenina frente al dominio del calzado urbano.