TALLER GRUPAL. GESTIÓN LOGÍSTICA EN R

Author

Juan José Arteaga Martinez, Andres Felipe Garcia Pineda, Ferney Andres Morales, Salazar, Andres Felipe Jaramillo Fernandez

1 Modelación

Para abordar la problemática planteada, se ha simulado un conjunto de datos con 300 pedidos, incorporando variables clave como peso, volumen, zona del almacén, destino del envío y tipo de transporte. Además, se incluye el tiempo real de entrega como variable objetivo, permitiendo analizar los factores que influyen en la duración del proceso logístico y desarrollar modelos predictivos para mejorar la estimación de tiempos de entrega.

set.seed(10)
n <- 300
data <- data.frame(
  peso = runif(n, 1, 50),
  volumen = runif(n, 0.1, 5),
  almacen = sample(c("Zona A", "Zona B", "Zona C"), n, TRUE),
  destino = sample(c("Urbano", "Rural"), n, TRUE),
  transporte = sample(c("Terrestre", "Aéreo", "Marítimo"), n, TRUE),
  tiempo_real = runif(n, 1, 72) 
)

Con estos datos, se entrenó un modelo de aprendizaje automático basado en Random Forest para predecir el tiempo estimado de entrega, analizando la relación entre las variables y mejorando la precisión de las estimaciones.

library(randomForest)
modelo <- randomForest(tiempo_real ~ peso + volumen + almacen + destino + transporte, data = data)
data$tiempo_estimado <- predict(modelo, data)

Para evaluar la precisión del modelo, se comparan los tiempos reales y estimados mediante un gráfico de dispersión, verificando su alineación con la línea de referencia (y = x).

library(ggplot2)

Adjuntando el paquete: 'ggplot2'
The following object is masked from 'package:randomForest':

    margin
ggplot(data, aes(x = peso, y = destino, color = tiempo_estimado)) +
  geom_jitter(width = 0.2, height = 0.2) +
  scale_color_gradient(low = "blue", high = "red") +
  labs(title = "Clasificación de pedidos según tiempo estimado de entrega",
       x = "Peso del paquete (kg)",
       y = "Destino",
       color = "Tiempo estimado (horas)")

El gráfico muestra la relación entre el peso del paquete y el destino del envío, con colores que representan el tiempo estimado de entrega. No se observan grandes diferencias entre destinos, pero los paquetes más pesados tienden a demorar más. La variabilidad en los tiempos dentro de cada peso sugiere que otros factores, como el tipo de transporte o la ubicación del almacén, también influyen.

2 Preguntas

La importancia de cada variable se evaluó mediante el criterio IncNodePurity de Random Forest, que mide la mejora en la pureza de los nodos del modelo al dividir los datos.

importance(modelo)
           IncNodePurity
peso           14733.590
volumen        12466.256
almacen         3052.027
destino         1465.170
transporte      3814.622
  1. Peso y volumen: Son los factores más influyentes en el tiempo de entrega, ya que paquetes más grandes o pesados requieren mayor tiempo de procesamiento y transporte.
  2. Tipo de transporte: Aunque relevante, su impacto es menor en comparación con peso y volumen.
  3. Zona del almacén: Influye en los tiempos de entrega dependiendo de la ubicación del pedido.
  4. Destino: Es la variable con menor influencia, lo que sugiere rutas logísticas eficientes sin diferencias significativas entre envíos urbanos y rurales.

En general, peso y volumen son los principales determinantes en los tiempos de entrega.

En segunda instancia, para evaluar la precisión del modelo, se calcularon dos métricas claves:

  1. Error Cuadrático Medio (RMSE), que mide cuánto se desvían las predicciones del modelo respecto a los valores reales, que se calculó con el siguiente código y dió el siguiente resultado:
predicciones <- predict(modelo, data)
rmse <- sqrt(mean((data$tiempo_real - predicciones)^2))
rmse
[1] 17.03977

El valor obtenido de RMSE es 17.04, lo que indica una desviación considerable entre los tiempos reales y estimados. Esto sugiere que el modelo aún tiene margen de mejora en términos de precisión.

  1. Coeficiente de determinación (R²), que indica la proporción de la variabilidad explicada por el modelo, que se calculó con el siguiente código y dió el siguiente resultado:
r2 <- 1 - (sum((data$tiempo_real - predicciones)^2) / sum((data$tiempo_real - mean(data$tiempo_real))^2))
r2
[1] 0.2865621

El valor de R² es 0.287, lo que significa que el modelo solo explica aproximadamente el 28.7% de la variabilidad en los tiempos de entrega. Un valor bajo de R² indica que existen otros factores no considerados en el modelo que pueden estar influyendo en los tiempos de entrega.

Por último, el uso de sensores IoT, sistemas de gestión (WMS y TMS) e inteligencia artificial, como Random Forest, mejora la precisión en la predicción de tiempos de entrega, optimiza la asignación de recursos y permite la toma de decisiones automatizada. Esto facilita la anticipación de retrasos, la optimización de rutas y la reducción de costos logísticos al mejorar la asignación de transportes según el peso y volumen de los paquetes. Además, la detección de patrones logísticos contribuye a una planificación más eficiente y efectiva en la distribución de envíos. La integración de datos en tiempo real permite que las empresas mejoren su capacidad de respuesta y eficiencia operativa.