Introducción

Este informe tiene como objetivo evaluar el desempeño comercial y financiero de las distintas líneas de productos en el mercado desde un enfoque regional y global de Adidas. A través de técnicas de estadística descriptiva, se realizará un análisis exploratorio que permita comprender las dinámicas de rentabilidad, eficiencia en ventas y contribución al objetivo financiero general de la empresa. El estudio se estructura en tres ejes principales:

Rentabilidad: Se analizarán los niveles de ventas totales por region mediante grafico bloxplot y el margen operativo promedio por region, examinando cómo varían en función del precio unitario y el volumen de ventas, este enfoque permitirá identificar las líneas más rentables y aquellas que requieren posibles ajustes en costos o precios.

Eficiencia en Ventas: Se evaluará la relación entre el precio por unidad y las unidades promedio vendidas lo anterior teniendo en cuenta por region cada información la cual se visualizará por lista desplegable uno a uno cada grafico, con el fin de detectar patrones de demanda, medir la elasticidad del precio y reconocer productos que se desvían del comportamiento esperado como una alta demanda con precios elevados o baja demanda con precios bajos.

Desempeño Financiero General: Se explorará cómo las ventas totales y la utilidad operativa de cada producto contribuyen al cumplimiento de los objetivos financieros de la empresa. El análisis permitirá identificar productos con alto volumen pero baja rentabilidad, así como áreas que requieren mejoras en precios, costos o estrategias de comercialización.

Para abordar estos ejes, se utilizarán indicadores como el margen operativo por región, el canal de venta líder en unidades vendidas, y las tendencias por modalidad de venta (tienda física, online, outlet). Además, se incorporarán gráficos interactivos por región que faciliten la visualización de la relación entre precio y demanda, apoyando la toma de decisiones estratégicas.

Finalmente, el informe ofrecerá un panorama integral sobre qué productos y rangos de precio están generando mayor impacto financiero, y algunas recomendaciones para optimizar utilidades por venta, mejorar la rentabilidad y fortalecer el crecimiento sostenido de Adidas.

Análisis exploratorio

El análisis exploratorio de datos (EDA) aplicado a las ventas de Adidas a nivel regional permite comprender a fondo el comportamiento del mercado, identificar tendencias y patrones de consumo, y anticiparse a los cambios en la demanda.

A través de la transformación y análisis de los datos, la empresa puede diseñar estrategias comerciales más eficientes, orientadas a optimizar la rentabilidad por producto y región, y con ello fortalecer su competitividad frente a otras marcas del sector deportivo.

# 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(kableExtra)
library(scales)
library(viridis)

Variables de analisis:

Se parte con una base de datos detallada que abarca informacion determinante y critica a la hora de llevar a cabo el analisis planteado, las cuales se dan a conocer a continuacion:

library(readxl)
Datos_Adidas <- read_excel("C:/Users/LENOVO/Downloads/Datos_Adidas.xlsx")
library(dplyr)
names(Datos_Adidas)
##  [1] "Distribuidor"        "Region"              "Estado_Departamento"
##  [4] "Ciudad"              "Producto"            "Precio_Unitario"    
##  [7] "Unidades_Vendidas"   "Ventas_Totales"      "Utilidad_Operativa" 
## [10] "Margen_Operativo"    "Metodo_Venta"

Aquí un referente de unidades vendidas por cada linea de producto en el mercado:

library(dplyr)
library(knitr)
library(kableExtra)

# 1. Crear la tabla resumen por producto
tabla_resumen <- Datos_Adidas %>%
  group_by(Producto) %>%
  summarise(
    Total_Unidades_Vendidas = sum(Unidades_Vendidas, na.rm = TRUE)
  )

# 2. Crear la fila de total general
total_general <- tabla_resumen[1, ]              # copia la estructura
total_general$Producto <- "Total general"
total_general$Total_Unidades_Vendidas <- sum(tabla_resumen$Total_Unidades_Vendidas)

# 3. Unir ambas tablas en 'tabla_final'
tabla_final <- rbind(tabla_resumen, total_general)

# 4. Formatear la tabla con kable/kableExtra
tabla_final_kable <- tabla_final %>%
  kbl(caption = "Total de Unidades Vendidas por Producto") %>%
  kable_styling(
    full_width = FALSE,
    position = "center",
    bootstrap_options = c("striped", "hover", "condensed")
  ) %>%
  row_spec(
    nrow(tabla_final),   # última fila (Total general)
    bold = TRUE,
    color = "black",
    background = "#DDEBF7"
  )

# 5. Imprimir la tabla formateada
tabla_final_kable
Total de Unidades Vendidas por Producto
Producto Total_Unidades_Vendidas
Men’s Apparel 306683
Men’s Athletic Footwear 435526
Men’s Street Footwear 593320
Women’s Apparel 433827
Women’s Athletic Footwear 317236
Women’s Street Footwear 392269
Total general 2478861

Indicadores de centralidad y variabilidad

Se elabora un cuadro resumen de los indicadores de tendencia central para las variables numéricas del análisis, con el fin de obtener una visión integral del comportamiento de los datos. Esta herramienta permite identificar valores atípicos, detectar patrones relevantes y comprender la distribución general de las variables en la base de datos.

En el consolidado anterior se identificaron datos atípicos dentro de las variables que afectan tanto los valores mínimos como máximos. Se observaron ventas en cero que generaron un margen de utilidad minimo equivalente al 0%. En la región Midwest no se registraron ventas durante el periodo para el producto Women’s Athletic Footwear. Dado que la cantidad de registros con esta característica carece de relevancia estadística, dichos datos fueron eliminados de la base de datos inicial pero se dejan documentados.

Teniendo en cuenta la informacion anterior, se muestan nuevamente los indicadores de centralidad y variabilidad para la base de datos final.

#Generar una secuencia de números desde 1 hasta el número total de filas y agrega esta secuencia a la tabla como una nueva columna.

id = 1:(dim(Datos_Adidas)[1])
Datos_Adidas = data.frame(id, Datos_Adidas)
library(dplyr)
library(tidyr)
library(scales)

tabla_indicadores <- Datos_Adidas %>%
  select(where(is.numeric)) %>%     # Toma solo columnas numéricas
  select(-id) %>%                   # EXCLUYE la columna id
  pivot_longer(
    cols = everything(),
    names_to = "Variable",
    values_to = "Valor"
  ) %>%
  group_by(Variable) %>%
  summarise(
    Promedio = mean(Valor, na.rm = TRUE),
    Mediana  = median(Valor, na.rm = TRUE),
    Minimo   = min(Valor, na.rm = TRUE),
    Maximo   = max(Valor, na.rm = TRUE),
    DesvEst  = sd(Valor, na.rm = TRUE)
  ) %>%
  # Formato según tipo de variable
  mutate(
    Promedio = case_when(
      Variable %in% c("Margen_Operativo") ~ percent(Promedio, accuracy = 0.1),
      Variable %in% c("Precio_Unitario", "Ventas_Totales", "Utilidad_Operativa") ~ dollar(Promedio, accuracy = 0.01),
      TRUE ~ comma(Promedio)
    ),
    Mediana = case_when(
      Variable %in% c("Margen_Operativo") ~ percent(Mediana, accuracy = 0.1),
      Variable %in% c("Precio_Unitario", "Ventas_Totales", "Utilidad_Operativa") ~ dollar(Mediana, accuracy = 0.01),
      TRUE ~ comma(Mediana)
    ),
    Minimo = case_when(
      Variable %in% c("Margen_Operativo") ~ percent(Minimo, accuracy = 0.1),
      Variable %in% c("Precio_Unitario", "Ventas_Totales", "Utilidad_Operativa") ~ dollar(Minimo, accuracy = 0.01),
      TRUE ~ comma(Minimo)
    ),
    Maximo = case_when(
      Variable %in% c("Margen_Operativo") ~ percent(Maximo, accuracy = 0.1),
      Variable %in% c("Precio_Unitario", "Ventas_Totales", "Utilidad_Operativa") ~ dollar(Maximo, accuracy = 0.01),
      TRUE ~ comma(Maximo)
    ),
    DesvEst = case_when(
      Variable %in% c("Margen_Operativo") ~ percent(DesvEst, accuracy = 0.1),
      Variable %in% c("Precio_Unitario", "Ventas_Totales", "Utilidad_Operativa") ~ dollar(DesvEst, accuracy = 0.01),
      TRUE ~ comma(DesvEst)
    )
  )
tabla_indicadores
Variable Promedio Mediana Minimo Maximo DesvEst
Margen_Operativo 42.3% 41.0% 10.0% 80.0% 9.7%
Precio_Unitario $45.22 $45.00 $7.00 $110.00 $14.71
Unidades_Vendidas 257 176 6.0 1,275 214
Utilidad_Operativa $4,896.82 $3,264.00 $75.20 $39,000.00 $4,866.45
Ventas_Totales $12,460.25 $7,812.00 $160.00 $82,500.00 $12,716.50

Se realizará el analisis sobre un total de registros de:

##Registros totales 
nrow(Datos_Adidas)
## [1] 9644

Analisis regional

Datos_Adidas <- Datos_Adidas %>%
  mutate(Ventas_Totales = as.numeric(gsub(",", "", Ventas_Totales)))

# Gráfico de caja y bigotes por Región
p <- ggplot(
  Datos_Adidas,
  aes(x = Region, y = Ventas_Totales)
) +
  geom_boxplot(
    fill = "lightblue",
    color = "black",
    outlier.colour = "red",
    outlier.shape = 16,
    outlier.size = 3
  ) +
  labs(
    title = "Boxplot Interactivo de Ventas Totales por Región",
    x = "Región",
    y = "Ventas Totales"
  ) +
  theme_minimal()

# Convertir a gráfico interactivo
ggplotly(p)

Este grafico permite analizar la distribución de las ventas totales por registro dentro de cada región, mostrando patrones de dispersión, valores típicos y presencia de datos atípicos. Se observa que la región Southeast presenta la mediana más elevada, lo que indica que, en términos de ventas por registro individual, esta región suele tener valores más altos. Esto sugiere que los clientes o transacciones típicas en Southeast generan mayores ventas promedio en comparación con las demás regiones.

No todas las regiones generan ventas por registro del mismo nivel, las ventas en Southeast tienden a ser más altas por transacción, la región West destaca por ventas altas, lo que contribuye a su liderazgo en ventas totales, aunque su mediana no sea la más elevada.

se puede concluir que existe una alta dispersión en todas las regiones, lo que indica que el comportamiento de ventas dentro de la misma región no son parecidas entre sí, sino que varían mucho, logrando inferir que, en el periodo se dieron ventas menores, medianas y altas, posibles clientes o transacciones con comportamientos no constantes, pedidos especiales o significativos, identificando que bajo esta premisa es difícil predecir ventas estandar.

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

# 1. NO convertir nada: ya está en decimales
Datos_Adidas_clean <- Datos_Adidas %>%
  mutate(
    Margen_Operativo_dec = as.numeric(Margen_Operativo)   # 0.50, 0.30, 0.35
  )

# 2. Promedio de margen por región
Margen_Region <- Datos_Adidas_clean %>%
  group_by(Region) %>%
  summarise(Promedio_Margen = mean(Margen_Operativo_dec, na.rm = TRUE)) %>%
  arrange(desc(Promedio_Margen))

# 3. Gráfico de barras en % + interactivo
p <- ggplot(Margen_Region,
            aes(x = reorder(Region, Promedio_Margen),
                y = Promedio_Margen)) +
  geom_col(fill = "blue") +
  coord_flip() +
  geom_text(aes(label = paste0(round(Promedio_Margen * 100), "%")),
            hjust = 1.1,
            color = "white",
            size = 5) +
  labs(
    title = "Margen Operativo Promedio por Región",
    x = "Región",
    y = "Margen Operativo (%)"
  ) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  theme_minimal()

ggplotly(p)

En la grafica de Margen Operativo Promedio por Región, se puede concluir que, South es la región líder, con un margen operativo promedio del 47% se puede inferir que esta zona tiene mayor eficiencia operativa, mejores precios, menores costos o una combinación de ambos,productos o canales más rentables.Un comportamiento intermedio para Midwest 44% y Southeast 42% con menor margen operativo Northeast 41% y West 40%.

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

# 1. Limpiar margen (ya está en decimales 0.50 = 50%)
Datos_Adidas_clean <- Datos_Adidas %>%
  mutate(
    Margen_Operativo_dec = as.numeric(Margen_Operativo)
  )

# 2. Calcular margen promedio por región y producto
Rentabilidad_Region_Producto <- Datos_Adidas_clean %>%
  group_by(Region, Producto) %>%
  summarise(
    Margen_Promedio = mean(Margen_Operativo_dec, na.rm = TRUE),
    .groups = "drop"
  )

# 3. Obtener solo el producto más rentable por región
Top_Productos_Region <- Rentabilidad_Region_Producto %>%
  group_by(Region) %>%
  slice_max(order_by = Margen_Promedio, n = 1) %>%
  ungroup()

# 4. Gráfico de barras facetado por región
p <- ggplot(Top_Productos_Region,
            aes(x = reorder(Producto, Margen_Promedio),
                y = Margen_Promedio,
                fill = Region)) +
  geom_col() +
  coord_flip() +
  geom_text(aes(label = paste0(round(Margen_Promedio * 100), "%")),
            hjust = 1.1,
            color = "white",
            size = 4) +
  labs(
    title = "Producto Más Rentable por Región",
    x = "Producto",
    y = "Margen Operativo (%)"
  ) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  facet_wrap(~ Region) +
  theme_minimal()

ggplotly(p)

La gráfica por producto mas rentable por region, permite identificar qué línea de producto es la que más aporta a la rentabilidad de Adidas. Se observan tendencias en cuanto al producto Women’s Apparel el cual predomina en las regiones analizadas,producto más rentable en South, Midwest y Southeast.Esto indica un producto con un buen posicionamiento, marcando preferencia. Women’s Apparel es el producto transversalmente más rentable, dominando la mayoría de regiones.

South destaca como el mejor mercado, no solo por el producto líder, sino por el margen más alto 54%. Los patrones regionales cambian, especialmente en el Northeast y West, donde otros productos dominan.

library(dplyr)
library(ggplot2)
library(plotly)

# Limpiar unidades numéricas
Datos_Adidas_clean <- Datos_Adidas %>%
  mutate(
    Unidades_Vendidas_num = as.numeric(gsub(",", "", Unidades_Vendidas))
  )

# Resumen por región y canal
Canales_Region <- Datos_Adidas_clean %>%
  group_by(Region, Metodo_Venta) %>%
  summarise(
    Total_Unidades = sum(Unidades_Vendidas_num, na.rm = TRUE),
    .groups = "drop"
  )

# Gráfico
p <- ggplot(Canales_Region,
            aes(x = Region,
                y = Total_Unidades,
                fill = Metodo_Venta)) +
  geom_col(position = "dodge") +
  labs(
    title = "Unidades Vendidas por Canal de Venta y Región",
    x = "Región",
    y = "Unidades Vendidas"
  ) +
  theme_minimal()

ggplotly(p)

La grafica unidades vendidas por canal de venta y region, nos permite identificar el canal mas relevante en terminos de unidades vendidas por region, destacando el canal Outlet en dos regiones South y West, en el metodo de venta online se identifica que obtuvo más unidades vendidas en las regiones como south, southeast, west. Finalmente el metodo de venta In Store presentó mas relevancia en las regiones Northeast y West observando que es el canal de menor preferencia en comparación a las demás.

A nivel consolidado el canal de venta mas representativo en cuanto a total de unidades vendidas es Online con 939.093 unidades, seguido por Outlet con una cantidad de unidades 849.778 y finalmente el canal in store con 689.990, permitiendo una visual en cuanto a manejo y distribución de inventarios por canal.

library(dplyr)
library(ggplot2)
library(plotly)

# 1. Limpiar unidades
Datos_Adidas_clean <- Datos_Adidas %>%
  mutate(
    Unidades_Vendidas_num = as.numeric(gsub(",", "", Unidades_Vendidas))
  )

# 2. Calcular ventas por canal y región
Canales_Region <- Datos_Adidas_clean %>%
  group_by(Region, Metodo_Venta) %>%
  summarise(
    Total_Unidades = sum(Unidades_Vendidas_num, na.rm = TRUE),
    .groups = "drop"
  )

# 3. Obtener SOLO el canal que más vende en cada región
Top_Canal_Region <- Canales_Region %>%
  group_by(Region) %>%
  slice_max(order_by = Total_Unidades, n = 1) %>%
  ungroup()

# 4. Gráfico interactivo
p <- ggplot(Top_Canal_Region,
            aes(x = reorder(Region, Total_Unidades),
                y = Total_Unidades,
                fill = Metodo_Venta)) +
  geom_col() +
  coord_flip() +
  geom_text(aes(label = paste0(Total_Unidades, " unds")),
            hjust = -0.1, size = 5) +
  labs(
    title = "Ranking del Canal con Más Unidades Vendidas por Región ",
    x = "Región",
    y = "Unidades Vendidas"
  ) +
  theme_minimal()

ggplotly(p)

Este grafico permite complementar la idea anterior donde por medio de un ranking se cataloga el canal lider por región.Los Outlet dominan en las regiones como South y West, esto puede interpretarse como mayor sensibilidad al precio y que estas regiones tienen más presencia de puntos outlets.

Online domina en Midwest y Southeast, indica mercados digitalmente fuertes, consumidores posiblemente jóvenes con facilidad de acceso a redes y tecnología con preferencia por lo practico y rapido.

In-store solo domina en Northeast, lo que puede significar una cultura tradicional.

Oportunidades de mejoras para incentivar unidades vendidas

Fortalecer el canal In-store en regiones como southeast y South por medio de eventos en tienda fisica que capten mayor cantidad de clientes. Optimizar la red de outlets en regiones con baja penetración, como Southeast y Midwest, lo anterior podría abrir nuevas oportunidades fomentando la cantidad de unidades vendidas mediante descuentos, fijación de precio y mezcla de inventario. Se podría segmentar estrategias regionales a nivel individual dependiendo de la preferencia por metodo de venta, lo anterior para estructurar una estrategia diverificada e incentivar la venta de los productos por unidad y en conjunto con la revisión de precios lograr mayores ingresos.

#Eficiencia en ventas

Se realiza un análisis estratégico de la eficiencia en ventas mediante un gráfico de barras por region que relacione las unidades vendidas con el precio por unidad. Esta visualización permite identificar y reforzar la relación existente entre la cantidad de unidades comercializadas y los precios establecidos a nivel general de acuerdo a la base de datos analizada, así como detectar las regiones de mayor y menor volumen de ventas para proponer posibles estrategias que permitan un mayor crecimiento.

library(dplyr)
library(ggplot2)
library(plotly)

# 1. Resumen por región y precio
datos_region <- Datos_Adidas %>%
  group_by(Region, Precio_Unitario) %>%
  summarise(Unidades_Promedio = mean(Unidades_Vendidas, na.rm = TRUE))

# 2. Lista de regiones
regiones <- unique(datos_region$Region)

# 3. Crear una figura base vacía
fig <- plot_ly()

# 4. Agregar un trace por cada región
for (i in seq_along(regiones)) {
  region_actual <- regiones[i]
  datos_filtrados <- datos_region %>% filter(Region == region_actual)
  
  fig <- fig %>% 
    add_bars(
      data = datos_filtrados,
      x = ~Precio_Unitario,
      y = ~Unidades_Promedio,
      name = region_actual,
      visible = ifelse(i == 1, TRUE, FALSE)  # Solo la primera visible
    )
}

# 5. Crear botones del dropdown
botones <- lapply(seq_along(regiones), function(i) {
  visible <- rep(FALSE, length(regiones))
  visible[i] <- TRUE  # Activar solo la región seleccionada
  
  list(
    method = "restyle",
    args = list("visible", visible),
    label = regiones[i]
  )
})

# 6. Layout final (grande y centrado)
fig <- fig %>%
  layout(
    title = "Precio vs Unidades Vendidas por Región",
    xaxis = list(title = "Precio Unitario"),
    yaxis = list(title = "Unidades Promedio Vendidas"),
    updatemenus = list(
      list(
        type = "dropdown",
        active = 0,
        buttons = botones,
        x = 0.1,
        y = 1.15
      )
    ),
    height = 480,
    width = 1100
  )

fig

En estos 5 graficos se resume las unidades promedio vendidas por precio unitario con lo cual detecatamos que:

De forma general los precios medios (30–50) son los más consistentes en generar buena demanda en casi todas las regiones, ademas regiones como South y Southeast muestran alta sensibilidad al precio, favoreciendo productos más económicos y finalmente West y Northeast presentan oportunidades para productos premium, aunque con menor volumen en caso de implementación de nuevos productos exclusivos.

Midwest: tiene una tendencia de demanda variable y sin un patron consistente, su rango de precios se concentra entre precios de 30 y 50 USD , la demanda no sigue una curva predecible porque algunos precios bajos y medios tienen buen desempeño.

Northeast: su tendencia de demanda refleja picos en los precios medios con un rango entre 30-65 USD lo que indica una fuerte preferencia por los precios medios, existiendo una posible elasticidad positiva en ese rango.

South: Alta demanda en precios bajos segun su tendencia de demanda, entre 25-40 USD, esto indica que existe una alta sensibilidad al precio; entonces los precios bajos generan mayor volumen.

Southeast: su tendencia de demanda refleja pico en precios bajos y medios, por lo que la demanda esta concentrada en precios accesibles entre 30-45 USD, los precios altos tienen poca atracción.

West: tiene una tendecia de demanda dispersa, con picos en extremos, refleja un comportamiento mixto donde algunos productos premium tienen una buena aceptación, su concentración en precios se refleja entre 10-30 y 70 USD.

Recomendaciones:

Se sugiere que, en la región de Midwest se optimicen los precios medios con promociones para estabilizar la demanda, en Northeast deben enfocar esfuerzos en productos de 30–65 USD, donde hay mayor volumen y potencial de margen.

Para las regiones de South/Southeas se recomienda mantener precios bajos, pero explorar productos con mayor margen para compensar el volumen, mientras que en West se genera una alta relevancia a aprovechar nichos premium con productos de alto precio con demanda moderada pueden ser rentables si el margen lo permite.

Desempeño Financiero general

¿Está la empresa siendo rentable? ¿La utilidad crece con las ventas?¿Qué factores reducen la utilidad? Estas son las preguntas a las cuales daremos respuesta en el analisis de la utilidad operativa y el total de ventas, para ello nos serviremos de usar un factor que identifique a precición como lo es el analisis por producto. Iniciamos este analisis con la siguiente tabla resumen:

resumen_financiero <- Datos_Adidas %>%
  summarise(
    Ventas_Totales = sum(Ventas_Totales, na.rm = TRUE),
    Utilidad_Total = sum(Utilidad_Operativa, na.rm = TRUE),
    Margen_Operativo_Prom = mean(Margen_Operativo, na.rm = TRUE)
  )

resumen_financiero
Ventas_Totales Utilidad_Total Margen_Operativo_Prom
120166650 47224968 0.4229718

Las ventas totales indican un volumen de ingresos alto y significativo. Esto representa una base sólida para evaluar la eficiencia operativa y el desempeño general del negocio, sin embargo aunque existe un nivel elevado de ventas positivo por si solo no garantiza la rentabilidad, por esto es importante relacionarlo con la utilidad total la cual indica que la empresa Adidas opera de manera eficiente y coloca de realce una excelente capacidad de la empresa para convertir los ingresos en ganancias reales.

Con un margen operativo promedio de 42% indica que por cada 100 USD vendidos la empresa retiene 42 USD como utilidad, esto indica que la empresa no solo vende mucho, sino que también gana bien por cada venta, lo cual da evidencia de un modelo de negocio sostenible y rentable.

library(dplyr)
library(ggplot2)
library(plotly)

# 1. Lista de productos
productos <- unique(Datos_Adidas$Producto)

# 2. Crear figura base vacía
fig <- plot_ly()

# 3. Agregar un trace por cada producto
for (i in seq_along(productos)) {
  
  prod_actual <- productos[i]
  
  datos_filtro <- Datos_Adidas %>% 
    filter(Producto == prod_actual)
  
  fig <- fig %>% 
    add_markers(
      data = datos_filtro,
      x = ~Ventas_Totales,
      y = ~Utilidad_Operativa,
      size = ~Unidades_Vendidas,
      color = I("steelblue"),
      opacity = 0.7,
      name = prod_actual,
      visible = ifelse(i == 1, TRUE, FALSE)
    )
}

# 4. Crear botones del dropdown
botones <- lapply(seq_along(productos), function(i) {
  visibles <- rep(FALSE, length(productos))
  visibles[i] <- TRUE
  
  list(
    method = "restyle",
    args = list("visible", visibles),
    label = productos[i]
  )
})

# 5. Layout final (ocupando toda la pantalla)
fig <- fig %>%
  layout(
    title = "Relación entre Ventas y Utilidad Operativa por Producto",
    xaxis = list(title = "Total de Ventas ($)"),
    yaxis = list(title = "Utilidad Operativa ($)"),
    updatemenus = list(
      list(
        type = "dropdown",
        active = 0,
        buttons = botones,
        x = 0.1,
        y = 1.15
      )
    ),
    height = 480,
    width = 1100
  )
fig

Los graficos de dispersión empleados en la imagen anterior generan un analisis por producto y su impacto en el objetivo financiero de la empresa de esta forma:

Men’s Street Footwear: Su correlación es fuerte , tiene una alta dispersión con puntos en el rango alto de ventas y utilidad, se podría mejorar con una potencialización de productos con alto margen y ventas, revisando los de bajo rendimiento para efectuar promociones.

Men’s Athletic Footwear: Una moderada correlación, la tendencia es positiva pero menos pronunciada, nos indica que algunos productos tienen ventas altas pero utilidad baja, como una recomendación se podría optimizar costos en productos con ventas altas pero bajo margen.

Women’s Street Footwear: Fuerte correlación , una muy buena eficiencia entre ventas con utilidad y se refleja en los datos alineados en la diagonal, se recomienda promocinar productos exitosos y utilizar este patron como modelos para nuevos productos.

Women’s Athletic Footwear: se observa una relación clara con productos bien posicionados que generan excelente rentabilidad por esto su correlación es fuerte, unicamente subir sus precios si esto no implica perder volumen en ventas.

Men’s Apparel: Algunos productos reflejan buena utilidad a pesar de sus ventas medias, su correlación es mediana y se recomienda ajustar los precios y los costos de los productos con baja rentabilidad.

Women’s Apparel: su correlación es debil dado que su dispersión es amplia y algunos productos con ventas altas indican utilidad baja se recomienda reenfocar la rentabilidad renegociando los costos, ajustar el precio de venta o evaluar productos no rentables.

# Librerías necesarias
library(dplyr)
library(ggplot2)
library(plotly)

# Resumen de ventas por producto
ventas_producto <- Datos_Adidas %>%
  group_by(Producto) %>%
  summarise(Ventas_Totales = sum(Ventas_Totales, na.rm = TRUE))

# Gráfico base con ggplot2
grafico_barras <- ggplot(ventas_producto, aes(x = Producto, y = Ventas_Totales, fill = Producto)) +
  geom_col() +
  labs(
    title = "Ventas Totales por Producto",
    x = "Producto",
    y = "Ventas Totales"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

# Convertir a interactivo con plotly
grafico_interactivo <- ggplotly(grafico_barras)

# Mostrar el gráfico
grafico_interactivo

Finalmente este grafico nos refleja los dos productos con mayores ventas totales, Men’s Street Footwear lidera claramente en ventas, lo que indica una fuerte demanda y posicionamiento , seguido por Women’s Apparel y Men’s Athletic Footwear el cual también tiene un buen desempeño en volumen de ventas.

Como producto con bajas ventas totales es Women’s Athletic Footwear es el producto con menor volumen de ventas, lo que sugiere baja demanda o menor visibilidad.

Analisis de productos en relación a los objetivos financieros:

Men’s Street Footwear: Alta venta que se traduce en alta utilidad es el máximo contribuyente al beneficio neto.

Men’s Athletic Footwear: contiene buen volumen pero su utilidad es moderada por lo que se recomienda revisar costos o precios para mejorar rentabilidad.

Women’s Apparel: tienen buen volumen de ventas y una utilidad alta, se recomiendan estrategias de optimizar la rentabilidad,ampliar a nuevas regiones y canales y aprovecharlo como impulsor de categorias mas debiles.

Women’s Athletic Footwear: Presenta una baja venta con utilidad moderada, se recomienda el potencial de mejora en marketing, diseño o posicionamiento.

Men’s Apparel: Ventas medias con utilidad baja, se podría mejorar publicitando y realizando promociones.

Women’s Street Footwear: Relación moderada entre ventas y utilidad se recomienda realizar optimización para incremento en ventas con una mezcla entre promociones y marketing.

Conclusiones y recomendaciones Finales:

Analizar las ventas de Adidas permite identificar patrones de comportamiento comercial que evidencian la importancia de segmentar estrategias según región, producto y canal de venta. En términos generales, la empresa presenta un desempeño sólido, con un volumen de ventas significativo, una utilidad operativa elevada y un margen operativo promedio del 42%, lo cual confirma un modelo de negocio rentable y eficiente. A nivel regional, se observaron diferencias importantes en distribución, sensibilidad al precio y comportamiento de la demanda. South y Southeast muestran preferencia por precios bajos y presentan sensibilidad al precio, mientras que Northeast y West evidencian oportunidades para productos premium y mayor estabilidad en rangos de precios medios. Men’s Street Footwear se posiciona como la línea de producto más ventas totales a nivel general en Adidas, seguido por Womens Apparel.

Para mejorar el desempeño financiero de la empresa, se recomienda segmentar los productos según su rentabilidad mediante un ranking que permita priorizar la inversión en aquellos con mayor margen. En las categorías con alta demanda es clave evaluar la posibilidad de ajustar precios al alza sin comprometer el volumen de ventas, se pueden considerar la reducción de los costos operativos. Finalmente, es necesario analizar el portafolio de productos y evaluar la causa de aquellos que no aportan significativamente ni en ventas ni en utilidad operativa.

```