Análisis Exploratorio

PASO 1. Instalar y cargar librerias

# Cargar librerías necesarias
library(readxl)
library(dplyr)
library(ggplot2)
library(plotly)
library(knitr)
library(kableExtra)
library(tidyr)
library(RecordLinkage)
library(leaflet)
library(htmltools)
library(tidygeocoder)
#Cargar Base de datos

library(readxl)
adidas <- read_excel("C:/Users/yijim/Downloads/adidas.xlsx")

Indicadores de centralidad y dispersión

Ventas: La media de ventas es de 12.455, mientras que la mediana es de 7.804. Esto indica que existen observaciones con ventas muy elevadas que están aumentando el promedio. El máximo de 82.500, bastante superior al tercer cuartil de 15.864, confirma que hay valores extremos o distribuidores/tiendas con un volumen de ventas considerablemente superior al de la mayoría.

Utilidad operativa: Se observa un comportamiento similar. La utilidad promedio es de 4.895 y la mediana de 3.263. La diferencia entre ambas sugiere que unas pocas observaciones con utilidades muy altas están elevando el promedio. El máximo de 39.000 frente a un tercer cuartil de 6.192 refuerza esta conclusión.

Margen operativo: Aquí la distribución es más estable. La mediana es de 41,0% y la media de 42,3%, por lo que ambas están relativamente próximas. Además, el 50% central de las observaciones se encuentra entre 35% y 49%. Esto indica que, independientemente del tamaño de las ventas, una proporción importante de las observaciones presenta márgenes operativos relativamente elevados.

# Resumen estadístico de las variables financieras
resumen <- adidas %>% 
  select(ventas_total, utilidad_operativa, margen_operativo) %>% 
  summary()

resumen
##   ventas_total   utilidad_operativa margen_operativo
##  Min.   :    0   Min.   :    0      Min.   :0.100   
##  1st Qu.: 4065   1st Qu.: 1753      1st Qu.:0.350   
##  Median : 7804   Median : 3263      Median :0.410   
##  Mean   :12455   Mean   : 4895      Mean   :0.423   
##  3rd Qu.:15864   3rd Qu.: 6192      3rd Qu.:0.490   
##  Max.   :82500   Max.   :39000      Max.   :0.800

Análisis ventas por región

El análisis de ventas totales evidencia una fuerte concentración geográfica en la región West, que lidera con $36.4M (30.3% del total de $120.17M), seguida por Northeast ($25.1M, 20.9%), Southeast ($21.4M, 17.8%), South ($20.6M, 17.1%) y, en último lugar, Midwest ($16.7M, 13.9%). Al desagregar por ciudad, se observa que el liderazgo de West no depende de pocos mercados: sus dos ciudades top (San Francisco y Los Ángeles) solo concentran el 23.5% de las ventas regionales, señal de una base de clientes más diversificada y saludable. En contraste, Southeast presenta el patrón opuesto y más riesgoso: con apenas 7 ciudades activas, Orlando y Miami explican el 36.6% de sus ingresos, seguido de cerca por Northeast (34.6%, con New York como la ciudad más fuerte de todo el dataset, $5.68M) y South (34.0%, liderado por Houston). Midwest, por su parte, muestra un top 2 sin un líder claro, Detroit y Columbus prácticamente empatados, lo que sugiere una región con potencial desaprovechado más que una debilidad estructural. De acuerdo con lo anteriro, nos indica que el crecimiento futuro debería priorizar la diversificación de mercados en Southeast y Northeast, mientras se replica en Midwest la estrategia de expansión multi-ciudad que ya funciona en West.

#Agrupación por regiones
ventas_regiones <- adidas %>%
  group_by(region) %>%
  summarise(ventas_region = sum(ventas_total, na.rm = TRUE))
# Crear el gráfico de barras interactivo
grafico_barras_ingresos <- ventas_regiones %>%
  plot_ly(x = ~region, y = ~ventas_region, type = 'bar',
          marker = list(color = 'skyblue')) %>%
  layout(title = "Figura 1. Ingresos EEUU por Región",
         xaxis = list(title = "region"),
         yaxis = list(title = "Ingresos (Miles de Dólares)"),
         hovermode = "x")

# Mostrar el gráfico
grafico_barras_ingresos

Análisis entre Unidades y productos vendidos

El análisis conjunto de ventas y margen operativo confirma que Men’s Street Footwear es el producto más sólido de Adidas, liderando tanto en volumen de ventas ($27.7M, 23% del total) como en rentabilidad (42% de margen), lo que lo convierte en la categoría prioritaria para invertir en crecimiento. El resto de los productos mantiene un margen relativamente estable, entre 36% y 40%, sin variaciones dramáticas, señal de que Adidas no está sacrificando rentabilidad en ninguna categoría para competir en precio, aunque destacan dos casos puntuales: Men’s Athletic Footwear, que pese a ser el tercer producto en ventas tiene el margen más bajo (36%), y Women’s Athletic Footwear, que es el producto con menor volumen de ventas pero no el de peor margen (39%), lo que indica que su reto es de demanda y no de rentabilidad del producto en sí.

#agrupación por producto
ventas_producto <- adidas %>%
  group_by(producto) %>%
  summarise(
    ventas_producto = sum(ventas_total, na.rm = TRUE),
    utilidad_producto = sum(utilidad_operativa, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  mutate(
    margen_producto = utilidad_producto / ventas_producto  # margen ponderado real, no promedio simple
  )
# Crear el gráfico combinado: barras (ventas) + línea (margen operativo)
grafico_barras_ventas <- ventas_producto %>%
  plot_ly() %>%
  add_bars(
    x = ~producto,
    y = ~ventas_producto,
    name = "Ventas Totales",
    marker = list(color = "skyblue"),
    yaxis = "y1"
  ) %>%
  add_lines(
    x = ~producto,
    y = ~margen_producto,
    name = "Margen Operativo",
    yaxis = "y2",
    line = list(color = "darkorange", width = 3),
    marker = list(color = "darkorange", size = 8)
  ) %>%
  layout(
    title = "Figura 1. Ventas Totales y Margen Operativo por Producto",
    xaxis = list(title = "Producto"),
    yaxis = list(title = "Ventas Totales (Dólares)"),
    yaxis2 = list(
      title = "Margen Operativo (%)",
      overlaying = "y",
      side = "right",
      tickformat = ".0%",
      range = c(0, 0.6)  # ajusta el rango si tus márgenes van más alto
    ),
    hovermode = "x unified",
    legend = list(x = 0.75, y = 1.1, orientation = "h")
  )

grafico_barras_ventas
## A marker object has been specified, but markers is not in the mode
## Adding markers to the mode...

Correlación entre Ingresos y Utilidad Operacional

El gráfico muestra una relación casi perfecta (r=0.97) entre las ventas totales y la utilidad operativa de Men’s Street Footwear, lo cual es esperable dado que la utilidad se calcula directamente como un porcentaje (margen) de las ventas, y en este producto ese margen se mantiene relativamente estable (concentrado entre 35% y 50%), lo que hace que ambas variables crezcan casi proporcionalmente. Sin embargo, se observan algunas transacciones con ventas altas (entre $60,000 y $70,000) que generan una utilidad más baja de lo esperado según la tendencia general, lo que sugiere descuentos puntuales o ventas realizadas por canales con menor margen, lo que vale la pena investigar para proteger la rentabilidad en ventas de mayor volumen.

# Crear gráfico interactivo con correlación
# Crear gráfico interactivo con correlación
adidas_men_footwear <- adidas %>%
  filter(producto == "Men's Street Footwear")

ggplotly(
  ggplot(adidas_men_footwear, aes(x = ventas_total, y = utilidad_operativa)) +
    geom_point(color = "lightblue", alpha = 0.9, size = 2) +
    geom_smooth(method = "lm", color = "grey", se = TRUE) +
    labs(
      title = paste(
        "Figura 5. Relación entre Ventas Totales y Utilidad Operativa – Men's Street Footwear\n",
        "Coef. de correlación: ",
        round(
          cor(
            adidas_men_footwear$ventas_total,
            adidas_men_footwear$utilidad_operativa,
            use = "complete.obs"
          ), 2
        )
      ),
      x = "Ventas totales (USD$)",
      y = "Utilidad Operativa",
      caption = "Fuente: Datos financieros"
    ) +
    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)
    )
)
## `geom_smooth()` using formula = 'y ~ x'

Mapa de Visualización de ventas por Ciudad

El mapa muestra la distribución geográfica de los puntos de venta de Adidas en Estados Unidos, y aunque visualmente el Northeast (con puntos muy concentrados alrededor de Nueva York y la costa este) parece tener más presencia por lo apretados que están los marcadores, en realidad West, Northeast y Midwest tienen el mismo número de ciudades (13 cada una), mientras que South (8) y Southeast (7) tienen menos ubicaciones pero cubren un territorio geográfico más amplio, lo que las hace ver más “dispersas” en el mapa. Lo interesante es que esta distribución geográfica no coincide con el desempeño en ventas: West lidera en ingresos ($36.4M) con el mismo número de tiendas que Northeast ($25.1M), lo que sugiere que las tiendas del oeste generan, en promedio, significativamente más ventas por ubicación; y Southeast, a pesar de tener solo 7 ciudades (la menor cantidad de todas), logra superar a South en ventas totales ($21.4M vs $20.6M), reforzando que la cantidad de puntos de venta no es el factor determinante del desempeño regional

#Mapa agrupacion
resultado <- adidas %>%
  group_by(distribuidor, ciudad) %>%
  summarise(ventas_total = sum(ventas_total, na.rm = TRUE), .groups = "drop") %>%
  mutate(direccion = paste(ciudad, "USA")) %>%
  geocode(address = direccion, method = "osm") %>%
  mutate(
    lat = lat + runif(n(), -0.02, 0.02),
    long = long + runif(n(), -0.02, 0.02)
  )
## Passing 52 addresses to the Nominatim single address geocoder
## Query completed in: 52.7 seconds
#Mapa
leaflet(resultado) %>%
  addTiles() %>%
  addCircleMarkers(
    lng = ~long,
    lat = ~lat,
    radius = 6,
    color = "purple",
    label = ~paste(distribuidor, ciudad, "Ventas:", ventas_total)
  )

Conclusión

A pesar de que Adidas es una empresa consolidada con una operación sólida en Estados Unidos, reflejada en $120.17M en ventas totales, presencia en las cinco regiones del país y un producto insignia (Men’s Street Footwear) que combina liderazgo en ventas con el mejor margen operativo (42%), el análisis revela que todavía existen oportunidades claras de crecimiento que podrían traducirse en mayor rentabilidad para sus inversionistas. La brecha entre regiones con igual número de tiendas pero desempeños muy distintos (West genera $36.4M frente a los $16.7M de Midwest, ambas con 13 ciudades) sugiere que replicar las prácticas comerciales exitosas del West en regiones menos eficientes podría destrabar ingresos sin necesidad de abrir nuevos puntos de venta. De igual forma, el margen más bajo detectado en Men’s Athletic Footwear (36%) y la debilidad en volumen de Women’s Athletic Footwear apuntan a áreas concretas donde ajustes en precio, mezcla de canal de venta o estrategia comercial podrían mejorar la rentabilidad sin sacrificar ventas.