WORKSHOP #1 DEVELOPMENT - ANALΓTICA DE NEGOCIOS II - INVENTORY OPTIMIZATION AT LIDLΒΆ
Lidl es una tienda por departamentos que administra un inventario de mΓ‘s de 70.000 productos activos. Como es sabido, el negocio del retail es bastante complejo: requiere optimizar a la perfecciΓ³n la administraciΓ³n de espacios, la determinaciΓ³n de los productos en exhibiciΓ³n y una excelente negociaciΓ³n de las condiciones de venta de los productos con los fabricantes, de modo que pueda generar ventas y que asegure que los productos que se comercialicen tengan una rotaciΓ³n efectiva, es decir, que se vendan oportunamente y den paso a que las estanterΓas sean ocupadas por nuevos productos.
Este notebook se organiza de la siguiente manera: se usarΓ‘ la metodologΓa CRISP-DM para cumplir con el objetivo de responder a las siguientes preguntas:
- How can we accurately estimate the quantity sold for each product available in inventory?
- What are the determining factors to model the quantity sold of products available in inventory?
- ΒΏCuΓ‘les son las principales reglas que se deben tener en cuenta para priorizar una estrategia que permita determinar si un producto es Vendido o No (Cumple la meta de venta)?
- What would be the ideal characteristics of a product que tenga la mayor probabilidad de cumplir con su meta de ser Vendido?
- Which variables should be included in a hypothetical development of a version 2.0 of the obtained models?
Phase 1: Business Understanding πΒΆ
From shelves to data: optimizaciΓ³n de inventarios de LidlΒΆ
Imagina un laberinto de 70,000 productos, cada uno compitiendo por un espacio en las estanterΓas de Lidl. Algunos se venden tan rΓ‘pido como llegan, otros acumulan polvo. ΒΏCΓ³mo decidir quΓ© productos merecen quedarse y cuΓ‘les deben dar paso a nuevos artΓculos? Este es el desafΓo que enfrenta Lidl: equilibrar la oferta con la demanda real, evitando el exceso de inventario sin sacrificar la rentabilidad.
"Modern retail faces unprecedented challenges: consumer expectations for immediate product availability, omnichannel fulfillment demands, and supply chain disruptions that can emerge without warning. According to recent research, retailers carrying excess inventory face holding costs of approximately 25-30% of the inventory value per year (Deloitte, 2023), while stockouts can result in lost sales of up to 4.1% of annual revenue (IHL Group, 2022)."
Ante este panorama, la toma de decisiones basada en datos se vuelve no solo ΓΊtil, sino indispensable. Para enfrentar este reto de forma estructurada, Lidl necesita traducir sus problemas comerciales en preguntas analΓticas y resolverlas a travΓ©s de un enfoque metΓ³dico. AquΓ es donde entra en juego la metodologΓa CRISP-DM (Cross Industry Standard Process for Data Mining).
En esta primera fase nos enfocaremos en tratar 9 puntos fundamentales que nos expone las guia ModelerCRISPDM.pdf, los cuales son:
- Recopilar informaciΓ³n sobre el contexto comercial
- Definir los objetivos comerciales
- Establecer criterios de rendimiento comercial
- Evaluar la situaciΓ³n actual
- Documentar requisitos, supuestos y restricciones
- Realizar un anΓ‘lisis de costos-beneficios
- Definir los objetivos de minerΓa de datos
- Establecer criterios de rendimiento para los modelos
- Elaborar el plan de proyecto
DespuΓ©s de realizar todo el ciclo de nuestra metodologΓa se pretende estar en condiciones de responder las siguiente preguntas:
- How can we accurately estimate the quantity sold for each product available in inventory?
- What are the determining factors to model the quantity sold of products available in inventory?
- Which variables should be included in a hypothetical development of a version 2.0 of the obtained models?
1. Business contextΒΆ
Lidl enfrenta el reto de decidir quΓ© productos conservar en el inventario activo y cuΓ‘les remover para optimizar el espacio y mejorar las ventas. El exceso de inventario genera costos de almacenamiento innecesarios, mientras que el desabastecimiento afecta directamente los ingresos. El uso de datos histΓ³ricos de ventas, precios y marketing permite detectar patrones para apoyar esta toma de decisiones. Haciendo un analisis de entorno nos hemos dado cuenta que los principales problemas que enfrenta Lidl son:
- Espacio limitado en tiendas vs. productos de baja rotaciΓ³n.
- Dificultad para identificar patrones de ventas y rentabilidad.
- Dificultad para identificar patrones de ventas y rentabilidad.
Porter's Five Forces Diagram - Environment Analysis
2. Objetivos comercialesΒΆ
El objetivo central de este anΓ‘lisis es mejorar la gestiΓ³n del inventario, generando recomendaciones sobre quΓ© productos deben conservarse o retirarse, en funciΓ³n de su desempeΓ±o en ventas.
Objetivos especΓficos:
- Estimar la cantidad vendida esperada de cada producto.
- Identificar los factores que mΓ‘s influyen en el comportamiento de ventas.
- Determinar las caracterΓsticas comunes entre los productos que logran cumplir sus metas de venta.
3. Criterios de rendimiento comercialΒΆ
Para que el proyecto sea considerado exitoso desde el punto de vista del negocio, se proponen los siguientes criterios:
- Lograr un modelo predictivo con un nivel razonable de precisiΓ³n al estimar las cantidades vendidas.
- Reducir los errores de predicciΓ³n que puedan generar decisiones equivocadas de almacenamiento.
- Generar reglas comprensibles que puedan ser aplicadas por el Γ‘rea de logΓstica y compras para decidir quΓ© productos mantener.
4. EvaluaciΓ³n de situaciΓ³n actualΒΆ
Actualmente Lidl cuenta con un conjunto de variables sobre los productos, tales como:
- Precio regular, precio promocional, aΓ±o de fabricaciΓ³n, tipo de marketing, entre otros.
Sin embargo, se deben enfrentar algunos retos:
Es necesario limpiar, transformar y preparar los datos para que sean aptos para modelado.
Los recursos tΓ©cnicos disponibles son limitados (por ejemplo, se trabaja desde un entorno acadΓ©mico en Google Colab).
Diagrama DOFA
5. Requisitos, supuestos y restriccionesΒΆ
Requisitos:
- Disponer de un dataset estructurado que contenga variables como CantidadVendida, PrecioRegular, MenorPrecioVenta, PrecioNetoProductor, TipoMarketing, Vendido, entre otros.
Supuestos:
Se asume que los datos histΓ³ricos reflejan patrones de comportamiento similares a los que podrΓan observarse en un entorno real.
Se parte del supuesto de que la variable CantidadVendida es un buen indicador de desempeΓ±o de un producto.
Restricciones:
- No se cuenta con datos de estacionalidad, ubicaciΓ³n geogrΓ‘fica o promociones especΓficas, lo que limita la precisiΓ³n del modelo.
6. AnΓ‘lisis costo/beneficioΒΆ
Aunque el proyecto se desarrolla con fines acadΓ©micos, su aplicaciΓ³n real permitirΓa:
- Reducir costos de almacenamiento asociados a productos con baja rotaciΓ³n.
Mejorar la rentabilidad al priorizar productos que tienen mayor probabilidad de ser vendidos.
- Optimizar el uso del espacio en tienda.
Costos implicados:
Tiempo de procesamiento y anΓ‘lisis.
Recursos computacionales limitados.
7. Objetivos de Data MiningΒΆ
A partir de los objetivos comerciales, se definen los siguientes objetivos analΓticos:
- Desarrollar un modelo de regresiΓ³n que permita predecir la CantidadVendida en funciΓ³n de variables como precio, marketing, antigΓΌedad y promociones.
8. Criterios de rendimiento de los modelosΒΆ
9. Plan del proyectoΒΆ
| Fase | DuraciΓ³n estimada | Responsable |
|---|---|---|
| ComprensiΓ³n del negocio | 1 dΓa | Estudiante / Analista |
| ComprensiΓ³n de los datos | 1-2 dΓas | Estudiante / Analista |
| PreparaciΓ³n de los datos | 2-3 dΓas | Estudiante / Analista |
| Modelado | 2 dΓas | Estudiante |
| EvaluaciΓ³n de los modelos | 1 dΓa | Estudiante |
| ComunicaciΓ³n de resultados | 1 dΓa | Estudiante |
Fase 2. Comprension de los datos πΒΆ
En esta segunda fase nos enfocaremos en tratar las 4 etapas que nos enuncia la guia ModelerCRISPDM.pdf:
RecolecciΓ³n inicial de los datos
DescripciΓ³n de los datos
ExploraciΓ³n de los datos
VerificaciΓ³n de la calidad de los datos
1. RecolecciΓ³n inicial de los datosΒΆ
Se nos proporcionΓ³ una base de datos .csv
Por consiguiente, se entiende que la posibilidad de adquirir nuevos datos es inexistente
2. DescripciΓ³n de los datosΒΆ
| Variable | Tipo de Dato | DescripciΓ³n | Valores/Ejemplo |
|---|---|---|---|
tipo_registro |
Factor | Tipo de registro del producto en el inventario. | Historical, Active |
SKU |
Entero | CΓ³digo ΓΊnico de identificaciΓ³n del producto. | 1737127, 3255963 |
Vendido |
Factor | Indica si el producto fue vendido. | 0 (No), 1 (SΓ) |
TipoMarketing |
Factor | Tipo de estrategia de marketing aplicada al producto. | D (Directo por tienda), S (Fabricante) |
PrimeraVez |
Factor | Indica si el producto se vendiΓ³ por primera vez en la tienda. | 0 (No), 1 (SΓ) |
PrecioRegular |
NumΓ©rico | Precio regular de venta del producto (sin promociones). | 44.99, 121.95 |
AnioFabricacion |
Entero | AΓ±o de fabricaciΓ³n del producto. | 2015, 2010 |
CantidadVendida |
Entero | NΓΊmero total de unidades vendidas del producto. | 8, 39 |
MenorPrecioVenta |
NumΓ©rico | Menor precio promocional aplicado al producto. | 28.97, 0.00 |
PrecioNetoProductor |
NumΓ©rico | Precio neto pagado al fabricante/proveedor por el producto. | 31.84, 15.54 |
EnPromocion |
Factor | Indica si el producto estΓ‘ en promociΓ³n. | 0 (No), 1 (SΓ) |
PromoAgresiva |
Factor | Indica si la promociΓ³n tiene un descuento mayor a 50 unidades monetarias. | 0 (No), 1 (SΓ) |
RatioPrecioRegularCosto |
NumΓ©rico | RelaciΓ³n entre el precio regular y el costo del productor. | 1.74, 3.35 |
EsRentable |
Factor | Indica si el producto genera utilidad (precio de venta > costo del productor). | 0 (No), 1 (SΓ) |
3. ExploraciΓ³n de los datosΒΆ
Path analysis
4. VerificaciΓ³n de la calidad de los datosΒΆ
Haciendo una visualizaciΓ³n muy poco ortodoxa de la base de datos, se aprecian inconsistencias como valores de 0 en ciertos precios, registros que se pueden considerar obsoletos,etc. Por tal motivo, no es necesario hacer un anΓ‘lisis exploratorio para darse cuenta de que esta base requiere un proceso de data cleansing.
Fase 3: PreparaciΓ³n de los datos β¬οΈΒΆ
Para esta fase seguiremos la siguiente ruta de preparaciΓ³n de datos:
- Cargue de datos
- DesignaciΓ³n de la tipologΓa de las variables
- SelecciΓ³n de los datos
- DepuraciΓ³n de los datos
- TransformaciΓ³n de las variables
- SeparaciΓ³n de las muestras
Cargue de datosΒΆ
#InstalaciΓ³n de librerΓas
library(tidyverse) # instalando la librerΓa tidyverse para preparaciΓ³n de datos
df<-read.csv("/content/ventaslidl.csv") #carga la tabla de datos en el entorno de R
head(df) # PrevisualizaciΓ³n del archivo de datos (las seis primeras filas)
summary(df) # EstadΓsticas descriptivas de la tabla de datos
ββ Attaching core tidyverse packages ββββββββββββββββββββββββ tidyverse 2.0.0 ββ β dplyr 1.1.4 β readr 2.1.5 β forcats 1.0.0 β stringr 1.5.1 β ggplot2 3.5.2 β tibble 3.2.1 β lubridate 1.9.4 β tidyr 1.3.1 β purrr 1.0.4 ββ Conflicts ββββββββββββββββββββββββββββββββββββββββββ tidyverse_conflicts() ββ β dplyr::filter() masks stats::filter() β dplyr::lag() masks stats::lag() βΉ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
| X | tipo_registro | SKU | Vendido | TipoMarketing | PrimeraVez | PrecioRegular | AnioFabricacion | CantidadVendida | MenorPrecioVenta | PrecioNetoProductor | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| <int> | <chr> | <int> | <int> | <chr> | <int> | <dbl> | <int> | <int> | <dbl> | <dbl> | |
| 1 | 1 | Historical | 1737127 | 0 | D | 1 | 44.99 | 2015 | 8 | 28.97 | 31.84 |
| 2 | 2 | Historical | 3255963 | 0 | D | 1 | 24.81 | 2005 | 39 | 0.00 | 15.54 |
| 3 | 3 | Historical | 612701 | 0 | D | 0 | 46.00 | 2013 | 34 | 30.19 | 27.97 |
| 4 | 4 | Historical | 115883 | 1 | D | 1 | 100.00 | 2006 | 20 | 133.93 | 83.15 |
| 5 | 5 | Historical | 863939 | 1 | D | 1 | 121.95 | 2010 | 28 | 4.00 | 23.99 |
| 6 | 6 | Historical | 214948 | 0 | D | 0 | 132.00 | 2011 | 33 | 138.98 | 13.64 |
X tipo_registro SKU Vendido
Min. : 1 Length:198917 Min. : 50001 Min. :0.000
1st Qu.: 49730 Class :character 1st Qu.: 217252 1st Qu.:0.000
Median : 99459 Mode :character Median : 612208 Median :0.000
Mean : 99459 Mean : 861363 Mean :0.171
3rd Qu.:149188 3rd Qu.: 904751 3rd Qu.:0.000
Max. :198917 Max. :3960788 Max. :1.000
NA's :122921
TipoMarketing PrimeraVez PrecioRegular AnioFabricacion
Length:198917 Min. :0.0000 Min. : 0.00 Min. : 0
Class :character 1st Qu.:0.0000 1st Qu.: 42.00 1st Qu.:2003
Mode :character Median :1.0000 Median : 69.95 Median :2007
Mean :0.6422 Mean : 90.90 Mean :2006
3rd Qu.:1.0000 3rd Qu.: 116.00 3rd Qu.:2011
Max. :1.0000 Max. :12671.48 Max. :2018
CantidadVendida MenorPrecioVenta PrecioNetoProductor
Min. : 0.00 Min. : 0.00 Min. : 0.00
1st Qu.: 21.00 1st Qu.: 4.91 1st Qu.: 17.95
Median : 32.00 Median : 16.08 Median : 33.98
Mean : 41.43 Mean : 30.98 Mean : 46.83
3rd Qu.: 50.00 3rd Qu.: 40.24 3rd Qu.: 55.49
Max. :2542.00 Max. :14140.21 Max. :19138.79
Tipologia de las variablesΒΆ
df <- df %>%
mutate(
# ConversiΓ³n a variables categoricas
tipo_registro = as.factor(tipo_registro),
TipoMarketing = as.factor(TipoMarketing),
PrimeraVez = as.factor(PrimeraVez),
Vendido = as.factor(Vendido),
# Variables derivadas de las iniciales
EnPromocion = as.factor(ifelse(MenorPrecioVenta < PrecioRegular, 1, 0)),
PromoAgresiva = as.factor(ifelse((PrecioRegular - MenorPrecioVenta) > 50, 1, 0)),
RatioPrecioRegularCosto = ifelse(PrecioNetoProductor > 0,
PrecioRegular / PrecioNetoProductor,
NA),
EsRentable= as.factor(ifelse(((MenorPrecioVenta - PrecioNetoProductor) / PrecioNetoProductor) > 0, 1, 0)))
summary(df)
X tipo_registro SKU Vendido
Min. : 1 Active :122921 Min. : 50001 0 : 63000
1st Qu.: 49730 Historical: 75996 1st Qu.: 217252 1 : 12996
Median : 99459 Median : 612208 NA's:122921
Mean : 99459 Mean : 861363
3rd Qu.:149188 3rd Qu.: 904751
Max. :198917 Max. :3960788
TipoMarketing PrimeraVez PrecioRegular AnioFabricacion CantidadVendida
D: 97971 0: 71163 Min. : 0.00 Min. : 0 Min. : 0.00
S:100946 1:127754 1st Qu.: 42.00 1st Qu.:2003 1st Qu.: 21.00
Median : 69.95 Median :2007 Median : 32.00
Mean : 90.90 Mean :2006 Mean : 41.43
3rd Qu.: 116.00 3rd Qu.:2011 3rd Qu.: 50.00
Max. :12671.48 Max. :2018 Max. :2542.00
MenorPrecioVenta PrecioNetoProductor EnPromocion PromoAgresiva
Min. : 0.00 Min. : 0.00 0: 15954 0:110685
1st Qu.: 4.91 1st Qu.: 17.95 1:182963 1: 88232
Median : 16.08 Median : 33.98
Mean : 30.98 Mean : 46.83
3rd Qu.: 40.24 3rd Qu.: 55.49
Max. :14140.21 Max. :19138.79
RatioPrecioRegularCosto EsRentable
Min. : 0.000 0 :145811
1st Qu.: 1.258 1 : 50788
Median : 1.748 NA's: 2318
Mean : 3.138
3rd Qu.: 3.353
Max. :555.554
NA's :6724
SelecciΓ³n de los datosΒΆ
#Seleccion de registros historical y que todos los datos registrados de las variables de precios sean mayor que cero
#Por otro lado, tambien se seleccionan los registros con aΓ±os de fabricaciΓ³n mayores al 2009
df_his<-subset(df,df$tipo_registro=='Historical' &
df$PrecioRegular>0 &
df$MenorPrecioVenta>0 &
df$CantidadVendida>0 &
df$PrecioNetoProductor>0 &
df$AnioFabricacion>2009)
summary(df_his)
X tipo_registro SKU Vendido TipoMarketing
Min. : 1 Active : 0 Min. : 50006 0:15420 D: 7694
1st Qu.:21868 Historical:19720 1st Qu.: 287840 1: 4300 S:12026
Median :41542 Median : 550759
Mean :41134 Mean : 616979
3rd Qu.:61166 3rd Qu.: 705852
Max. :75995 Max. :3463257
PrimeraVez PrecioRegular AnioFabricacion CantidadVendida
0: 2441 Min. : 1.71 Min. :2010 Min. : 1.00
1:17279 1st Qu.: 51.95 1st Qu.:2010 1st Qu.: 25.00
Median : 81.95 Median :2011 Median : 39.00
Mean : 106.88 Mean :2012 Mean : 49.93
3rd Qu.: 143.00 3rd Qu.:2013 3rd Qu.: 63.00
Max. :1095.99 Max. :2016 Max. :851.00
MenorPrecioVenta PrecioNetoProductor EnPromocion PromoAgresiva
Min. : 3.00 Min. : 1.32 0: 2332 0:12961
1st Qu.: 29.55 1st Qu.: 27.60 1:17388 1: 6759
Median : 48.80 Median : 42.98
Mean : 62.89 Mean : 55.84
3rd Qu.: 83.99 3rd Qu.: 63.85
Max. :7781.01 Max. :9828.14
RatioPrecioRegularCosto EsRentable
Min. : 0.01047 0: 9141
1st Qu.: 1.32400 1:10579
Median : 1.73477
Mean : 2.81624
3rd Qu.: 3.01383
Max. :68.98750
DepuraciΓ³n de los datosΒΆ
#OmisiΓ³n de variables irrelevantes: vamos a separar de la tabla de modelado (lidl_his) las columnas que no se usarΓ‘n en el modelo
df_his<-select(df_his,c(-X,-SKU,-tipo_registro)) #la funciΓ³n select se usa para descartar columnas (c()), indicando con un signo - las variables a descartar.
summary(df_his)
Vendido TipoMarketing PrimeraVez PrecioRegular AnioFabricacion
0:15420 D: 7694 0: 2441 Min. : 1.71 Min. :2010
1: 4300 S:12026 1:17279 1st Qu.: 51.95 1st Qu.:2010
Median : 81.95 Median :2011
Mean : 106.88 Mean :2012
3rd Qu.: 143.00 3rd Qu.:2013
Max. :1095.99 Max. :2016
CantidadVendida MenorPrecioVenta PrecioNetoProductor EnPromocion
Min. : 1.00 Min. : 3.00 Min. : 1.32 0: 2332
1st Qu.: 25.00 1st Qu.: 29.55 1st Qu.: 27.60 1:17388
Median : 39.00 Median : 48.80 Median : 42.98
Mean : 49.93 Mean : 62.89 Mean : 55.84
3rd Qu.: 63.00 3rd Qu.: 83.99 3rd Qu.: 63.85
Max. :851.00 Max. :7781.01 Max. :9828.14
PromoAgresiva RatioPrecioRegularCosto EsRentable
0:12961 Min. : 0.01047 0: 9141
1: 6759 1st Qu.: 1.32400 1:10579
Median : 1.73477
Mean : 2.81624
3rd Qu.: 3.01383
Max. :68.98750
#Descarte de valores nulos: sobre la base de modelado
df_his<-na.omit(df_his)
summary(df_his)
Vendido TipoMarketing PrimeraVez PrecioRegular AnioFabricacion
0:15420 D: 7694 0: 2441 Min. : 1.71 Min. :2010
1: 4300 S:12026 1:17279 1st Qu.: 51.95 1st Qu.:2010
Median : 81.95 Median :2011
Mean : 106.88 Mean :2012
3rd Qu.: 143.00 3rd Qu.:2013
Max. :1095.99 Max. :2016
CantidadVendida MenorPrecioVenta PrecioNetoProductor EnPromocion
Min. : 1.00 Min. : 3.00 Min. : 1.32 0: 2332
1st Qu.: 25.00 1st Qu.: 29.55 1st Qu.: 27.60 1:17388
Median : 39.00 Median : 48.80 Median : 42.98
Mean : 49.93 Mean : 62.89 Mean : 55.84
3rd Qu.: 63.00 3rd Qu.: 83.99 3rd Qu.: 63.85
Max. :851.00 Max. :7781.01 Max. :9828.14
PromoAgresiva RatioPrecioRegularCosto EsRentable
0:12961 Min. : 0.01047 0: 9141
1: 6759 1st Qu.: 1.32400 1:10579
Median : 1.73477
Mean : 2.81624
3rd Qu.: 3.01383
Max. :68.98750
# En este paso se aplica la regla empΓrica, la cual nos dice que el 99,7 % de los datos estΓ‘n entre 3 y -3 desviaciones estandar de la media
inv_train_his <- df_his %>%
mutate(
# Calcular los valores estandarizados para las nuevas variables numΓ©ricas
z_RatioPrecioRegularCosto = (RatioPrecioRegularCosto - mean(RatioPrecioRegularCosto)) / sd(RatioPrecioRegularCosto),
z_cantidadvendida = (CantidadVendida - mean(CantidadVendida)) / sd(CantidadVendida),
z_menorprecioventa = (MenorPrecioVenta - mean(MenorPrecioVenta)) / sd(MenorPrecioVenta),
z_precionetoproductor = (PrecioNetoProductor - mean(PrecioNetoProductor)) / sd(PrecioNetoProductor),
z_precioregular = (PrecioRegular - mean(PrecioRegular )) / sd(PrecioRegular),
)
# Filtrar las filas donde los valores estandarizados estΓ‘n entre -3 y 3 para todas las nuevas variables numΓ©ricas
inv_train_his<- inv_train_his %>%
filter(
between(z_RatioPrecioRegularCosto, -3, 3),
between(z_cantidadvendida, -3, 3),
between(z_menorprecioventa, -3, 3),
between(z_precionetoproductor, -3, 3),
between(z_precioregular, -3, 3)
)
# Removemos las variables creadas que no deseamos
inv_train_his<- inv_train_his %>% select(-starts_with("z_"))
# Mostrar un resumen del dataframe limpio
summary(inv_train_his)
Vendido TipoMarketing PrimeraVez PrecioRegular AnioFabricacion
0:14832 D: 6922 0: 2320 Min. : 1.71 Min. :2010
1: 3873 S:11783 1:16385 1st Qu.: 50.00 1st Qu.:2010
Median : 79.95 Median :2011
Mean :100.91 Mean :2012
3rd Qu.:134.67 3rd Qu.:2013
Max. :332.60 Max. :2016
CantidadVendida MenorPrecioVenta PrecioNetoProductor EnPromocion
Min. : 1.00 Min. : 3.00 Min. : 2.68 0: 2228
1st Qu.: 24.00 1st Qu.: 28.99 1st Qu.: 28.49 1:16477
Median : 38.00 Median : 47.37 Median : 43.44
Mean : 46.46 Mean : 59.70 Mean : 52.00
3rd Qu.: 60.00 3rd Qu.: 80.88 3rd Qu.: 63.94
Max. :169.00 Max. :300.00 Max. :406.19
PromoAgresiva RatioPrecioRegularCosto EsRentable
0:12652 Min. : 0.07002 0:8933
1: 6053 1st Qu.: 1.31585 1:9772
Median : 1.69807
Mean : 2.42642
3rd Qu.: 2.77387
Max. :12.40572
TransformaciΓ³n de las variablesΒΆ
Esta parte se llevarΓ‘ a cabo en la fase de modelado
SeparaciΓ³n de las muestrasΒΆ
#SeparaciΓ³n de la muestras
inv_train<-sample_frac(inv_train_his,0.74) #selecciΓ³n aleatoria de la muestra de entrenamiento
inv_test<-setdiff(inv_train_his,inv_train) #toma la diferencia entre la muestra inicial y la muestra de entrenamiento
dim(inv_train)
dim(inv_test)
- 13842
- 12
- 4863
- 12
Fase 4: Modelado π§ ΒΆ
De acuerdo con los hallazgos y objetivos definidos en las fases anteriores (comprensiΓ³n del negocio, de los datos y preparaciΓ³n de datos), en esta etapa se procederΓ‘ a la construcciΓ³n del modelo que permita estimar la probabilidad de impago (default) de los crΓ©ditos otorgados por el programa Fondo Emprender del SENA.
Dado que la variable objetivo es binaria (default = 0 o 1), se utilizarΓ‘ un modelo de regresiΓ³n logΓstica, ampliamente reconocido por su capacidad de modelar probabilidades en eventos dicotΓ³micos, como el cumplimiento o incumplimiento de una obligaciΓ³n crediticia.
π§ͺ Esta fase se desarrollarΓ‘ en tres momentos clave:
IdentificaciΓ³n del modelo
- SelecciΓ³n de variables relevantes con base en el anΓ‘lisis exploratorio.
- TransformaciΓ³n de variables categΓ³ricas a dummies para su inclusiΓ³n.
- DivisiΓ³n de la muestra en entrenamiento y prueba.
EstimaciΓ³n del modelo
- Se entrenarΓ‘ el modelo mediante el estimador de mΓ‘xima verosimilitud, propio de la regresiΓ³n logΓstica.
- Se utilizarΓ‘ la funciΓ³n
LogisticRegression()descikit-learnpara ajustar el modelo sobre el conjunto de entrenamiento. - Se evaluarΓ‘ la significancia de los coeficientes, magnitud de los efectos y signos esperados.
DiagnΓ³stico del modelo
- EvaluaciΓ³n del desempeΓ±o con mΓ©tricas como: precisiΓ³n, recall, F1 Score, matriz de confusiΓ³n y AUC-ROC.
- AnΓ‘lisis de errores y comparaciΓ³n entre predicciones y valores reales.
- ValidaciΓ³n cruzada para comprobar estabilidad del modelo.
- DiscusiΓ³n sobre posibles mejoras y consideraciones para una futura versiΓ³n 2.0 del modelo.
Esta fase no solo busca obtener un modelo que prediga con buen desempeΓ±o, sino tambiΓ©n entender los factores que mΓ‘s contribuyen al riesgo de impago, con el fin de que las decisiones futuras del Fondo Emprender sean mΓ‘s informadas, estratΓ©gicas y eficientes.
Modelo AΒΆ
Modelo LIN-LIN
IdentificaciΓ³n del modelo AΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$\text{Y} = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\beta_{9}*X_{9}+\beta_{10}*X_{10}+\beta_{11}*X_{11}+\text{E}$
donde:
- $\text{Y}$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $X_8$=
EnPromocion - $X_9$=
PromoAgresiva - $X_{10}$=
RatioPrecioRegularCosto - $X_{11}$=
EsRentable - $\text{E}$=
Error
EstimaciΓ³n del modelo AΒΆ
#EstimaciΓ³n del modelo 1A
modelo1A<-lm(CantidadVendida~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor+
EnPromocion+
PromoAgresiva+
RatioPrecioRegularCosto+
EsRentable,
data = inv_train)
summary(modelo1A)
Call:
lm(formula = CantidadVendida ~ Vendido + TipoMarketing + PrimeraVez +
PrecioRegular + AnioFabricacion + MenorPrecioVenta + PrecioNetoProductor +
EnPromocion + PromoAgresiva + RatioPrecioRegularCosto + EsRentable,
data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-78.581 -16.766 -4.833 11.694 127.357
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.262e+03 3.329e+02 3.790 0.000151 ***
Vendido1 1.676e+01 5.630e-01 29.771 < 2e-16 ***
TipoMarketingS -1.468e+01 5.338e-01 -27.493 < 2e-16 ***
PrimeraVez1 8.233e+00 6.684e-01 12.317 < 2e-16 ***
PrecioRegular 4.050e-02 8.038e-03 5.038 4.75e-07 ***
AnioFabricacion -6.044e-01 1.655e-01 -3.651 0.000262 ***
MenorPrecioVenta -2.008e-02 9.236e-03 -2.174 0.029722 *
PrecioNetoProductor -1.828e-01 1.004e-02 -18.220 < 2e-16 ***
EnPromocion1 7.109e-01 8.626e-01 0.824 0.409896
PromoAgresiva1 2.832e+00 7.473e-01 3.789 0.000152 ***
RatioPrecioRegularCosto 1.870e+00 1.814e-01 10.306 < 2e-16 ***
EsRentable1 -4.101e-01 5.984e-01 -0.685 0.493137
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 25.47 on 13830 degrees of freedom
Multiple R-squared: 0.2786, Adjusted R-squared: 0.278
F-statistic: 485.6 on 11 and 13830 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo AΒΆ
El modelo para pronosticar la CantidadVendida muestra un RΒ² de 0.2786, lo que indica que explica aproximadamente el 27.9% de la variabilidad de los datos, sugiriendo margen para mejorar su capacidad explicativa mediante la inclusiΓ³n de variables adicionales o ajustes en la especificaciΓ³n. La significancia global del modelo es sΓ³lida con un p value menor a 0,05, confirmando que al menos algunas variables aportan informaciΓ³n relevante. Entre las variables significativas destacan: Vendidol (Ξ²=16.76, p<0.001), con un fuerte impacto positivo; TipoMarketingS (Ξ²=-14.68, p<0.001), que reduce las ventas; PrecioNetoProductor (Ξ²=-0.1828, p<0.001), con efecto negativo; y PromoAgresival (Ξ²=2.83, p<0.001), asociada a mayores ventas. MenorPrecioventa (Ξ²=-0.0201, p=0.0297) es marginalmente significativa, mientras que EnPromocion (p=0.41) y EsRentable1 (p=0.49) no son significativas para este modelo.
Modelo BΒΆ
Modelo LOG-LOG
IdentificaciΓ³n del modelo BΒΆ
Este serΓ‘ un modelo transformado por logaritmos. La transformaciΓ³n por logaritmos es una forma de reducir la varianza de las variables en el modelo, como forma previa a decidir si las variables que no aportan se deben excluir; la estructura de este modelo serΓ‘: $log(\text{Y}) = \beta_{0} + \beta_{1}*log(X_{1})+ \beta_{2}*log(X_{2})+\beta_{3}*log(X_{3})+\beta_{4}*log(X_{4})+\text{E}$
Como consecuencia de esta transformaciΓ³n, la lectura de los estimadores de regresiΓ³n (Betas) pasa a darse en valores relativos (en porcentajes).
donde:
- $log(\text{Y})$= $log(CantidadVendida)$
- $log(X_1)$= $log(PrecioRegular)$
- $log(X_2)$= $log(AnioFabricacion)$
- $log(X_3)$= $log(MenorPrecioVenta)$
- $log(X_4)$= $log(PrecioNetoProductor)$
- $\text{E}$=
Error
Se descartan las variables que contengan valores cero, ya que el logaritmo de cero es un nΓΊmero irracional. Por ende en aquellas variables que contengan ceros se puede descartar o se puede filtrar las observaciones con ese valor para poder hacer el estimaciΓ³n
EstimaciΓ³n del modelo BΒΆ
#Estimacion del modelo 1B
modelo1B<-lm(log(CantidadVendida)~
log(PrecioRegular)+
log(AnioFabricacion)+
log(MenorPrecioVenta)+
log(PrecioNetoProductor)
, data=inv_train)
summary(modelo1B)
Call:
lm(formula = log(CantidadVendida) ~ log(PrecioRegular) + log(AnioFabricacion) +
log(MenorPrecioVenta) + log(PrecioNetoProductor), data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-3.5520 -0.3960 0.0122 0.4059 1.9564
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.720e+02 5.522e+01 13.980 < 2e-16 ***
log(PrecioRegular) 3.293e-01 9.615e-03 34.252 < 2e-16 ***
log(AnioFabricacion) -1.010e+02 7.259e+00 -13.915 < 2e-16 ***
log(MenorPrecioVenta) 2.152e-02 7.228e-03 2.977 0.00292 **
log(PrecioNetoProductor) -4.068e-01 9.277e-03 -43.849 < 2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 0.5817 on 13837 degrees of freedom
Multiple R-squared: 0.1585, Adjusted R-squared: 0.1583
F-statistic: 651.7 on 4 and 13837 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo BΒΆ
El modelo de regresiΓ³n lineal que predice log(CantidadVendida) utilizando variables en escala logarΓtmica muestra un RΒ² de 0.1585 (15.85%), indicando que explica una proporciΓ³n moderada-baja de la variabilidad de los datos. La significancia global es sΓ³lida (p value < 0.05), confirmando que al menos un predictor es relevante. Los coeficientes individuales revelan lo siguiente:
log(PrecioRegular) (Ξ²=0.329, p<0.001): Un aumento del 1% en el precio regular se asocia con un incremento del ~0.33% en las ventas.
log(AnioFabricacion) (Ξ²=-101.0, p<0.001): Coeficiente negativo inusualmente alto, sugiriendo que aumentos en el aΓ±o de fabricaciΓ³n reducen drΓ‘sticamente las ventas. Esto podrΓa indicar un error de especificaciΓ³n, ya que los aΓ±os no suelen modelarse en logaritmo directamente.
log(MenorPrecioVenta) (Ξ²=0.0215, p=0.0029): Impacto positivo dΓ©bil pero significativo.
log(PrecioNetoProductor) (Ξ²=-0.4068, p<0.001): RelaciΓ³n negativa fuerte: un 1% de aumento en este precio reduce las ventas en ~0.41%.
Modelo CΒΆ
Modelo LIN-LOG
IdentificaciΓ³n del modelo CΒΆ
Este serΓ‘ un modelo transformado por logaritmos. La transformaciΓ³n por logaritmos es una forma de reducir la varianza de las variables en el modelo, como forma previa a decidir si las variables que no aportan se deben excluir; la estructura de este modelo serΓ‘: $\text{Y} = \beta_{0} + \beta_{1}*log(X_{1})+ \beta_{2}*log(X_{2})+\beta_{3}*log(X_{3})+\beta_{4}*log(X_{4})+\text{E}$
Como consecuencia de esta transformaciΓ³n, la lectura de los estimadores de regresiΓ³n (Betas) pasa a darse en valores relativos (en porcentajes).
donde:
- $\text{Y}$= $CantidadVendida$
- $log(X_1)$= $log(PrecioRegular)$
- $log(X_2)$= $log(AnioFabricacion)$
- $log(X_3)$= $log(MenorPrecioVenta)$
- $log(X_4)$= $log(PrecioNetoProductor)$
- $\text{E}$=
Error
Se descartan las variables que contengan valores cero, ya que el logaritmo de cero es un nΓΊmero irracional. Por ende en aquellas variables que contengan ceros se puede descartar o se puede filtrar las observaciones con ese valor para poder hacer el estimaciΓ³n
EstimaciΓ³n del modelo CΒΆ
#EstimaciΓ³n del modelo 1C
modelo1C<-lm(CantidadVendida~
log(PrecioRegular)+
log(AnioFabricacion)+
log(MenorPrecioVenta)+
log(PrecioNetoProductor)
,data=inv_train)
summary(modelo1C)
Call:
lm(formula = CantidadVendida ~ log(PrecioRegular) + log(AnioFabricacion) +
log(MenorPrecioVenta) + log(PrecioNetoProductor), data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-75.82 -18.43 -5.92 12.33 136.37
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26714.2362 2615.0997 10.215 <2e-16 ***
log(PrecioRegular) 14.8539 0.4553 32.623 <2e-16 ***
log(AnioFabricacion) -3506.2831 343.7794 -10.199 <2e-16 ***
log(MenorPrecioVenta) 3.1204 0.3423 9.116 <2e-16 ***
log(PrecioNetoProductor) -19.7731 0.4393 -45.007 <2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 27.55 on 13837 degrees of freedom
Multiple R-squared: 0.1557, Adjusted R-squared: 0.1554
F-statistic: 637.8 on 4 and 13837 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo CΒΆ
El modelo de regresiΓ³n lineal para predecir CantidadVendida muestra un RΒ² de 0.1557 (15.57%), lo que indica que explica una proporciΓ³n moderada-baja de la variabilidad de los datos. La significancia global del modelo es sΓ³lida (p value < 0.05), confirmando que al menos una variable predictora aporta informaciΓ³n relevante. Los coeficientes individuales revelan lo siguiente:
log(PrecioRegular) (Ξ²=14.85, p<0.001): Un aumento del 1% en el precio regular se asocia con un incremento de ~14.85 unidades en la CantidadVendida.
log(Aniorabricacion) (Ξ²=-3506.28, p<0.001): Coeficiente negativo extremadamente alto, lo que sugiere un posible error de especificaciΓ³n (ej: aplicar logaritmo a una variable como el aΓ±o de fabricaciΓ³n, que no suele modelarse asΓ).
log(MenorPrecioVenta) (Ξ²=3.12, p<0.001): Impacto positivo significativo: un 1% de aumento en el menor precio de venta incrementa las ventas en ~3.12 unidades.
log(PrecioNetoProductor) (Ξ²=-19.77, p<0.001): RelaciΓ³n negativa fuerte: un 1% de aumento en este precio reduce la CantidadVendida en ~19.77 unidades.
Modelo DΒΆ
Modelo LOG-LIN
IdentificaciΓ³n del modelo DΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$log(\text{Y}) = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\beta_{9}*X_{9}+\beta_{10}*X_{10}+\beta_{11}*X_{11}+\text{E}$
donde:
- $log(\text{Y})$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $X_8$=
EnPromocion - $X_9$=
PromoAgresiva - $X_{10}$=
RatioPrecioRegularCosto - $X_{11}$=
EsRentable - $\text{E}$=
Error
EstimaciΓ³n del modelo DΒΆ
#EstimaciΓ³n del modelo 1D
modelo1D<-lm(log(CantidadVendida)~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor+
EnPromocion+
PromoAgresiva+
RatioPrecioRegularCosto+
EsRentable,
data = inv_train)
summary(modelo1D)
Call:
lm(formula = log(CantidadVendida) ~ Vendido + TipoMarketing +
PrimeraVez + PrecioRegular + AnioFabricacion + MenorPrecioVenta +
PrecioNetoProductor + EnPromocion + PromoAgresiva + RatioPrecioRegularCosto +
EsRentable, data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-3.3401 -0.3606 0.0033 0.3701 1.7770
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.3312417 7.0304793 9.435 < 2e-16 ***
Vendido1 0.3375239 0.0118913 28.384 < 2e-16 ***
TipoMarketingS -0.3025023 0.0112748 -26.830 < 2e-16 ***
PrimeraVez1 0.1867816 0.0141185 13.230 < 2e-16 ***
PrecioRegular 0.0012765 0.0001698 7.518 5.89e-14 ***
AnioFabricacion -0.0311644 0.0034964 -8.913 < 2e-16 ***
MenorPrecioVenta -0.0006253 0.0001951 -3.205 0.00135 **
PrecioNetoProductor -0.0050577 0.0002120 -23.861 < 2e-16 ***
EnPromocion1 0.0914474 0.0182199 5.019 5.26e-07 ***
PromoAgresiva1 0.0755486 0.0157834 4.787 1.71e-06 ***
RatioPrecioRegularCosto 0.0176004 0.0038318 4.593 4.40e-06 ***
EsRentable1 -0.0279444 0.0126381 -2.211 0.02704 *
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 0.5379 on 13830 degrees of freedom
Multiple R-squared: 0.2807, Adjusted R-squared: 0.2802
F-statistic: 490.7 on 11 and 13830 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo DΒΆ
El modelo de regresiΓ³n lineal para predecir log(CantidadVendida) muestra un RΒ² de 0.2807 (28.07%), indicando que explica una proporciΓ³n moderada de la variabilidad de los datos. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes individuales destacan lo siguiente:
Vendido1 (Ξ²=0.338, p<0.001): Indica que los productos vendidos aumentan las ventas en ~33.8% (en escala logarΓtmica).
TipoMarketingS (Ξ²=-0.303, p<0.001): Estrategias de marketing tipo hechas por los fabricantes reducen las ventas en ~30.3%.
Primenavez1 (Ξ²=0.187, p<0.001): Productos adquiridos por primera vez incrementan las ventas en ~18.7%.
PrecioNetoProductor (Ξ²=-0.00506, p<0.001): Aumentos en este precio disminuyen las ventas, aunque el efecto es dΓ©bil (0.5% por unidad).
EnPromocion1 (Ξ²=0.091, p<0.001) y PromoAgresiva1 (Ξ²=0.0755, p<0.001): Las promociones tienen impacto positivo significativo.
EsRentable1 (Ξ²=-0.0279, p=0.027): Productos rentables se asocian marginalmente con menores ventas, posiblemente por precios altos.
Modelo EΒΆ
Quitando variables no significativas del modelo A LIN-LIN
IdentificaciΓ³n del modelo EΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$\text{Y} = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\text{E}$
donde:
- $\text{Y}$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
PrecioNetoProductor - $X_7$=
PromoAgresiva - $X_{8}$=
RatioPrecioRegularCosto - $\text{E}$=
Error
EstimaciΓ³n del modelo EΒΆ
#EstimaciΓ³n del modelo 1E
modelo1E<-lm(CantidadVendida~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
PrecioNetoProductor+
PromoAgresiva+
RatioPrecioRegularCosto,
data = inv_train)
summary(modelo1E)
Call:
lm(formula = CantidadVendida ~ Vendido + TipoMarketing + PrimeraVez +
PrecioRegular + AnioFabricacion + PrecioNetoProductor + PromoAgresiva +
RatioPrecioRegularCosto, data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-78.35 -16.73 -4.79 11.71 127.78
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.196e+03 3.306e+02 3.617 0.000300 ***
Vendido1 1.665e+01 5.624e-01 29.612 < 2e-16 ***
TipoMarketingS -1.411e+01 5.123e-01 -27.549 < 2e-16 ***
PrimeraVez1 8.247e+00 6.674e-01 12.357 < 2e-16 ***
PrecioRegular 3.021e-02 6.537e-03 4.621 3.86e-06 ***
AnioFabricacion -5.719e-01 1.644e-01 -3.479 0.000506 ***
PrecioNetoProductor -1.851e-01 9.457e-03 -19.569 < 2e-16 ***
PromoAgresiva1 3.997e+00 6.567e-01 6.087 1.18e-09 ***
RatioPrecioRegularCosto 1.876e+00 1.796e-01 10.444 < 2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 25.48 on 13833 degrees of freedom
Multiple R-squared: 0.2778, Adjusted R-squared: 0.2774
F-statistic: 665.1 on 8 and 13833 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo EΒΆ
El modelo de regresiΓ³n lineal para predecir CantidadVendida muestra un RΒ² de 0.2778 (27.78%), indicando que explica una proporciΓ³n moderada de la variabilidad de los datos. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes individuales destacan lo siguiente:
Vendido1 (Ξ²=16.65, p<0.001): Los productos que superaron la meta de ventas aumentan las ventas en ~16.65 unidades.
TipoMarketingS (Ξ²=-14.11, p<0.001): Las estrategias de marketing hechas por el fabricante reducen las ventas en ~14.11 unidades, lo que sugiere un efecto negativo significativo.
Primeravez1 (Ξ²=8.25, p<0.001): Productos adquiridos por primera vez incrementan las ventas en ~8.25 unidades.
PrecioNetoProductor (Ξ²=-0.185, p<0.001): Cada unidad adicional en este precio disminuye las ventas en ~0.185 unidades.
PromoAgresival (Ξ²=3.997, p<0.001): Promociones agresivas aumentan las ventas en ~4 unidades.
Variables como PrecioRegular (Ξ²=0.0302, p<0.001) y RatioPrecioRegularCosto (Ξ²=1.876, p<0.001) tambiΓ©n son significativas, pero su impacto prΓ‘ctico varΓa: el primero tiene un efecto leve, mientras el segundo muestra una relaciΓ³n fuerte.
Modelo FΒΆ
Quitando las variables no significativas LOG-LIN
IdentificaciΓ³n del modelo FΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$log(\text{Y}) = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\text{E}$
donde:
- $\text{Y}$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
PrecioNetoProductor - $X_7$=
PromoAgresiva - $X_{8}$=
RatioPrecioRegularCosto - $\text{E}$=
Error
EstimaciΓ³n del modelo FΒΆ
#EstimaciΓ³n del modelo 1F
modelo1F<-lm(log(CantidadVendida)~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
PrecioNetoProductor+
PromoAgresiva+
RatioPrecioRegularCosto,
data = inv_train)
summary(modelo1F)
Call:
lm(formula = log(CantidadVendida) ~ Vendido + TipoMarketing +
PrimeraVez + PrecioRegular + AnioFabricacion + PrecioNetoProductor +
PromoAgresiva + RatioPrecioRegularCosto, data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-3.3056 -0.3584 0.0103 0.3722 1.8284
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 60.7522397 7.0074521 8.670 < 2e-16 ***
Vendido1 0.3309556 0.0119200 27.765 < 2e-16 ***
TipoMarketingS -0.2715040 0.0108581 -25.005 < 2e-16 ***
PrimeraVez1 0.1901321 0.0141447 13.442 < 2e-16 ***
PrecioRegular 0.0009819 0.0001385 7.087 1.43e-12 ***
AnioFabricacion -0.0283809 0.0034841 -8.146 4.09e-16 ***
PrecioNetoProductor -0.0050955 0.0002004 -25.424 < 2e-16 ***
PromoAgresiva1 0.1250589 0.0139180 8.985 < 2e-16 ***
RatioPrecioRegularCosto 0.0185747 0.0038072 4.879 1.08e-06 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 0.54 on 13833 degrees of freedom
Multiple R-squared: 0.275, Adjusted R-squared: 0.2746
F-statistic: 655.9 on 8 and 13833 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo FΒΆ
El modelo de regresiΓ³n lineal para predecir log(CantidadVendida) explica aproximadamente el 27.5% de la variabilidad (RΒ² = 0.275), lo que indica una capacidad explicativa moderada. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes significativos mΓ‘s destacados son:
TipoMarketingS (Ξ²=-0.272, p<0.001): Las estrategias de marketing hechas por el fabricante reducen las ventas en ~27.2%.
Primenavez1 (Ξ²=0.190, p<0.001): Los productos adquiridos por primera vez incrementan las ventas en ~19.0%.
PrecioNetoProductor (Ξ²=-0.0051, p<0.001): Cada unidad adicional en este precio disminuye las ventas en ~0.51%.
PromoAgresival (Ξ²=0.125, p<0.001): Las promociones agresivas aumentan las ventas en ~12.5%.
Variables como PrecioRegular (Ξ²=0.00098, p<0.001) y RatioPrecioRegularCosto (Ξ²=0.0186, p<0.001) muestran efectos positivos estadΓsticamente significativos, pero su impacto prΓ‘ctico es mΓnimo debido a la escala de los coeficientes.
Modelo GΒΆ
Quitando las variables no significativas del modelo D LOG-LIN
IdentificaciΓ³n del modelo GΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$log(\text{Y}) = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\beta_{9}*X_{9}+\beta_{10}*X_{10}+\text{E}$
donde:
- $log(\text{Y})$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $X_8$=
EnPromocion - $X_9$=
PromoAgresiva - $X_{10}$=
RatioPrecioRegularCosto - $\text{E}$=
Error
EstimaciΓ³n del modelo GΒΆ
#EstimaciΓ³n del modelo 1G
modelo1G<-lm(log(CantidadVendida)~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor+
EnPromocion+
PromoAgresiva+
RatioPrecioRegularCosto,
data = inv_train)
summary(modelo1G)
Call:
lm(formula = log(CantidadVendida) ~ Vendido + TipoMarketing +
PrimeraVez + PrecioRegular + AnioFabricacion + MenorPrecioVenta +
PrecioNetoProductor + EnPromocion + PromoAgresiva + RatioPrecioRegularCosto,
data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-3.3285 -0.3604 0.0054 0.3686 1.7462
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.7949345 7.0283389 9.504 < 2e-16 ***
Vendido1 0.3370581 0.0118912 28.345 < 2e-16 ***
TipoMarketingS -0.2990915 0.0111704 -26.775 < 2e-16 ***
PrimeraVez1 0.1877714 0.0141134 13.304 < 2e-16 ***
PrecioRegular 0.0012777 0.0001698 7.524 5.62e-14 ***
AnioFabricacion -0.0314033 0.0034952 -8.985 < 2e-16 ***
MenorPrecioVenta -0.0007963 0.0001791 -4.446 8.83e-06 ***
PrecioNetoProductor -0.0049132 0.0002017 -24.363 < 2e-16 ***
EnPromocion1 0.0952983 0.0181390 5.254 1.51e-07 ***
PromoAgresiva1 0.0786152 0.0157246 5.000 5.82e-07 ***
RatioPrecioRegularCosto 0.0165893 0.0038049 4.360 1.31e-05 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 0.538 on 13831 degrees of freedom
Multiple R-squared: 0.2805, Adjusted R-squared: 0.28
F-statistic: 539.1 on 10 and 13831 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo GΒΆ
El modelo de regresiΓ³n lineal para predecir log(CantidadVendida) explica aproximadamente el 28.05% de la variabilidad (RΒ² = 0.2805), mostrando una capacidad explicativa moderada. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes mΓ‘s destacados son:
Vendidol (Ξ²=0.337, p<0.001): Indica que los productos que cumplieron la meta de ventas aumentan las ventas en ~33.7% (escala logarΓtmica).
TipoMarketingS (Ξ²=-0.299, p<0.001): Las estrategias de marketing hechas por el fabricante reducen las ventas en ~29.9%.
PrimeraVezi (Ξ²=0.188, p<0.001): Productos adquiridos por primera vez incrementan las ventas en ~18.8%.
PrecioNetoProductor (Ξ²=-0.0049, p<0.001): Cada unidad adicional en este precio disminuye las ventas en ~0.49%.
PromoAgresival (Ξ²=0.0786, p<0.001) y EnPromocion1 (Ξ²=0.0953, p<0.001): Ambas promociones tienen impacto positivo significativo.
Variables como PrecioRegular (Ξ²=0.00128, p<0.001), MenorPrecioVenta (Ξ²=-0.0008, p<0.001) y RatioPrecioRegularCosto (Ξ²=0.0166, p<0.001) son estadΓsticamente significativas, pero su efecto prΓ‘ctico es mΓnimo debido a la escala de los coeficientes.
Modelo HΒΆ
Quitando las variables no significativas del modelo D LIN-LIN
IdentificaciΓ³n del modelo HΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$\text{Y} = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\beta_{8}*X_{8}+\beta_{9}*X_{9}+\beta_{10}*X_{10}+\text{E}$
donde:
- $\text{Y}$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $X_8$=
EnPromocion - $X_9$=
PromoAgresiva - $X_{10}$=
RatioPrecioRegularCosto - $\text{E}$=
Error
EstimaciΓ³n del modelo HΒΆ
#EstimaciΓ³n del modelo 1H
modelo1H<-lm(CantidadVendida~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor+
EnPromocion+
PromoAgresiva+
RatioPrecioRegularCosto,
data = inv_train)
summary(modelo1H)
Call:
lm(formula = CantidadVendida ~ Vendido + TipoMarketing + PrimeraVez +
PrecioRegular + AnioFabricacion + MenorPrecioVenta + PrecioNetoProductor +
EnPromocion + PromoAgresiva + RatioPrecioRegularCosto, data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-78.665 -16.777 -4.819 11.690 127.373
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.268e+03 3.327e+02 3.813 0.000138 ***
Vendido1 1.675e+01 5.629e-01 29.764 < 2e-16 ***
TipoMarketingS -1.463e+01 5.288e-01 -27.660 < 2e-16 ***
PrimeraVez1 8.248e+00 6.681e-01 12.345 < 2e-16 ***
PrecioRegular 4.052e-02 8.038e-03 5.041 4.69e-07 ***
AnioFabricacion -6.079e-01 1.655e-01 -3.674 0.000239 ***
MenorPrecioVenta -2.259e-02 8.479e-03 -2.664 0.007730 **
PrecioNetoProductor -1.807e-01 9.546e-03 -18.931 < 2e-16 ***
EnPromocion1 7.674e-01 8.587e-01 0.894 0.371486
PromoAgresiva1 2.877e+00 7.444e-01 3.865 0.000112 ***
RatioPrecioRegularCosto 1.855e+00 1.801e-01 10.298 < 2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 25.47 on 13831 degrees of freedom
Multiple R-squared: 0.2786, Adjusted R-squared: 0.2781
F-statistic: 534.1 on 10 and 13831 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo HΒΆ
El modelo de regresiΓ³n lineal para predecir CantidadVendida muestra un RΒ² de 0.2786 (27.86%), lo que indica que explica una proporciΓ³n moderada de la variabilidad de los datos. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes individuales destacan lo siguiente:
Vendido1 (Ξ²=1.268e+03, p=0.000138): Este valor extremadamente alto sugiere un posible error en la especificaciΓ³n del modelo (ej: variable Vendido1 podrΓa estar capturando un efecto irreal o existir multicolinealidad extrema).
TipoMarketing5 (Ξ²=-14.63, p<0.001): Las estrategias de marketing hechas por el fabricante reducen las ventas en ~14.63 unidades.
PrimeraVezi (Ξ²=8.25, p<0.001): Productos adquiridos por primera vez incrementan las ventas en ~8.25 unidades.
PrecioNetoProductor (Ξ²=-0.1807, p<0.001): Cada unidad adicional en este precio disminuye las ventas en ~0.18 unidades.
PromoAgresival (Ξ²=2.877, p=0.000112) y RatioPrecioRegularCosto (Ξ²=1.855, p<0.001): Ambas variables tienen efectos positivos significativos.
Modelo IΒΆ
Usando las variables iniciales
IdentificaciΓ³n del modelo IΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$\text{Y} = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\text{E}$
donde:
- $\text{Y}$=
CantidadVendida - $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $\text{E}$=
Error
EstimaciΓ³n del modelo IΒΆ
#EstimaciΓ³n del modelo 1I
modelo1I<-lm(CantidadVendida~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor,
data = inv_train)
summary(modelo1I)
Call:
lm(formula = CantidadVendida ~ Vendido + TipoMarketing + PrimeraVez +
PrecioRegular + AnioFabricacion + MenorPrecioVenta + PrecioNetoProductor,
data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-64.733 -17.070 -5.019 11.839 126.826
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.652e+03 3.299e+02 5.006 5.61e-07 ***
Vendido1 1.687e+01 5.645e-01 29.894 < 2e-16 ***
TipoMarketingS -1.499e+01 5.286e-01 -28.349 < 2e-16 ***
PrimeraVez1 7.719e+00 6.678e-01 11.559 < 2e-16 ***
PrecioRegular 1.021e-01 4.338e-03 23.544 < 2e-16 ***
AnioFabricacion -7.959e-01 1.641e-01 -4.852 1.24e-06 ***
MenorPrecioVenta -4.041e-02 6.361e-03 -6.354 2.17e-10 ***
PrecioNetoProductor -2.471e-01 6.970e-03 -35.451 < 2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 25.58 on 13834 degrees of freedom
Multiple R-squared: 0.2721, Adjusted R-squared: 0.2717
F-statistic: 738.6 on 7 and 13834 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo IΒΆ
El modelo de regresiΓ³n lineal para predecir CantidadVendida muestra un RΒ² de 0.2721 (27.21%), lo que indica una capacidad explicativa moderada. La significancia global es sΓ³lida (p value < 0.001), confirmando que al menos un predictor es relevante. Los coeficientes individuales destacan lo siguiente:
Vendido1 (Ξ²=16.87, p<0.001): Los productos que cumplieron la meta de ventas aumentan las ventas en ~16.87 unidades.
TipoMarketingS (Ξ²=-14.99, p<0.001): Las estrategias de marketing hechas por el fabricante reducen las ventas en ~14.99 unidades, un efecto negativo fuerte.
PrecioRegular (Ξ²=0.102, p<0.001): Cada unidad adicional en el precio regular incrementa las ventas en ~0.102 unidades, un impacto positivo significativo pero de magnitud limitada.
PrecioNetoProductor (Ξ²=-0.247, p<0.001): RelaciΓ³n negativa destacada: cada unidad adicional en este precio reduce las ventas en ~0.247 unidades.
Modelo JΒΆ
Modelo con las variables iniciales LOG-LIN
IdentificaciΓ³n del modelo JΒΆ
Este modelo tendrΓ‘ la siguiente estructura:
$log(\text{Y}) = \beta_{0} + \beta_{1}*X_{1}+ \beta_{2}*X_{2}+\beta_{3}*X_{3}+\beta_{4}*X_{4}+\beta_{5}*X_{5}+\beta_{6}*X_{6}+\beta_{7}*X_{7}+\text{E}$
donde:
- $log(\text{Y})$= $log(CantidadVendida)$
- $X_1$=
Vendido - $X_2$=
TipoMarketing - $X_3$=
PrimeraVez - $X_4$=
PrecioRegular - $X_5$=
AnioFabricaciΓ³n - $X_6$=
MenorPrecioVenta - $X_7$=
PrecioNetoProductor - $\text{E}$=
Error
EstimaciΓ³n del modelo JΒΆ
#EstimaciΓ³n del modelo 1I
modelo1J<-lm(log(CantidadVendida)~
Vendido+
TipoMarketing+
PrimeraVez+
PrecioRegular+
AnioFabricacion+
MenorPrecioVenta+
PrecioNetoProductor,
data = inv_train)
summary(modelo1J)
Call:
lm(formula = log(CantidadVendida) ~ Vendido + TipoMarketing +
PrimeraVez + PrecioRegular + AnioFabricacion + MenorPrecioVenta +
PrecioNetoProductor, data = inv_train)
Residuals:
Min 1Q Median 3Q Max
-3.3308 -0.3613 0.0059 0.3719 1.8580
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.777e+01 6.955e+00 9.744 <2e-16 ***
Vendido1 3.377e-01 1.190e-02 28.377 <2e-16 ***
TipoMarketingS -2.998e-01 1.114e-02 -26.903 <2e-16 ***
PrimeraVez1 1.864e-01 1.408e-02 13.237 <2e-16 ***
PrecioRegular 2.433e-03 9.146e-05 26.597 <2e-16 ***
AnioFabricacion -3.183e-02 3.459e-03 -9.204 <2e-16 ***
MenorPrecioVenta -1.609e-03 1.341e-04 -11.997 <2e-16 ***
PrecioNetoProductor -5.496e-03 1.469e-04 -37.405 <2e-16 ***
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Residual standard error: 0.5393 on 13834 degrees of freedom
Multiple R-squared: 0.2769, Adjusted R-squared: 0.2765
F-statistic: 756.8 on 7 and 13834 DF, p-value: < 2.2e-16
DiagnΓ³stico del modelo JΒΆ
El modelo de regresiΓ³n lineal para predecir log(CantidadVendida) muestra un RΒ² de 0.2769 (27.69%), lo que indica una capacidad explicativa moderada del modelo. La significancia global del modelo es muy sΓ³lida (p value < 0.001), lo que confirma que al menos uno de los predictores es relevante para explicar la variabilidad en la variable dependiente.
AnΓ‘lisis de los coeficientes individuales:
Vendido1 (Ξ² = 0.3377, p < 0.001): Cuando el producto cumpliΓ³ la meta de ventas, se asocia con un incremento en el logaritmo de la cantidad vendida. Esto implica un efecto positivo importante sobre las ventas.
TipoMarketingS (Ξ² = -2.998e-01, p < 0.001): Las estrategias de marketing tipo "S" se asocian con una reducciΓ³n significativa en las ventas (aprox. 30% menos en tΓ©rminos logarΓtmicos), un efecto negativo fuerte.
PrimeraVez1 (Ξ² = 0.1864, p < 0.001): Cuando el producto es comprado por primera vez, se asocia con un incremento en las ventas. Este es un efecto positivo y significativo.
PrecioRegular (Ξ² = 0.2433, p < 0.001): Un precio regular mΓ‘s alto se relaciona positivamente con mayores ventas (en log(CantidadVendida)), aunque este efecto podrΓa estar relacionado con la percepciΓ³n de valor.
AnioFabricacion (Ξ² = -0.1838, p < 0.001): Productos mΓ‘s antiguos tienden a vender menos. Hay una relaciΓ³n negativa entre el aΓ±o de fabricaciΓ³n y las ventas.
MenorPrecioVenta (Ξ² = -1.609e-01, p < 0.001): Un menor precio de venta estΓ‘ asociado negativamente con las ventas. Esto podrΓa indicar una estrategia de precios no efectiva o percepciΓ³n de baja calidad.
PrecioNetoProductor (Ξ² = -0.5496, p < 0.001): Este precio tiene una relaciΓ³n negativa fuerte con las ventas. Es decir, cuando el precio neto del productor aumenta, las ventas disminuyen considerablemente, posiblemente por una traslaciΓ³n del costo al consumidor.
Fase 5: EvaluaciΓ³n πΒΆ
Este fase nos encargaremos de analizar el RMSEA(root median square error average) de los modelos hechos anteriormente; asimismo, haremos un anΓ‘lisis de estos y escogeremos el mejor modelo posible.
RMSEA MODELO AΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1A<-predict(modelo1A,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1A<-((inv_test$CantidadVendida-inv_test$pron_m1A)^2) #error cuadrΓ‘tico
mseaA<-mean(inv_test$esq1A) #promedio del error cuadrΓ‘tico
rmseaA<-sqrt(mseaA) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaA
RMSEA MODELO BΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1B<-predict(modelo1B,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1B<-((inv_test$CantidadVendida-inv_test$pron_m1B)^2) #error cuadrΓ‘tico
mseaB<-mean(inv_test$esq1B) #promedio del error cuadrΓ‘tico
rmseaB<-sqrt(mseaB) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaB
RMSEA MODELO CΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1C<-predict(modelo1C,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1C<-((inv_test$CantidadVendida-inv_test$pron_m1C)^2) #error cuadrΓ‘tico
mseaC<-mean(inv_test$esq1C) #promedio del error cuadrΓ‘tico
rmseaC<-sqrt(mseaC) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaC
RMSEA MODELO DΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1D<-predict(modelo1D,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1D<-((inv_test$CantidadVendida-inv_test$pron_m1D)^2) #error cuadrΓ‘tico
mseaD<-mean(inv_test$esq1D) #promedio del error cuadrΓ‘tico
rmseaD<-sqrt(mseaD) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaD
RMSEA MODELO EΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1E<-predict(modelo1E,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1E<-((inv_test$CantidadVendida-inv_test$pron_m1E)^2) #error cuadrΓ‘tico
mseaE<-mean(inv_test$esq1E) #promedio del error cuadrΓ‘tico
rmseaE<-sqrt(mseaE) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaE
RMSEA MODELO FΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1F<-predict(modelo1F,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1F<-((inv_test$CantidadVendida-inv_test$pron_m1F)^2) #error cuadrΓ‘tico
mseaF<-mean(inv_test$esq1F) #promedio del error cuadrΓ‘tico
rmseaF<-sqrt(mseaF) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaF
RMSEA MODELO GΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1G<-predict(modelo1G,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1G<-((inv_test$CantidadVendida-inv_test$pron_m1G)^2) #error cuadrΓ‘tico
mseaG<-mean(inv_test$esq1G) #promedio del error cuadrΓ‘tico
rmseaG<-sqrt(mseaG) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaG
RMSEA MODELO HΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1H<-predict(modelo1H,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1H<-((inv_test$CantidadVendida-inv_test$pron_m1H)^2) #error cuadrΓ‘tico
mseaH<-mean(inv_test$esq1H) #promedio del error cuadrΓ‘tico
rmseaH<-sqrt(mseaH) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaH
RMSEA MODELO IΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1I<-predict(modelo1I,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1I<-((inv_test$CantidadVendida-inv_test$pron_m1I)^2) #error cuadrΓ‘tico
mseaI<-mean(inv_test$esq1I) #promedio del error cuadrΓ‘tico
rmseaI<-sqrt(mseaI) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaI
RMSEA MODELO JΒΆ
#CΓ‘lculo del RMSEA - Modelo 1A
#Paso 1: construir los pronΓ³sticos en la muestra de comprobaciΓ³n
inv_test$pron_m1J<-predict(modelo1J,newdata=inv_test)
#Paso 2: construcciΓ³n del RMSEA
inv_test$esq1J<-((inv_test$CantidadVendida-inv_test$pron_m1J)^2) #error cuadrΓ‘tico
mseaJ<-mean(inv_test$esq1J) #promedio del error cuadrΓ‘tico
rmseaJ<-sqrt(mseaJ) #raΓz cuadrada del error cuadrΓ‘tico medio
rmseaJ
ConclusiΓ³n tΓ©cnica de los modelosΒΆ
| Modelo | RΒ² | NΓΊmero de variables | RMSEA |
|---|---|---|---|
| A | 0.2786 | 11 | 25.8921 |
| B | 0.1585 | 4 | 51.9940 |
| C | 0.1557 | 4 | 27.7431 |
| D | 0.2807 | 11 | 51.9500 |
| E | 0.2778 | 8 | 25.8901 |
| F | 0.2750 | 8 | 51.9573 |
| G | 0.2805 | 10 | 51.9558 |
| H | 0.2786 | 10 | 25.8887 |
| I | 0.2721 | 7 | 25.9127 |
| J | 0.2769 | 7 | 51.9576 |
La elecciΓ³n del Modelo I como el mΓ‘s adecuado entre las alternativas evaluadas se fundamenta en un anΓ‘lisis riguroso que equilibra criterios estadΓsticos, teΓ³ricos y prΓ‘cticos. A continuaciΓ³n, se desarrolla una explicaciΓ³n detallada que justifica esta decisiΓ³n:
1. Criterio de parsimonia: eficiencia en la relaciΓ³n complejidad-ajuste El principio de parsimonia, tambiΓ©n conocido como Navaja de Occam, sugiere que, entre modelos con capacidad explicativa similar, debe preferirse aquel con menor complejidad. El Modelo I cumple este principio de manera ejemplar:
NΓΊmero reducido de variables: Utiliza 7 variables, lo que representa un 36% menos que modelos como el D o el H (11 y 10 variables, respectivamente). Esta simplificaciΓ³n no solo reduce la carga computacional, sino que minimiza el riesgo de sobreajuste (overfitting), un fenΓ³meno comΓΊn en modelos complejos donde se ajustan patrones aleatorios en lugar de relaciones reales.
RΒ² competitivo: Aunque su coeficiente de determinaciΓ³n (RΒ² = 0.2721) es ligeramente inferior al de modelos mΓ‘s complejos (ej. Modelo D: 0.2807), la diferencia es marginal (0.0086). En tΓ©rminos prΓ‘cticos, esta pequeΓ±a pΓ©rdida en capacidad explicativa se compensa ampliamente con las ventajas operativas de un modelo mΓ‘s sencillo.
2. Error de estimaciΓ³n (RMSEA): precisiΓ³n comparable a modelos complejos El Root Mean Square Error (RMSA) es un indicador clave para evaluar la precisiΓ³n predictiva. AquΓ, el Modelo I destaca:
RMSA = 25.9127, valor prΓ‘cticamente idΓ©ntico al de modelos con mayor nΓΊmero de variables, como el Modelo H (25.8887 con 10 variables) o el Modelo A (25.8921 con 11 variables). Esto demuestra que, a pesar de su simplicidad, el Modelo I mantiene una capacidad predictiva robusta.
En contraste, modelos con menos variables (ej. Modelo B: 4 variables) presentan un RMSEA significativamente mayor (51.9940)-
3. ComparaciΓ³n con alternativas clave:
Modelo D (RΒ² = 0.2807, 11 variables): Aunque tiene el RΒ² mΓ‘s alto, su uso de 11 variables lo hace menos eficiente. La ganancia en RΒ² (+0.0086) no justifica la adiciΓ³n de 4 variables adicionales, especialmente cuando el RMSEA es casi idΓ©ntico (51.9500 vs. 25.9127). Esto sugiere que las variables extra en el Modelo D podrΓan estar capturando ruido en lugar de seΓ±ales reales.
Modelo H (RΒ² = 0.2786, 10 variables): Similar al Modelo I en RΒ² y RMSEA, pero requiere 3 variables mΓ‘s. La reducciΓ³n del 30% en predictores sin pΓ©rdida significativa de rendimiento refuerza la superioridad del Modelo I en tΓ©rminos de eficiencia.
Modelos E y F (8 variables): Aunque tienen un RΒ² cercano (0.2778 y 0.2750), su RMSEA oscila entre 25.8901 (E) y 51.9573 (F), lo que indica inconsistencia en su desempeΓ±o. El Modelo I, en cambio, ofrece estabilidad predictiva con menos variables.
4. Ventajas prΓ‘cticas y aplicabilidad: En contextos reales, la utilidad de un modelo trasciende sus mΓ©tricas estadΓsticas:
Interpretabilidad: Con solo 7 variables, es mΓ‘s fΓ‘cil identificar relaciones causales, comunicar resultados a audiencias no tΓ©cnicas y tomar decisiones basadas en el modelo. Por ejemplo, en sectores como salud o polΓticas pΓΊblicas, un modelo complejo podrΓa generar desconfianza o dificultar su implementaciΓ³n.
Coste operativo: Menos variables implican menos recursos para recolectar datos, menos tiempo de procesamiento y menor riesgo de errores en la fase de implementaciΓ³n. Esto es crΓtico en entornos con restricciones tecnolΓ³gicas o presupuestarias.
Fase 6: DistribuciΓ³n πΒΆ
En esta ΓΊltima fase nos enfocaremos en tratar los 3 pasos a seguir que nos muestra la guia ModelerCRISPDM.pdf:
- PlanificaciΓ³n de la distribuciΓ³n (Distribution Planning)
- CreaciΓ³n de medios de distribuciΓ³n (Creation of Distribution Media)
- DistribuciΓ³n real (Distribution of Results)
AdemΓ‘s, nos encargaremos de responder las preguntas que fueron planteadas inicialmente.
PlaneaciΓ³n de la distribuciΓ³nΒΆ
Para asegurar que los hallazgos y el modelo predictivo sean accesibles y comprensibles para los tomadores de decisiones, se definiΓ³ una estrategia de distribuciΓ³n enfocada en:
- Audiencia objetivo: Equipo comercial y de inventario.
- Objetivo: Que puedan entender facilmente los resultados de nuestro estudio.
- Formato de entrega:
- Notebook en Google Colab con visualizaciones.
- Lenguaje: TΓ©cnico pero con explicaciones interpretables para usuarios no estadΓsticos.
- Medio de acceso: Compartido vΓa enlance del notebook.
CreaciΓ³n de medios de distribuciΓ³nΒΆ
Se podrian usar los siguientes medios de distribuciΓ³n:
- Aplicaciones con una interfaz interactiva: aplicaciΓ³n que incorpore el modelo hecho y que muestre los resultados de forma comprensible.
- Notebook de colab: usar el mismo modelo en colab en caso de que los recursos sean limitados; se requeriria una persona que sepa interpretar los resultados.
Estas herramientas permitirian a los usuarios explorar y entender los resultados sin requerir conocimientos avanzados de programaciΓ³n o estadΓstica.
DistribuciΓ³n de resultadosΒΆ
ΒΏQuΓ©?
El punto de partida de este proyecto fue abordar una necesidad crΓtica de la operaciΓ³n de Lidl: pronosticar con mayor precisiΓ³n la cantidad de unidades vendidas por producto. Lidl maneja un portafolio de mΓ‘s de 70,000 productos activos, lo que representa un reto significativo para la planificaciΓ³n del inventario, la asignaciΓ³n de espacio en estanterΓas y la reposiciΓ³n oportuna. La falta de visibilidad futura sobre la demanda puede ocasionar tanto quiebres de stock como exceso de inventario, afectando la rotaciΓ³n de productos y, en consecuencia, la rentabilidad. Por eso, el problema de negocio que se buscΓ³ resolver fue: ΒΏcΓ³mo anticipar las cantidades vendidas de un producto, de tal manera que permita optimizar el inventario del retail?
ΒΏCΓ³mo?
Para resolver este problema, se siguiΓ³ la metodologΓa CRISP-DM, comenzando con la comprensiΓ³n del negocio y de los datos disponibles. Posteriormente, se recibiΓ³ la base de datos proporcionada por la empresa y se trato de tal modo que fuese valida en criterios de analΓtica. A partir de esto, se entrenaron varios modelos de regresiΓ³n lineal, los cuales permitieron hacer pronΓ³sticos de las cantidades vendidas y entender los factores que las determinan. Estos pronΓ³sticos sirven como base para tomar decisiones estratΓ©gicas, por ejemplo, cuΓ‘nto reponer de cada producto o quΓ© tipo de publicidad aumenta la probabilidad de que el producto sea vendido. Por ΓΊltimo, se evaluaron los resultados y en este momento se estΓ‘n compartiendo los hallazgos encontrados.
ΒΏCuΓ‘ndo?
Este modelo tiene aplicaciones tanto estratΓ©gicas como tΓ‘cticas. EstratΓ©gicamente, se puede usar en los ciclos de planificaciΓ³n de compras y surtido de productos, donde se toman decisiones a mediano y largo plazo sobre quΓ© productos ofrecer y en quΓ© cantidades. TΓ‘cticamente, permite revisiones periΓ³dicas, por ejemplo, semanales o mensuales, para ajustar inventarios de forma mΓ‘s dinΓ‘mica segΓΊn el comportamiento de la demanda reciente. Los modelos tomaron la informaciΓ³n histΓ³rica proporcionada entre 2010 y 2016, considerando la pertinencia de los datos y estableciendo un rango temporal razonable. En adiciΓ³n a lo anterior, se recomienda recopilar nueva informaciΓ³n conforme al pasar del tiempo; asimismo, contrastar los pronΓ³sticos del modelo con lo que efectivamente pasΓ³, esto en caso de implementar el modelo.
ΒΏDΓ³nde?
La base de datos proporcionada en un principio carece de informaciΓ³n de Γndole geogrΓ‘fica; por tal motivo, no se estΓ‘ en capacidad de dar recomendaciones referente a este aspecto. Con base en lo anterior, para una proxima oportunidad se recomienda incluir informaciΓ³n relacionada a la ubicaciΓ³n de las tiendas donde se realizaron las ventas.
ΒΏPara quΓ©?
El propΓ³sito de este trabajo es claro: apoyar la toma de decisiones en inventario, surtido y estrategias de venta mediante un pronΓ³stico mΓ‘s preciso de la demanda. Aplicando este modelo, Lidl mejorarΓa su planificaciΓ³n de stock, reduciendo tanto el sobreinventario como las faltantes, lo que a su vez disminuye costos, mejora la rotaciΓ³n de productos y permite responder mΓ‘s rΓ‘pido a los cambios en el comportamiento del consumidor. AdemΓ‘s, esta capacidad predictiva facilita negociaciones mΓ‘s informadas con proveedores y contribuye a que la experiencia del cliente sea mΓ‘s consistente al encontrar los productos que necesita en el momento adecuado; todo esto, claro estΓ‘, respecto a la forma en que se venΓa haciendo. En resumen, el modelo no solo pronostica las cantidades vendidas; tambiΓ©n, mejora la eficiencia operativa, respalda decisiones estratΓ©gicas y contribuye directamente a los objetivos de rentabilidad del negocio, teniendo como punto de partida que no se habΓa implementado ningΓΊn procedimiento de anΓ‘litica (se infiere del caso, si lo hubiese implementado antes no tendrΓa la necesidad crear un modelo, sino de mejorarlo)
Conclusiones y recomendaciones
Con los resultados obtenidos hasta el momento, no se recomienda implementar el modelo de forma inmediata y generalizada en todo el negocio. Si bien se han logrado avances importantes en la construcciΓ³n de un modelo predictivo para estimar las cantidades vendidas por producto, los niveles actuales de error en los pronΓ³sticos aΓΊn no alcanzan un umbral de confiabilidad suficiente que permita respaldar decisiones operativas o estratΓ©gicas a gran escala. En este punto, es clave que la organizaciΓ³n establezca de manera explΓcita cuΓ‘l es el grado de error tolerable para efectos de planeaciΓ³n y logΓstica. Es decir, ΒΏcuΓ‘nto error en la predicciΓ³n se puede aceptar sin que se comprometan los niveles de servicio, el costo de inventario o la experiencia del cliente? Alcanzar ese punto de equilibrio serΓ‘ una condiciΓ³n necesaria antes de considerar la adopciΓ³n del modelo como herramienta de soporte a la toma de decisiones.
Uno de los factores que limita actualmente la precisiΓ³n del modelo es la escasa informaciΓ³n disponible, esta se centra principalmente en aspectos como el precio y el tipo de estrategia de marketing utilizada. Aunque estos elementos son relevantes, ciertamente, se consideran insuficientes.
Por esta razΓ³n, la recomendaciΓ³n es avanzar hacia una implementaciΓ³n parcial y progresiva, iniciando con un plan piloto en condiciones controladas. Esto puede hacerse, por ejemplo, seleccionando una categorΓa especΓfica de productos que tenga una demanda mΓ‘s estable y predecible, como productos no perecederos o de alta rotaciΓ³n, o bien enfocΓ‘ndose en una zona geogrΓ‘fica concreta donde se puedan monitorear con detalle los resultados de la implementaciΓ³n y validar la utilidad real del modelo. Esta etapa piloto permitirΓ‘ recoger retroalimentaciΓ³n prΓ‘ctica, identificar puntos dΓ©biles del modelo en condiciones reales y realizar los ajustes necesarios sin comprometer el funcionamiento general del negocio.
A pesar de estas limitaciones, el modelo nos ha permitido identificar algunos factores clave que influyen significativamente en la cantidad vendida. Por ejemplo, se observΓ³ que cuando un producto logra su meta de ventas, su volumen tiende a incrementarse rΓ‘pidamente, probablemente por mayor visibilidad o reposiciΓ³n. TambiΓ©n se detectΓ³ que los productos lanzados por primera vez tienden a tener una aceptaciΓ³n notablemente mΓ‘s alta, lo cual sugiere que el efecto novedad o las promociones iniciales juegan un rol importante. Asimismo, el modelo arrojΓ³ que productos con precios regulares mΓ‘s altos venden mΓ‘s, posiblemente porque el cliente los percibe como de mayor calidad, mientras que los precios excesivamente bajos tienden a generar desconfianza o poco interΓ©s. Por otro lado, los productos con mayor antigΓΌedad, mayores costos de origen o campaΓ±as de marketing hechas poe el productor tienden a tener un comportamiento de venta mucho mΓ‘s bajo.
Adicionalmente, de cara a futuras iteraciones y mejoras del modelo, se propone una ampliaciΓ³n y enriquecimiento del conjunto de variables explicativas, lo que contribuirΓ‘ a captar de manera mΓ‘s completa la complejidad del comportamiento de los consumidores y del entorno comercial. Algunas de las variables clave que deberΓan incorporarse son:
CategorΓa del producto: los patrones de compra varΓan ampliamente entre alimentos frescos, productos de limpieza, bebidas o artΓculos de cuidado personal. Tener esta variable permitirΓa al modelo diferenciar mejor estos comportamientos.
RegiΓ³n geogrΓ‘fica: la ubicaciΓ³n de la tienda o punto de venta influye en la demanda, ya sea por razones demogrΓ‘ficas, culturales o incluso climΓ‘ticas.
Segmento de mercado objetivo: entender a quΓ© tipo de cliente estΓ‘ dirigido un producto permite contextualizar su volumen de ventas.
CaracterΓsticas demogrΓ‘ficas de los clientes: como edad, ingresos, estilo de vida, etc. que pueden influir directamente en la propensiΓ³n a comprar ciertos productos.
Otro aspecto crucial para el perfeccionamiento del modelo es el acceso a datos de desempeΓ±o histΓ³rico de productos activos, es decir, aquellos que aΓΊn se encuentran en venta actualmente. Una vez estos productos completen su ciclo, se deberΓa integrar su informaciΓ³n en las siguientes iteraciones del modelo, de modo que se amplΓe el conjunto de casos y se aumente la capacidad predictiva. Esto tambiΓ©n ayudarΓa a crear un modelo que no solo prediga ventas pasadas conocidas, sino que pueda generalizarse a productos nuevos o con menos historial de ventas.
Asimismo, se recomienda comenzar un proceso sistemΓ‘tico de recolecciΓ³n de datos con una alta agregaciΓ³n temporal. Aumentar la frecuencia de los registros βpor ejemplo, capturando informaciΓ³n semanal o incluso diariaβ permitirΓa analizar con mayor precisiΓ³n la dinΓ‘mica de la demanda, detectar patrones de comportamiento mΓ‘s finos y adaptar los modelos en funciΓ³n de eventos puntuales, como promociones relΓ‘mpago, cambios climΓ‘ticos o dΓas festivos.
Por ΓΊltimo, es importante seΓ±alar que este tipo de modelos no deben entenderse como soluciones definitivas y estΓ‘ticas, sino como herramientas dinΓ‘micas y en evoluciΓ³n, que deben ajustarse y recalibrarse continuamente conforme se acumula nueva informaciΓ³n y cambian las condiciones del mercado. En este sentido, serΓa recomendable establecer un proceso de monitoreo periΓ³dico del desempeΓ±o del modelo, asΓ como un protocolo de reentrenamiento automΓ‘tico o semiautomΓ‘tico a medida que se disponga de nuevos datos.
Los inversionistas y directivos de Lidl despuΓ©s de recibir los resultados:
Respuesta a las preguntasΒΆ
https://docs.google.com/document/d/1Y3mKCUy5csORavSOhW6g2YORvGDpeJnJs-twvb-Ne5g/edit?usp=sharing