Gestión de Inventario en Retail: Un minorista utiliza árboles de decisiones para optimizar la gestión de inventario. Los criterios incluyen la demanda histórica, las tendencias estacionales y los costos de almacenamiento. El objetivo es prever cuánto inventario se debe almacenar y cuándo realizar pedidos.

Identificacion de la variable dependente e independientes

cat("Variable dependiente: Inventario")
Variable dependiente: Inventario
cat("Variables independientes: Demanda, tendencias, costo de almacenamiento")
Variables independientes: Demanda, tendencias, costo de almacenamiento
# Cargar el paquete necesario
library(rpart)
Warning: package 'rpart' was built under R version 4.2.3
# Crear un dataframe con los datos históricos de demanda, tendencias estacionales y costos de almacenamiento
datos <- data.frame(
  demanda = c(100, 150, 200, 120, 180),
  tendencia = c(0.8, 1.2, 1.5, 0.9, 1.1),
  costo_almacenamiento = c(10, 15, 12, 11, 13)
)

# Crear una variable objetivo que representa la cantidad de inventario a almacenar
datos$inventario <- c(50, 75, 100, 60, 90)
datos$inventario
[1]  50  75 100  60  90
# Entrenar el modelo de árbol de decisiones
modelo <- rpart(inventario ~ demanda + tendencia + costo_almacenamiento, data = datos)
modelo
n= 5 

node), split, n, deviance, yval
      * denotes terminal node

1) root 5 1700 75 *
summary(modelo)
Call:
rpart(formula = inventario ~ demanda + tendencia + costo_almacenamiento, 
    data = datos)
  n= 5 

    CP nsplit rel error xerror xstd
1 0.01      0         1      0    0

Node number 1: 5 observations
  mean=75, MSE=340 
# Hacer una predicción utilizando nuevos datos
nuevos_datos <- data.frame(
  demanda = c(130, 160, 190),
  tendencia = c(0.95, 1.1, 1.3),
  costo_almacenamiento = c(14, 16, 18)
)

prediccion <- predict(modelo, nuevos_datos)
prediccion
[1] 75 75 75
# Imprimir la predicción
print(prediccion) 
[1] 75 75 75
arbol_decision <- rpart(inventario ~ demanda + tendencia + costo_almacenamiento, data = datos, method = "class")
arbol_decision
n= 5 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 5 4 50 (0.2 0.2 0.2 0.2 0.2) *