Introducción

El presente informe tiene como objetivo principal realizar un análisis financiero y comercial de la compañía internacional Adidas, evaluando su desempeño durante un período determinado. Fundada en 1949, Adidas se ha consolidado como una de las empresas líderes en la industria deportiva a nivel mundial, destacándose por la innovación, calidad y desarrollo de productos orientados al deporte y al estilo de vida urbano.

Dentro del análisis se han seleccionado seis productos representativos de la marca, distribuidos en tres productos dirigidos al segmento femenino y tres al segmento masculino. Estos comprenden categorías como calzado deportivo, calzado urbano y prendas de vestir, permitiendo una evaluación integral del comportamiento comercial de diferentes líneas de negocio.

Como punto de partida, se dispone de información relacionada con las ventas totales, la utilidad operativa y el margen operativo de utilidad. Estos indicadores constituyen una base fundamental para medir la eficiencia operativa y la rentabilidad de la compañía.

Para el desarrollo de este ejercicio, el análisis se centra específicamente en la variable Margen Operativo, indicador que permite evaluar la capacidad de la empresa para generar utilidades a partir de sus operaciones principales, antes de considerar gastos financieros e impuestos.

A continuación, se presenta un resumen ejecutivo de los resultados obtenidos, destacando el comportamiento de las ventas totales y su respectiva utilidad operativa, con el fin de identificar tendencias, fortalezas y oportunidades de mejora en el desempeño financiero de la compañía.

Análisis exploratorio

PASO 1. Instalar y cargar librerias

library(readxl)
datos<-  read_excel("DatosCaso1.xlsx", 
    col_types = c("text", "text", "text", 
        "text", "text", "numeric", "numeric", 
        "numeric", "numeric", "numeric", 
        "text"))


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

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


#Filtro

require(RecordLinkage)

#Busca coincidencias de nombres similares
#Encuentra las posiciones de las filas que cumplen ambas condiciones.
# Extrae solo esas filas y las guarda en datos_sub.

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"
## Dimensiones de la base de datos

# Número total de variables (columnas)
length(datos)
## [1] 12
# Número total de registros (filas)
nrow(datos)
## [1] 9648

Datos Generales

# ==========================================
# RESUMEN GENERAL DE RESULTADOS
# ==========================================

library(dplyr)
library(gt)
library(scales)

# 1. Calcular indicadores generales

resumen_general <- datos %>%
  summarise(
    Total_Ventas = sum(ventas_total, na.rm = TRUE),

    Total_Utilidad = sum(utilidad_operativa, na.rm = TRUE),

    Margen_Global = ifelse(
      sum(ventas_total, na.rm = TRUE) != 0,
      sum(utilidad_operativa, na.rm = TRUE) /
        sum(ventas_total, na.rm = TRUE) * 100,
      NA_real_
    ),

    Mediana = if (all(is.na(Margen_operativo))) NA_real_
              else median(Margen_operativo, na.rm = TRUE),

    Media = if (all(is.na(Margen_operativo))) NA_real_
            else mean(Margen_operativo, na.rm = TRUE),

    Maximo = if (all(is.na(Margen_operativo))) NA_real_
             else max(Margen_operativo, na.rm = TRUE),

    Minimo = if (all(is.na(Margen_operativo))) NA_real_
             else min(Margen_operativo, na.rm = TRUE)
  )


# 2. Organizar los indicadores para presentación

tablero <- tibble(
  Indicador = c(
    "TOTAL VENTAS",
    "UTILIDAD OPERATIVA",
    "MARGEN GLOBAL",
    "MEDIANA DEL MARGEN",
    "MEDIA DEL MARGEN",
    "MARGEN MÁXIMO",
    "MARGEN MÍNIMO"
  ),

  Resultado = c(
    dollar(resumen_general$Total_Ventas,
           prefix = "$", big.mark = ","),

    dollar(resumen_general$Total_Utilidad,
           prefix = "$", big.mark = ","),

    paste0(round(resumen_general$Margen_Global, 2), "%"),
    paste0(round(resumen_general$Mediana, 2), "%"),
    paste0(round(resumen_general$Media, 2), "%"),
    paste0(round(resumen_general$Maximo, 2), "%"),
    paste0(round(resumen_general$Minimo, 2), "%")
  )
)


# 3. Crear tabla con diseño profesional

tablero %>%
  gt() %>%

  tab_header(
    title = md("**RESUMEN GENERAL DE RESULTADOS**"),
    subtitle = "Indicadores financieros y operativos"
  ) %>%

  cols_label(
    Indicador = "INDICADOR",
    Resultado = "RESULTADO"
  ) %>%

  cols_align(
    align = "left",
    columns = Indicador
  ) %>%

  cols_align(
    align = "center",
    columns = Resultado
  ) %>%

  # Fondo azul claro para los indicadores
  tab_style(
    style = list(
      cell_fill(color = "#D6EAF8"),
      cell_text(color = "#082B52", weight = "bold")
    ),
    locations = cells_body(columns = Indicador)
  ) %>%

  # Destacar resultados
  tab_style(
    style = cell_text(
      color = "#084594",
      weight = "bold",
      size = px(16)
    ),
    locations = cells_body(columns = Resultado)
  ) %>%

  # Encabezado principal azul oscuro
  tab_style(
    style = list(
      cell_fill(color = "#082B52"),
      cell_text(color = "white", weight = "bold")
    ),
    locations = cells_title(groups = "title")
  ) %>%

  # Subtítulo
  tab_style(
    style = list(
      cell_fill(color = "#082B52"),
      cell_text(color = "#D6EAF8")
    ),
    locations = cells_title(groups = "subtitle")
  ) %>%

  # Ajustes generales
  tab_options(
    table.width = pct(100),
    data_row.padding = px(12),
    table.border.top.color = "#082B52",
    table.border.bottom.color = "#082B52"
  )
RESUMEN GENERAL DE RESULTADOS
Indicadores financieros y operativos
INDICADOR RESULTADO
TOTAL VENTAS $120,166,650
UTILIDAD OPERATIVA $47,224,968
MARGEN GLOBAL 39.3%
MEDIANA DEL MARGEN 41%
MEDIA DEL MARGEN 42.3%
MARGEN MÁXIMO 80%
MARGEN MÍNIMO 10%
colnames(datos)  # Muestra los nombres de las columnas
##  [1] "id"                 "distribuidor"       "region"            
##  [4] "estado"             "ciudad"             "producto"          
##  [7] "precio_unidad"      "unidades_vendidas"  "ventas_total"      
## [10] "utilidad_operativa" "Margen_operativo"   "metodo_venta"
str(datos)       # Muestra la estructura del dataframe
## 'data.frame':    9648 obs. of  12 variables:
##  $ id                : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ distribuidor      : chr  "Foot Locker" "Foot Locker" "Foot Locker" "Foot Locker" ...
##  $ region            : chr  "Northeast" "Northeast" "Northeast" "Northeast" ...
##  $ estado            : chr  "New York" "New York" "New York" "New York" ...
##  $ ciudad            : chr  "New York" "New York" "New York" "New York" ...
##  $ producto          : chr  "Men's Street Footwear" "Men's Athletic Footwear" "Women's Street Footwear" "Women's Athletic Footwear" ...
##  $ precio_unidad     : num  50 50 40 45 60 50 50 50 40 45 ...
##  $ unidades_vendidas : num  1200 1000 1000 850 900 1000 1250 900 950 825 ...
##  $ ventas_total      : num  60000 50000 40000 38250 54000 ...
##  $ utilidad_operativa: num  30000 15000 14000 13388 16200 ...
##  $ Margen_operativo  : num  50 30 35 35 30 25 50 30 35 35 ...
##  $ metodo_venta      : chr  "In-store" "In-store" "In-store" "In-store" ...

Correlacion de Variables analizadas

library(corrplot)

matriz_cor <- cor(
  datos[, c(
    "precio_unidad",
    "unidades_vendidas",
    "ventas_total",
    "utilidad_operativa",
    "Margen_operativo"
  )],
  use = "complete.obs"
)

corrplot(
  matriz_cor,
  method = "color",
  type = "upper",
  addCoef.col = "black",
  number.cex = 0.8,
  tl.cex = 0.9,
  tl.col = "black",
  tl.srt = 45,
  col = colorRampPalette(c("#EAF3FB", "#6BAED6", "#084594"))(200),
  title = "Correlación entre Variables Comerciales y Financieras",
  mar = c(0, 0, 3, 0)
)

mtext(
  "Coeficientes de correlación de Pearson",
  side = 3,
  line = 1,
  cex = 0.9
)

El objetivo estratégico de Adidas es incrementar su margen operativo, siendo este un indicador clave de desempeño financiero que mide el porcentaje de las ventas que se convierte en utilidad operativa después de descontar los costos y gastos asociados a la operación del negocio. Este indicador refleja la eficiencia con la que la empresa administra sus recursos y ejecuta su estrategia comercial, permitiendo evaluar su capacidad para generar rentabilidad a partir de sus actividades principales.

Se realizó un análisis de correlación entre variables de desempeño comercial: precio por unidad, unidades vendidas y ventas totales, y variables de desempeño financiero: utilidad operativa y margen operativo. Los resultados muestran que el desempeño financiero de la compañía está fuertemente asociado al volumen de ventas, destacándose las correlaciones entre ventas totales y utilidad operativa (0,94), y entre unidades vendidas y ventas totales (0,92). Sin embargo, la relación entre utilidad operativa y margen operativo es prácticamente nula (-0,05), lo que indica que mayores utilidades no necesariamente se traducen en un mayor margen operativo. En consecuencia, resulta necesario profundizar en variables internas del negocio para identificar cuáles de ellas presentan una mayor asociación con el margen operativo. Por esta razón, se analizará el comportamiento del margen operativo según variables internas como el canal de venta, el tipo de distribuidor, la categoría de producto y la zona geográfica, con el fin de identificar oportunidades de mejora y formular estrategias orientadas a fortalecer la rentabilidad de Adidas.

Relación entre Ventas Totales y Utilidad Operativa

## Ventas Totales vs Utilidad Operativa

library(scales)

ggplotly(
  ggplot(datos, aes(x = ventas_total, y = utilidad_operativa)) +
    geom_point(color = "steelblue", alpha = 0.8, size = 2) +
    geom_smooth(method = "loess", color = "grey", se = TRUE) +
    
    scale_x_continuous(
      labels = label_dollar(
        prefix = "USD ",
        big.mark = ".",
        decimal.mark = ","
      )
    ) +
    
    scale_y_continuous(
      labels = label_dollar(
        prefix = "USD ",
        big.mark = ".",
        decimal.mark = ","
      )
    ) +
    
    labs(
      title = paste(
        "Relación entre Ventas Totales y Utilidad Operativa\nCoef. de correlación:",
        round(
          cor(
            datos$utilidad_operativa,
            datos$ventas_total,
            use = "complete.obs"
          ),
          2
        )
      ),
      x = "Ventas Totales (USD)",
      y = "Utilidad Operativa (USD)",
      caption = "Fuente: Datos Adidas"
    ) +
    
    theme_minimal() +
    theme(
      plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
      axis.title = element_text(size = 12),
      axis.text = element_text(size = 10)
    )
)

Aunque las ventas totales y la utilidad operativa presentan una relación muy fuerte (0,94), el gráfico muestra que productos con niveles similares de ventas pueden generar utilidades operativas diferentes. Esto es importante porque ambas variables se utilizan para calcular el margen operativo. Por tanto, aumentar las ventas no garantiza necesariamente un mayor margen operativo, ya que la rentabilidad depende de qué tan eficientemente esas ventas se convierten en utilidad operativa. En consecuencia, Adidas debe enfocarse no solo en vender más, sino también en maximizar la utilidad obtenida por cada dólar vendido.

Análisis del Margen Operativo según Variables Internas del Negocio

Margen Operativo por Método de Venta

library(scales)

ggplotly(
  ggplot(datos,
         aes(x = metodo_venta,
             y = Margen_operativo,
             fill = metodo_venta)) +
    geom_boxplot() +

    scale_fill_brewer(palette = "Blues") +

    scale_y_continuous(
      labels = function(x) paste0(x, "%")
    ) +

    labs(
      title = "Margen Operativo por Método de Venta",
      x = "Método de Venta",
      y = "Margen Operativo (%)"
    ) +

    theme_minimal() +
    theme(
      plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
      axis.title = element_text(size = 12),
      axis.text = element_text(size = 10)
    )
)

Los resultados sugieren que el método de venta influye significativamente en el comportamiento del margen operativo. El canal Online presenta la mayor capacidad para generar márgenes operativos elevados y sostenidos, convirtiéndose en el método de venta más eficiente para transformar los ingresos en rentabilidad operativa. Por su parte, el canal Outlet puede alcanzar márgenes elevados en determinadas operaciones, pero presenta una mayor variabilidad, lo que refleja un desempeño menos consistente. Finalmente, el canal In-store muestra un comportamiento relativamente estable, aunque con niveles de margen inferiores a los observados en los demás canales. En consecuencia, Adidas podría fortalecer su rentabilidad incrementando gradualmente la participación del canal Online dentro de su mezcla de ventas, priorizando estrategias de comercio electrónico y marketing digital que permitan capturar una mayor proporción de ingresos a través del canal con mejor desempeño operativo.

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

# Participación de ventas por canal
participacion_canal <- datos %>%
  group_by(metodo_venta) %>%
  summarise(
    Ventas = sum(ventas_total, na.rm = TRUE)
  ) %>%
  mutate(
    Participacion = Ventas / sum(Ventas)
  ) %>%
  arrange(desc(Participacion))

# Gráfico interactivo
ggplotly(
  ggplot(
    participacion_canal,
    aes(
      x = reorder(metodo_venta, Participacion),
      y = Participacion,
      fill = Participacion,
      text = paste0(
        "Canal: ", metodo_venta,
        "<br>Participación: ", percent(Participacion, accuracy = 0.1)
      )
    )
  ) +
    geom_col() +
    coord_flip() +
    scale_y_continuous(labels = percent_format()) +
    scale_fill_gradient(
      low = "#D6EAF8",
      high = "#084594"
    ) +
    labs(
      title = "Participación de Ventas por Canal",
      x = "Canal de Venta",
      y = "Participación (%)"
    ) +
    theme_minimal() +
    theme(
      plot.title = element_text(
        hjust = 0.5,
        face = "bold"
      ),
      legend.position = "none"
    ),
  tooltip = "text"
)
library(dplyr)
library(ggplot2)
library(plotly)
library(scales)

# Participación de ventas por canal
participacion_canal <- datos %>%
  group_by(metodo_venta) %>%
  summarise(
    Ventas = sum(ventas_total, na.rm = TRUE)
  ) %>%
  mutate(
    Participacion = Ventas / sum(Ventas)
  ) %>%
  arrange(desc(Participacion))

# Gráfico interactivo
ggplotly(
  ggplot(
    participacion_canal,
    aes(
      x = reorder(metodo_venta, Participacion),
      y = Participacion,
      fill = Participacion,
      text = paste0(
        "Canal: ", metodo_venta,
        "<br>Participación: ", percent(Participacion, accuracy = 0.1)
      )
    )
  ) +
    geom_col() +
    coord_flip() +
    scale_y_continuous(labels = percent_format()) +
    scale_fill_gradient(
      low = "#D6EAF8",
      high = "#084594"
    ) +
    labs(
      title = "Participación de Ventas por Canal",
      x = "Canal de Venta",
      y = "Participación (%)"
    ) +
    theme_minimal() +
    theme(
      plot.title = element_text(
        hjust = 0.5,
        face = "bold"
      ),
      legend.position = "none"
    ),
  tooltip = "text"
)

Variables margen operativo promedio por estado

En este analisis se toma la variable objeto de discusión correspondiente al margen operativo evaluandolo a su rendimiento promedio por estado de estados unidos.

A continuación se presenta el mapa interactivo donde puede visualizarse las mayores rentabilidades media en tonos más oscuros.

# Resumen del margen operativo por estado

resumen_estado <- datos %>%
  group_by(estado) %>%
  summarise(
    Media_Margen = mean(Margen_operativo, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  rename(estado_mapa = estado)

tabla_estado <- resumen_estado %>%
  arrange(desc(Media_Margen))
library(usmap)
library(dplyr)
library(ggplot2)
library(plotly)
library(sf)

# 1. Obtener el mapa de Estados Unidos
mapa_base <- us_map(regions = "states")

# 2. Unir el promedio del margen operativo por estado
mapa <- mapa_base %>%
  left_join(
    resumen_estado,
    by = c("full" = "estado_mapa")
  )

# 3. Crear el mapa
grafico <- ggplot(mapa) +
  geom_sf(
    aes(
      fill = Media_Margen,
      text = paste0(
        "Estado: ", full,
        "<br>Margen operativo promedio: ",
        round(Media_Margen, 2), "%"
      )
    ),
    color = "white",
    linewidth = 0.3
  ) +
  scale_fill_gradient(
    low = "#D6EAF8",
    high = "#084594",
    na.value = "#E5E5E5",
    name = "Margen promedio"
  ) +
  labs(
    title = "Margen Operativo Promedio por Estado",
    subtitle = "Distribución geográfica de la rentabilidad",
    caption = "Fuente: Elaboración propia con datos de ventas"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(
      size = 16,
      face = "bold",
      hjust = 0.5
    ),
    plot.subtitle = element_text(
      size = 11,
      hjust = 0.5
    ),
    legend.position = "right"
  )

# 4. Mostrar mapa interactivo
ggplotly(grafico, tooltip = "text")
library(dplyr)

tabla_estado <- resumen_estado %>%
  mutate(
    Media_Margen = paste0(round(Media_Margen, 0), "%")
  ) %>%
  arrange(desc(Media_Margen))

# Primeros 25 estados
tabla_1 <- tabla_estado %>%
  slice(1:25)

# Siguientes 25 estados
tabla_2 <- tabla_estado %>%
  slice(26:50)

# Unir los dos bloques horizontalmente
tabla_final <- bind_cols(
  tabla_1 %>% rename_with(~ paste0(.x, "_1")),
  tabla_2 %>% rename_with(~ paste0(.x, "_2"))
)

# Mostrar tabla
tabla_final
estado_mapa_1 Media_Margen_1 estado_mapa_2 Media_Margen_2
Alabama 55% Iowa 42%
Tennessee 51% Wisconsin 42%
Michigan 48% Georgia 41%
Montana 47% Kansas 41%
Idaho 46% Maryland 41%
Nebraska 46% Minnesota 41%
North Carolina 46% Nevada 41%
Ohio 46% New York 41%
West Virginia 46% Oregon 41%
Illinois 45% Rhode Island 41%
Kentucky 45% Virginia 41%
Louisiana 45% Connecticut 40%
Mississippi 45% Maine 40%
Missouri 45% North Dakota 40%
Texas 45% Wyoming 40%
Arkansas 44% Arizona 39%
Oklahoma 44% California 39%
Utah 44% Florida 39%
Vermont 44% New Hampshire 39%
Colorado 43% New Mexico 39%
Delaware 43% South Dakota 39%
Indiana 43% Alaska 35%
New Jersey 43% Massachusetts 35%
Pennsylvania 43% Washington 33%
South Carolina 43% Hawaii 32%

Margen Operativo por tipo de distribuidor

 library(scales)

ggplotly(
  ggplot(datos,
         aes(x = distribuidor,
             y = Margen_operativo,
             fill = distribuidor)) +
    geom_boxplot() +

    scale_fill_brewer(palette = "Blues") +

    scale_y_continuous(
      labels = function(x) paste0(x, "%")
    ) +

    labs(
      title = "Margen Operativo por Distribuidor",
      x = "Distribuidor",
      y = "Margen Operativo (%)"
    ) +

    theme_minimal() +
    theme(
      plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
      axis.title = element_text(size = 12),

      axis.text = element_text(size = 10)
    )
)

El gráfico de cajas y bigotes muestra que existen diferencias en el comportamiento del margen operativo según el tipo de distribuidor, aunque estas diferencias no son tan marcadas como las observadas en el análisis por método de venta.

Sports Direct presenta la mediana de margen operativo más alta, alrededor del 44%, lo que indica que, en términos generales, es el distribuidor con mejor capacidad para generar rentabilidad. Además, una proporción importante de sus operaciones se concentra en niveles de margen relativamente altos, lo que evidencia un desempeño favorable.

West Gear también presenta un margen operativo medianamente alto, aunque con una mayor dispersión y la presencia de valores atípicos tanto bajos como altos. Esto sugiere que puede alcanzar niveles elevados de rentabilidad, pero con menor consistencia en sus resultados.

Por su parte, Amazon, Foot Locker, Kohl’s y Walmart muestran medianas muy similares, cercanas al 40%, lo que indica que su desempeño en términos de margen operativo es comparable. Entre ellos, Amazon exhibe una distribución ligeramente más estable, mientras que Kohl’s presenta algunos casos excepcionales con márgenes superiores al promedio.

En general, las cajas se superponen considerablemente, lo que sugiere que las diferencias entre distribuidores no son suficientemente amplias como para afirmar que el distribuidor es el principal factor que explica las variaciones del margen operativo. Aunque algunos distribuidores muestran un mejor desempeño relativo, la rentabilidad parece estar influenciada también por otros factores como el canal de venta, la categoría de producto, la política de precios y la estructura de costos.

Variable margen de utilidad por producto

Esta variable corresponde al analisis de las 9.648 transacciones ocurridas e informadas a nosotros para el analisis, donde se evaluan cada uno de los productos objeto de analisis y se busca evidenciar la participación en el total de ventas y el margen de utilidad operativa por cada uno.

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

# Calcular media y mediana por producto
resumen <- datos %>%
  group_by(producto) %>%
  summarise(
    Media = mean(Margen_operativo, na.rm = TRUE),
    Mediana = median(Margen_operativo, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(Media) %>%
  mutate(producto = factor(producto, levels = producto))

# Crear gráfico
grafico <- ggplot(resumen, aes(x = producto)) +

  # Barras de la media
  geom_col(
    aes(y = Media),
    fill = "#438CCB",
    width = 0.65
  ) +

  # Etiquetas de la media centradas en las barras
  geom_text(
    aes(y = Media / 2,
        label = paste0("Media: ", round(Media, 2))),
    color = "white",
    fontface = "bold",
    size = 3.2
  ) +

  # Línea de la mediana
  geom_line(
    aes(y = Mediana, group = 1),
    color = "#082B52",
    linewidth = 1
  ) +

  # Puntos de la mediana
  geom_point(
    aes(y = Mediana),
    color = "#082B52",
    size = 3
  ) +

  # Etiquetas de la mediana
  geom_text(
    aes(y = Mediana,
        label = paste0("Mediana: ", round(Mediana, 2))),
    vjust = -1.2,
    color = "#082B52",
    fontface = "bold",
    size = 3
  ) +

  # Espacio para las etiquetas
  scale_y_continuous(
    expand = expansion(mult = c(0.05, 0.20))
  ) +

  labs(
    title = "Media y Mediana del Margen Operativo por producto",
    x = "Producto",
    y = "Margen Operativo (%)"
  ) +

  theme_minimal() +

  theme(
    plot.title = element_text(
      size = 14,
      face = "bold",
      hjust = 0.5
    ),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10),
    axis.text.x = element_text(
      angle = 45,
      hjust = 1
    ),
    legend.position = "none"
  )

# Mostrar gráfico interactivo
ggplotly(grafico)
ggplotly(
  ggplot(datos,
         aes(x = producto,
             y = Margen_operativo,
             fill = producto)) +

    geom_boxplot(
      alpha = 0.8,
      color = "#17365D",
      outlier.colour = "#084594",
      outlier.shape = 16,
      outlier.size = 2
    ) +

    stat_summary(
      fun = mean,
      geom = "point",
      shape = 23,
      size = 3,
      fill = "white",
      color = "#08306B"
    ) +

    scale_fill_brewer(palette = "Blues") +

    labs(
      title = "Distribución del Margen Operativo por producto",
      x = "Producto",
      y = "Margen Operativo (%)",
      fill = "Producto"
    ) +

    theme_minimal() +

    theme(
      plot.title = element_text(size = 14, face = "italic", hjust = 0.5),
      axis.title = element_text(size = 12),
      axis.text = element_text(size = 10),
      axis.text.x = element_text(angle = 45, hjust = 1),
      legend.position = "none"
    )
)

Conclusiones y Recomendaciones

El análisis evidenció que las ventas totales y las unidades vendidas presentan una fuerte relación con la utilidad operativa, lo que confirma que el desempeño comercial es un factor clave en los resultados financieros de Adidas. Sin embargo, el margen operativo, indicador principal de rentabilidad del negocio, no mostró una relación significativa con las variables comerciales y financieras analizadas. Este resultado sugiere que la rentabilidad no depende únicamente del volumen de ventas o de los ingresos generados, sino también de factores internos asociados a la gestión comercial y operativa. En consecuencia, para avanzar en el objetivo estratégico de incrementar el margen operativo, Adidas debería enfocar sus esfuerzos en optimizar variables como el canal de venta, el portafolio de productos, los distribuidores y las zonas geográficas con mayor potencial de generación de valor.

Los resultados indican que el canal Online presenta un desempeño favorable en términos de margen operativo, lo que lo convierte en una oportunidad estratégica para fortalecer la rentabilidad de Adidas. En este contexto, la compañía podría incrementar gradualmente la participación de este canal dentro de su mezcla de ventas, apoyándose en iniciativas de comercio electrónico, marketing digital y estrategias de fidelización. Esta orientación permitiría no solo impulsar el crecimiento de los ingresos, sino también capturar una mayor rentabilidad por venta, contribuyendo de forma más efectiva al cumplimiento del objetivo corporativo de aumentar el margen operativo y garantizar un crecimiento sostenible del negocio.

El análisis muestra que el distribuidor tiene una influencia limitada sobre el margen operativo de Adidas. Aunque Sports Direct y West Gear registran niveles de rentabilidad ligeramente superiores al promedio, las diferencias observadas entre distribuidores son reducidas, lo que indica que este factor, por sí solo, no explica de manera significativa las variaciones en la rentabilidad. Desde una perspectiva gerencial, estos hallazgos sugieren que las oportunidades más relevantes para incrementar el margen operativo se encuentran en otros elementos de la estrategia comercial y operativa, donde existe un mayor potencial de impacto sobre los resultados financieros de la compañía.