TALLER ANALISIS DESCRIPTIVO Y ESTIMACIONES ESTADISTICAS

Datos_negocios_extra_5_logisitica

Integrantes: Miguel Pérez y Carlos León

Fecha: 25 de marzo de 2025

————————-

1. Cargar Librerías y Datos

————————-

# Instalar y cargar librerías necesarias
packages <- c("ggplot2", "dplyr", "tidyr", "psych", "car", "infer", "readr")
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:psych':
## 
##     logit
## The following object is masked from 'package:dplyr':
## 
##     recode
library(infer)
library(readr)

# Cargar datos
df <- read_csv("datos_negocios_extra_5_logistica.csv")
## Rows: 100 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Ruta
## dbl (3): KM_Recorridos, Tiempo_Entrega_Horas, Costos_Operativos
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df <- as.data.frame(df)  # Asegurar que df es un dataframe

# Ver estructura del dataset
str(df)
## 'data.frame':    100 obs. of  4 variables:
##  $ Ruta                : chr  "Ruta Sur" "Ruta Norte" "Ruta Sur" "Ruta Oeste" ...
##  $ KM_Recorridos       : num  1796 4856 2909 3643 4753 ...
##  $ Tiempo_Entrega_Horas: num  17.2 29.8 13.3 12.7 23.1 1.1 46.8 45.5 10.2 32.7 ...
##  $ Costos_Operativos   : num  17459 9828 11964 18626 12812 ...
# Mostrar los nombres exactos de las columnas
print("Las columnas disponibles en el dataset son:")
## [1] "Las columnas disponibles en el dataset son:"
print(colnames(df))
## [1] "Ruta"                 "KM_Recorridos"        "Tiempo_Entrega_Horas"
## [4] "Costos_Operativos"

————————-

2. Análisis Descriptivo

————————-

# Resumen Estadístico
describe(df)
##                      vars   n     mean      sd  median  trimmed     mad     min
## Ruta*                   1 100     2.68    1.10     3.0     2.72    1.48    1.00
## KM_Recorridos           2 100  2575.72 1385.56  2729.0  2568.32 1651.62  166.00
## Tiempo_Entrega_Horas    3 100    25.54   14.89    25.9    25.83   19.57    1.10
## Costos_Operativos       4 100 11048.70 5736.23 10407.5 11031.21 8318.61 1008.57
##                           max    range  skew kurtosis     se
## Ruta*                    4.00     3.00 -0.25    -1.28   0.11
## KM_Recorridos         4948.00  4782.00  0.03    -1.09 138.56
## Tiempo_Entrega_Horas    47.60    46.50 -0.04    -1.28   1.49
## Costos_Operativos    19844.28 18835.71 -0.01    -1.35 573.62

Resumen del Análisis Descriptivo

En esta sección se realiza un análisis exploratorio de la base de datos para comprender mejor la distribución de las variables. Se incluyen:

  • Medidas de tendencia central y dispersión: Media, mediana, desviación estándar y rango intercuartílico para las variables numéricas.
  • Frecuencia de categorías: Se analiza la cantidad de registros en cada nivel de las variables categóricas.
  • Visualización gráfica:
    • Histogramas para ver la distribución de variables continuas como KM_Recorridos y Tiempo_Entrega_Horas.
    • Gráficos de barras para representar la cantidad de observaciones en cada categoría de Ruta.
    • Boxplots para identificar valores atípicos y dispersión en variables clave como Costos_Operativos.

Este análisis permite tener una visión clara de los datos antes de aplicar técnicas de estimación estadística.

# Tablas de Frecuencia de variables categóricas
table(df$Ruta)
## 
##  Ruta Este Ruta Norte Ruta Oeste   Ruta Sur 
##         20         21         30         29
# Histograma de KM Recorridos
ggplot(df, aes(x = KM_Recorridos)) +
  geom_histogram(binwidth = 500, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Distribución de KM Recorridos", x = "KM Recorridos", y = "Frecuencia")

# Boxplot de Costos Operativos por Ruta
ggplot(df, aes(x = Ruta, y = Costos_Operativos)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Costos Operativos por Ruta")

# Gráfico de Barras de la Frecuencia de Rutas
ggplot(df, aes(x = as.factor(Ruta))) +
  geom_bar(fill = "purple", color = "black", alpha = 0.7) +
  labs(title = "Frecuencia de Rutas", x = "Ruta", y = "Frecuencia")

# Gráfico de Densidad de KM Recorridos
ggplot(df, aes(x = KM_Recorridos)) +
  geom_density(fill = "red", alpha = 0.5) +
  labs(title = "Densidad de KM Recorridos", x = "KM Recorridos", y = "Densidad")

# Diagrama de Dispersión: KM Recorridos vs Costos Operativos
ggplot(df, aes(x = KM_Recorridos, y = Costos_Operativos)) +
  geom_point(color = "darkgreen", alpha = 0.6) +
  geom_smooth(method = "lm", color = "blue", se = FALSE) +
  labs(title = "Relación entre KM Recorridos y Costos Operativos", x = "KM Recorridos", y = "Costos Operativos")
## `geom_smooth()` using formula = 'y ~ x'

# Gráfico de Barras Apiladas de Costos Operativos por Ruta
ggplot(df, aes(x = Ruta, y = Costos_Operativos, fill = Ruta)) +
  geom_bar(stat = "identity", alpha = 0.7) +
  labs(title = "Costos Operativos Totales por Ruta", x = "Ruta", y = "Costo Operativo Total")

————————-

3. Estimaciones Estadísticas

————————-

# 1. Intervalo de confianza para la Media del Tiempo de Entrega
t.test(df$Tiempo_Entrega_Horas, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  df$Tiempo_Entrega_Horas
## t = 17.154, df = 99, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  22.58758 28.49642
## sample estimates:
## mean of x 
##    25.542
# 2. Estimación de una proporción y su intervalo de confianza
n_entregas <- length(df$Tiempo_Entrega_Horas)
x_bar <- mean(df$Tiempo_Entrega_Horas)
sd_tiempo <- sd(df$Tiempo_Entrega_Horas)
error_margin <- qt(0.975, df = n_entregas - 1) * sd_tiempo / sqrt(n_entregas)
IC_tiempo_entrega <- c(x_bar - error_margin, x_bar + error_margin)
IC_tiempo_entrega
## [1] 22.58758 28.49642
# 3. Estimacion para la Varianza
var_test <- var(df$Costos_Operativos, na.rm = TRUE)
n <- sum(!is.na(df$Costos_Operativos))
chi_sq_lower <- qchisq(0.025, df = n-1)
chi_sq_upper <- qchisq(0.975, df = n-1)
IC_varianza <- c((n - 1) * var_test / chi_sq_upper, (n - 1) * var_test / chi_sq_lower)
IC_varianza
## [1] 25365795 44404006
# 4. Diferencia de Medias del Tiempo de Entrega entre Rutas
t.test(df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Norte"],
       df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Sur"],
       var.equal = TRUE)
## 
##  Two Sample t-test
## 
## data:  df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Norte"] and df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Sur"]
## t = -0.48612, df = 48, p-value = 0.6291
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -10.70052   6.53369
## sample estimates:
## mean of x mean of y 
##  25.24762  27.33103
# 5. Diferencia de proporciónes del Tiempo de Entrega entre Rutas
media_norte <- mean(df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Norte"], na.rm = TRUE)
media_sur <- mean(df$Tiempo_Entrega_Horas[df$Ruta == "Ruta Sur"], na.rm = TRUE)
diff_medias <- media_norte - media_sur
diff_medias
## [1] -2.083415
# 6. Razón de Varianzas
var_ratio <- var.test(df$KM_Recorridos[df$Ruta == "Ruta Norte"],
                      df$KM_Recorridos[df$Ruta == "Ruta Sur"])
var_ratio
## 
##  F test to compare two variances
## 
## data:  df$KM_Recorridos[df$Ruta == "Ruta Norte"] and df$KM_Recorridos[df$Ruta == "Ruta Sur"]
## F = 1.0616, num df = 20, denom df = 28, p-value = 0.8681
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4755187 2.5112854
## sample estimates:
## ratio of variances 
##           1.061553

Interpretaciones punto 1

““” # 1. Histograma de KM_Recorridos:

Interpretación: La mayoría de los recorridos se encuentran entre 2000 y 4000 km, lo que indica que la operación logística se centra en trayectos de esta longitud. Sin embargo, también hay valores por debajo de 1000 km y por encima de 4500 km, lo que sugiere que existen rutas más cortas y más largas, posiblemente debido a la ubicación de los centros de distribución.

2. Boxplot de Costos_Operativos por Ruta:

Interpretación: Se observa que la Ruta Oeste tiene la mayor dispersión en costos, con algunos valores atípicos elevados. Esto puede deberse a factores como peajes, combustible o eficiencia en la planificación de los viajes. También se nota que la mediana de costos es más alta en la Ruta Este, lo que indica que en promedio es más costosa que las demás.

3. Gráfico de Barras de la Frecuencia de Rutas:

Interpretación: La Ruta Oeste es la más utilizada en comparación con las demás, lo que sugiere que tiene mayor demanda. En cambio, la Ruta Norte es la menos transitada, lo que podría significar que hay menos clientes en esa zona o que se utilizan otras estrategias de transporte para cubrir esa región.

4. Gráfico de Densidad de KM_Recorridos:

Interpretación: Permite visualizar mejor la distribución sin depender de intervalos fijos, mostrando que la mayor parte de los viajes se concentran en una distancia específica. La curva suavizada sugiere que hay una mayor cantidad de viajes en un rango intermedio de kilometraje, con menos variabilidad en comparación con los datos más extremos.

5. Diagrama de Dispersión KM_Recorridos vs Costos_Operativos:

Interpretación: Se observa una correlación positiva entre kilómetros recorridos y costos operativos. A mayor distancia, el costo tiende a aumentar, lo cual es esperable debido a los mayores gastos en combustible, mantenimiento y tiempos de conducción. Sin embargo, algunos puntos se alejan de esta tendencia, lo que podría indicar ineficiencias en ciertas rutas.

6. Gráfico de Barras Apiladas de Costos Operativos por Ruta:

Interpretación: Se confirma que la Ruta Oeste acumula los costos más altos en comparación con las demás rutas. Esto puede ser resultado de una mayor cantidad de viajes o de un costo promedio por viaje más alto. Este gráfico es útil para analizar en qué rutas se concentran los mayores gastos y determinar estrategias de optimización. ““”

Interpretaciones Punto 2

““” # 1. Intervalo de Confianza para la Media de Tiempo_Entrega_Horas:

Resultado: El intervalo obtenido fue [22.58, 28.49] horas.

Interpretación: Esto significa que, con un 95% de confianza, podemos afirmar que el tiempo promedio de entrega se encuentra dentro de este rango. Este resultado es útil para la planificación logística, ya que establece un marco de referencia confiable para programar las entregas y gestionar los recursos de manera eficiente.

2. Intervalo de Confianza para la Varianza de Costos_Operativos:

Resultado: El intervalo obtenido fue [25,365,795 - 44,404,006].

Interpretación: La varianza en los costos operativos es considerablemente alta, lo que sugiere fluctuaciones significativas en los costos de las rutas. Esto puede indicar ineficiencias en algunos trayectos, costos imprevistos o diferencias en la gestión de las entregas entre rutas.

3. Comparación de Medias entre Rutas (t-test):

Valor p obtenido: 0.6291 (mayor a 0.05, no significativo).

Interpretación: No se encontraron diferencias estadísticamente significativas en los tiempos de entrega entre la Ruta Norte y la Ruta Sur. Esto indica que, en promedio, ambas rutas presentan tiempos de entrega similares, lo que sugiere que la eficiencia en la gestión de las entregas es consistente entre estas rutas.

4. Diferencia de Medias entre Rutas:

Diferencia obtenida: -2.08 horas.

Interpretación: Aunque la Ruta Sur tiene un tiempo de entrega promedio 2.08 horas mayor que la Ruta Norte, esta diferencia no es estadísticamente significativa. Sin embargo, en términos operativos, puede ser relevante si la empresa busca reducir tiempos de entrega. Se recomienda evaluar factores externos como congestión vial o demoras en la carga y descarga.

5. Razón de Varianzas (F-test):

Resultado: F = 1.0616, p-valor = 0.8681.

Interpretación: Al no haber diferencias significativas en la varianza de los tiempos de entrega entre rutas, podemos concluir que ambas presentan niveles similares de variabilidad. Esto es positivo, ya que sugiere estabilidad en la operación logística, sin grandes fluctuaciones en los tiempos de entrega.