Introducción

Es una compañía multinacional alemana fundada en 1949, con sede en Herzogenaurach, ciudad ubicada en Baviera. Se dedica a la fabricación de equipamiento deportivo y productos de moda (bolsos, camisas, tenis, gafas, etc.). La empresa también es patrocinadora de eventos y figuras deportivas a nivel mundial. Es el primer mayor fabricante del sector en el mundo.

El análisis financiero de Adidas es clave para evaluar su desempeño en el mercado, identificar tendencias y comprender los factores que impulsan su rentabilidad y estabilidad. En este documento, realizaremos un análisis exploratorio de algunas variables financieras claves de la empresa en el estado de Florida de la Region Southeast, utilizando R. Aplicaremos técnicas de estadística descriptiva y visualización de datos para detectar patrones, anomalías y relaciones entre variables, facilitando una mejor interpretación de su evolución financiera.

A través de este análisis, se busca evaluar el desempeño de ventas y la rentabilidad de diferentes líneas de productos en el mercado, para la empresa en mencion.

Análisis exploratorio

El análisis exploratorio de datos (EDA) es un paso clave para comprender la informacion suministrada en la base de datos de Adidas., identificar patrones y evaluar la distribución de las variables.

A través de estadísticas descriptivas y visualización de datos con R, identificaremos tendencias, relaciones entre variables y posibles anomalías, proporcionando una base sólida para evaluar el desempeño de ventas y la rentabilidad de diferentes líneas de productos en el mercado.

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(tidyverse)

PASO 2: Filtar o seleccionar la información que necesito

Se filtra la base de datos teniendo en cuenta sólo la linea de productos del estado de la Florida en Southeast:

El código siguiente carga un archivo de Excel con datos de la linea de productos de Adidas, les asigna un ID único a cada fila, y luego filtra la Región “Southeast” y el Estado de la Florida.

library(readxl)
datos<- read_excel("C:/Users/PRINTER/Desktop/Adidas/Adidas.xlsx")


#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 (ej., "Southeast" aún sería válido).
#Encuentra las posiciones de las filas que cumplen ambas condiciones.
# Extrae solo esas filas y las guarda en datos_sub.

pos = which(jarowinkler("Southeast",datos$Region)>0.98&datos$State=="Florida")
datos_sub=datos[pos,]
head(datos_sub)
##      id    retailer    Region   State  City                   Product
## 721 721 Foot Locker Southeast Florida Miami             Men's Apparel
## 722 722 Foot Locker Southeast Florida Miami           Women's Apparel
## 723 723 Foot Locker Southeast Florida Miami     Men's Street Footwear
## 724 724 Foot Locker Southeast Florida Miami   Men's Athletic Footwear
## 725 725 Foot Locker Southeast Florida Miami   Women's Street Footwear
## 726 726   West Gear Southeast Florida Miami Women's Athletic Footwear
##     price_per_unit units_sold total_sales operating_profit operating_margin
## 721             55        750       41250           144375             0.35
## 722             45        850       38250           191250             0.50
## 723             45       1100       49500           222750             0.45
## 724             45        750       33750           118125             0.35
## 725             35        800       28000            70000             0.25
## 726             40        675       27000            81000             0.30
##     sales_method
## 721     In-store
## 722     In-store
## 723     In-store
## 724     In-store
## 725     In-store
## 726     In-store

Ahora obtenemos el # de datos que tenemos en la base de datos

##Registros totales para las diferentes lineas de productos del State "Florida" y Region "Southeast" 
length(pos)
## [1] 360

Ahora obtenemos los nombres exactos de las variables que tenemos en la base de datos

library(dplyr)
names(datos_sub)
##  [1] "id"               "retailer"         "Region"           "State"           
##  [5] "City"             "Product"          "price_per_unit"   "units_sold"      
##  [9] "total_sales"      "operating_profit" "operating_margin" "sales_method"

Indicadores de centralidad

## Se calcula el promedio del price_per_unit, units_sold, total_sales y operating_margin de Florida en el Southeast y se colocan los datos en una tabla o dataframe

#na.rm:  ignora valores faltantes (NA) para evitar errores en el cálculo.

cantidad_ofertas= length(datos_sub$Region)
promedio_price_per_unit= mean(datos_sub$price_per_unit,na.rm=TRUE)
promedio_units_sold= mean(datos_sub$units_sold,na.rm =TRUE)
promedio_total_sales= mean(datos_sub$total_sales,na.rm=TRUE)
promedio_operating_margin= mean(datos_sub$operating_margin,na.rm=TRUE)

resultado_prom=data.frame(cantidad_ofertas,promedio_price_per_unit,promedio_units_sold,promedio_total_sales,promedio_operating_margin)
resultado_prom
##   cantidad_ofertas promedio_price_per_unit promedio_units_sold
## 1              360                56.69444            370.6389
##   promedio_total_sales promedio_operating_margin
## 1             21723.86                 0.3902222
### Indicadores de centralidad y variabilidad para la variable "price_per_unit"

cantidad_ofertas= length(datos_sub$Region)
promedio_price_per_unit= mean(datos_sub$price_per_unit,na.rm=TRUE)
mediana_price_per_unit= median(datos_sub$price_per_unit,na.rm =TRUE)
minimo_price_per_unit= min(datos_sub$price_per_unit,na.rm=TRUE)
maximo_price_per_unit= max(datos_sub$price_per_unit,na.rm=TRUE)
desvest_price_per_unit=sd(datos_sub$price_per_unit,na.rm = TRUE)

resultado_med=data.frame(cantidad_ofertas,promedio_price_per_unit,mediana_price_per_unit,minimo_price_per_unit,maximo_price_per_unit,desvest_price_per_unit)
resultado_med
##   cantidad_ofertas promedio_price_per_unit mediana_price_per_unit
## 1              360                56.69444                     55
##   minimo_price_per_unit maximo_price_per_unit desvest_price_per_unit
## 1                    23                   110               15.58572
### Indicadores de centralidad y variabilidad para la variable "operating_margin"

cantidad_ofertas= length(datos_sub$Region)
promedio_operating_margin= mean(datos_sub$operating_margin,na.rm=TRUE)
mediana_operating_margin= median(datos_sub$operating_margin,na.rm =TRUE)
minimo_operating_margin= min(datos_sub$operating_margin,na.rm=TRUE)
maximo_operating_margin= max(datos_sub$operating_margin,na.rm=TRUE)
desvest_operating_margin=sd(datos_sub$operating_margin,na.rm = TRUE)

resultado_med=data.frame(cantidad_ofertas,promedio_operating_margin,mediana_operating_margin,minimo_operating_margin,maximo_operating_margin,desvest_operating_margin)
resultado_med
##   cantidad_ofertas promedio_operating_margin mediana_operating_margin
## 1              360                 0.3902222                     0.37
##   minimo_operating_margin maximo_operating_margin desvest_operating_margin
## 1                     0.2                    0.65                0.1060086

Representación gráfica

Gráfico de barras

# Crear el gráfico de barras interactivo
grafico_barras_total_sales <- datos_sub %>%
  plot_ly(x = ~Product, y = ~total_sales, type = 'bar',
          marker = list(color = 'skyblue')) %>%
  layout(title = "Figura 1. total_sales de productoS Adidas en Florida Southeast",
         xaxis = list(title = "Product"),
         yaxis = list(title = "total_sales (miles de usd)"),
         hovermode = "x")

# Mostrar el gráfico
grafico_barras_total_sales

Interpretación Figura 1.

El producto Women’s Athletic Footwear es el que tiene las ventas más bajas El producto Men’s Street Footwear es el que tiene las mayores ventas, seguido de Men’s Apparel

# Crear y mostrar el histograma interactivo
ggplotly(
  ggplot(datos_sub, aes(x=total_sales)) +
    geom_histogram(binwidth=1000, fill="steelblue", color="black", alpha=0.6) +
    labs(title="Figura 2. Histograma del total_sales linea de productos Adidas en Florida, Southeast",
         x="total_sales", 
         y="Frecuencia") +
    theme_minimal()
)

Interpretación Figura 2.

La Figura 2. muestra la distribución de las ventas totales de los productos de Adidas en el estado de la Florida de la Región Southeast. Permite identificar patrones, concentración de las ventas y posibles sesgos en la distribución.

Distribución de ventas totales:

La mayoría de las ventas totales están entre 5.000 y 15.000 USD Se observa una mayor concentración entre 5.000 y 15.000 USD, con los valores más frecuentes en ese rango.

Hay valores de venta más altos, superando los 82.000 USD, pero son menos frecuentes.

# Crear y mostrar el histograma interactivo
ggplotly(
  ggplot(datos_sub, aes(x=operating_margin)) +
    geom_histogram(binwidth=0.01, fill="steelblue", color="black", alpha=0.6) +
    labs(title="Figura 3. Histograma del operating_margin linea de productos Adidas en Florida, Southeast",
         x="operating_margin", 
         y="Frecuencia") +
    theme_minimal()
)

Interpretación Figura 3.

La Figura 3. muestra la distribución de márgenes de utilidad de los productos de Adidas en el estado de la Florida de la Región Southeast. Permite identificar patrones, concentración de las ventas y posibles sesgos en la distribución.

Distribución de márgenes de utilidad:

La mayoría de los márgenes de utilidad están entre 30% y el 45% Se observa una mayor concentración entre el 30% y el 45%, con los valores más frecuentes en ese rango.

Hay márgenes de utilidad más altos,superando el 60%, pero son menos frecuentes.

** Grafico 4. Boxplot del margen operacional**

# Crear y mostrar el boxplot interactivo
ggplotly(
  ggplot(datos_sub, aes(y=operating_margin)) +
    geom_boxplot(fill="lightblue", color="black", outlier.colour="red", outlier.shape=16, outlier.size=3) +
    labs(title="Figura 4. Boxplot del operating_margin de linea de productos Adidas en Florida, Southeast",
         y="operating_margin") +
    theme_minimal()
)

Interpretación Fgura 4-Boxplot

Este boxplot muestra la distribución de márgenes de utilidad de los productos de Adidas en el estado de la Florida de la Región Southeast y permite identificar la dispersión, la mediana y posibles valores atípicos.

Mediana (median: 0.37):

La línea negra dentro de la caja representa la mediana de las márgenes de utilidad, que es 0.37. Esto significa que el 50% de los márgenes de utilidad tienen un valor menor o igual a 0.37, y el otro 50% tiene un valor mayor.

Rango Intercuartílico (IQR – Interquartile Range):

Q1 (Primer Cuartil - q1: 0.3): El 25% de los márgenes de utilidad tienen un valor inferior a 0.3. Q3 (Tercer Cuartil - q3: 0.45): El 75% de los márgenes de utilidad tienen un valor inferior a 0.45.

El 50% de los precios se encuentran entre 0.3 y 0.45.

g1=ggplot(data = datos_sub,aes(y=price_per_unit, x=units_sold)) + geom_point() + geom_smooth()
ggplotly(g1)
# Crear gráfico interactivo con correlación
ggplotly(
  ggplot(datos_sub, aes(x = units_sold, y = price_per_unit)) +
    geom_point(color = "purple", alpha = 0.8, size = 2) +  # Puntos con color y transparencia
    geom_smooth(method = "loess", color = "grey", se = TRUE) +  # Línea de tendencia lineal
    labs(
      title = paste("Figura 5. Relación entre units_sold y price_per_unit\nCoef. de correlación: ", 
                    round(cor(datos_sub$price_per_unit, datos_sub$units_sold, use = "complete.obs"), 2)),
      x = "units_sold(USD)",
      y = "price_per_unit (USD)",
      caption = "Fuente: Datos de 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)
    )
)

Interpretación Figura 5.

Este gráfico muestra la relación entre unidades vendidas y precio por unidad

Tendencia general:

Se observa que no hay una corelación entre las variables El coeficiente de correlación es 0.16, lo que confirma que no hay correlación entre las dos variables

La relación no es lineal y en la mayoría de las zonas hay dispersión.

Patrones claves:

*Entre 0-300 unidades vendidas, hay una menor dispersion en relación a las demás zonas

Curva de tendencia (línea gris):

*La línea suavizada sugiere un leve crecimiento del precio por unidad cuando el unidades vendidas se encuentran entre 0-600 y cae entre 600 y 1200