1. Introducción

La base de datos BD_Comparendos contiene información sobre las infracciones de tránsito registradas en la ciudad de Barranquilla durante los meses de abril y mayo de 2010. En ella se documentan los comparendos impuestos a conductores de automóviles, motocicletas y empresas que incumplieron las normas de tránsito vigentes.

Las infracciones registradas incluyen conductas como conducir a velocidad superior a la permitida, no detenerse ante un semáforo en rojo o amarillo, no respetar el paso de peatones y transitar en sentido contrario. El objetivo de este informe es identificar patrones en las infracciones cometidas, el perfil de los infractores, los tipos de vehículos involucrados y los costos económicos que generaron las multas durante el período analizado.


2. Carga de librerías y datos

library(readxl)
library(dplyr)
library(ggplot2)
library(knitr)
library(scales)
df <- read_excel("BD_Comparendos_OK__-_TAD__1__jaider___2_.xlsx",
                 sheet = "Data Original (2)")
names(df) <- c("mandamiento", "fecha_mandamiento", "ejecutado",
               "tipo_id", "num_id", "genero", "cod_infraccion",
               "nom_infraccion", "comparendo", "fecha_comparendo",
               "dia", "nom_dia", "mes", "nom_mes", "anio",
               "placa", "vehiculo_raw", "costo",
               "extra1", "extra2", "extra3", "extra4", "extra5", "extra6")
df <- df %>%
  mutate(
    vehiculo = case_when(
      grepl("[A-Za-z]$", trimws(placa)) ~ "Moto",
      grepl("[0-9]$", trimws(placa))    ~ "Auto",
      TRUE ~ "Desconocido"
    ),
    nom_mes = case_when(
      mes == 4 ~ "Abril",
      mes == 5 ~ "Mayo",
      TRUE ~ as.character(mes)
    ),
    costo = as.numeric(costo)
  ) %>%
  filter(!is.na(comparendo), !is.na(genero))

3. Vista general del dataset

La base de datos cuenta con 2.120 registros y 18 variables. A continuación se muestra una muestra de los primeros registros para conocer la estructura de la información.

cat("Total de registros:", nrow(df), "\n")
## Total de registros: 2120
cat("Variables:", ncol(df), "\n")
## Variables: 19
df %>%
  select(ejecutado, genero, nom_infraccion, nom_mes, vehiculo, costo) %>%
  head(8) %>%
  kable(caption = "Primeros registros de la base de datos")
Primeros registros de la base de datos
ejecutado genero nom_infraccion nom_mes vehiculo costo
AARON JOSE SANTIAGO DULCE HOMBRE Conducir un vehículo a velocidad superior a la máxima permitida. Abril Auto 257500
AARON JOSE SANTIAGO DULCE HOMBRE Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500
ACADEMIA DE CONDUCCION DEL LIT EMPRESA Conducir un vehículo a velocidad superior a la máxima permitida. Abril Auto 257500
ACADEMIA DE CONDUCCION DEL LIT EMPRESA Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500
ACGUTIERREZ Y CIA SCA EMPRESA Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500
ACOLCHADOS Y LENCERIAS DE LA EMPRESA Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500
ADA MARIA RUIZ MARIN MUJER Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500
ADA MARIA RUIZ MARIN MUJER Conducir un vehículo a velocidad superior a la máxima permitida. Mayo Auto 257500

4. Análisis de infracciones

En esta sección se identifican los tipos de infracciones más cometidas. La tabla y el gráfico muestran que la infracción predominante es conducir a velocidad superior a la máxima permitida, representando más del 76% de los comparendos registrados, seguida por no detenerse ante un semáforo en rojo o amarillo.

4.1 Tipos de infracción

df %>%
  count(nom_infraccion, sort = TRUE) %>%
  rename(Infracción = nom_infraccion, Cantidad = n) %>%
  kable(caption = "Cantidad de comparendos por tipo de infracción")
Cantidad de comparendos por tipo de infracción
Infracción Cantidad
Conducir un vehículo a velocidad superior a la máxima permitida. 1626
No detenerse ante una luz roja o amarilla de semáforo 385
No respetar el paso de peatones 105
Transitar en sentido contrario al estipulado para la vía 4
df %>%
  count(nom_infraccion, sort = TRUE) %>%
  ggplot(aes(x = reorder(nom_infraccion, n), y = n, fill = nom_infraccion)) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = n), hjust = -0.3, size = 3.5) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  coord_flip() +
  scale_fill_brewer(palette = "Dark2") +
  labs(title = "Comparendos por tipo de infracción",
       x = NULL, y = "Cantidad") +
  theme_minimal()


5. Análisis por género

Se analiza la distribución de comparendos según el género del infractor. Los resultados muestran que las mujeres concentran el mayor número de infracciones entre los infractores individuales, seguidas por los hombres. Las empresas también representan una parte significativa de los registros, ya que los vehículos a su nombre acumularon varias multas.

df %>%
  count(genero, sort = TRUE) %>%
  mutate(Porcentaje = paste0(round(n / sum(n) * 100, 1), "%")) %>%
  rename(Género = genero, Cantidad = n) %>%
  kable(caption = "Comparendos por género del infractor")
Comparendos por género del infractor
Género Cantidad Porcentaje
MUJER 970 45.8%
HOMBRE 683 32.2%
EMPRESA 467 22%
df %>%
  count(genero) %>%
  ggplot(aes(x = "", y = n, fill = genero)) +
  geom_col(width = 1) +
  geom_text(aes(label = n), position = position_stack(vjust = 0.5), size = 4) +
  coord_polar(theta = "y") +
  scale_fill_manual(values = c("HOMBRE" = "#264653",
                               "MUJER"  = "#E76F51",
                               "EMPRESA"= "#2A9D8F")) +
  labs(title = "Comparendos por género", fill = "Género") +
  theme_void()


6. Análisis por tipo de vehículo

El gráfico refleja que la mayoría de las infracciones fueron cometidas por conductores de automóviles, lo cual es coherente con la mayor proporción de este tipo de vehículo en circulación. Las motocicletas representan una minoría dentro de los registros.

df %>%
  count(vehiculo) %>%
  mutate(Porcentaje = paste0(round(n / sum(n) * 100, 1), "%")) %>%
  rename(Vehículo = vehiculo, Cantidad = n) %>%
  kable(caption = "Comparendos por tipo de vehículo")
Comparendos por tipo de vehículo
Vehículo Cantidad Porcentaje
Auto 1939 91.5%
Moto 181 8.5%
df %>%
  count(vehiculo) %>%
  ggplot(aes(x = vehiculo, y = n, fill = vehiculo)) +
  geom_col(width = 0.5, show.legend = FALSE) +
  geom_text(aes(label = n), vjust = -0.5, size = 4) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  scale_fill_manual(values = c("Auto" = "#3A5A98", "Moto" = "#F4A261")) +
  labs(title = "Comparendos por tipo de vehículo",
       x = "Tipo de vehículo", y = "Cantidad") +
  theme_minimal()


7. Análisis por mes

Al comparar los dos meses registrados, se observa que mayo concentra un mayor número de comparendos que abril. Esto puede deberse a que el período de registro en mayo abarca más días dentro de la base de datos.

df %>%
  count(nom_mes) %>%
  rename(Mes = nom_mes, Cantidad = n) %>%
  kable(caption = "Comparendos por mes")
Comparendos por mes
Mes Cantidad
Abril 712
Mayo 1408
df %>%
  count(nom_mes) %>%
  ggplot(aes(x = nom_mes, y = n, fill = nom_mes)) +
  geom_col(width = 0.6, show.legend = FALSE) +
  geom_text(aes(label = n), vjust = -0.5, size = 4) +
  scale_fill_manual(values = c("Abril" = "#B8A1D9", "Mayo" = "#7353A6")) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(title = "Comparendos por mes",
       x = "Mes", y = "Cantidad") +
  theme_minimal()


8. Análisis de costos

Se analizan los valores económicos de las multas impuestas. Existen únicamente dos valores posibles: $257.500 para infracciones de menor gravedad como exceso de velocidad y no respetar el paso de peatones, y $515.000 para infracciones graves como saltarse un semáforo. El gráfico de distribución confirma que la mayoría de las multas corresponden al valor menor, en línea con la infracción más frecuente.

8.1 Resumen estadístico

df %>%
  summarise(
    `Mínimo`  = dollar(min(costo, na.rm = TRUE), prefix = "$"),
    `Máximo`  = dollar(max(costo, na.rm = TRUE), prefix = "$"),
    `Promedio`= dollar(mean(costo, na.rm = TRUE), prefix = "$"),
    `Total`   = dollar(sum(costo, na.rm = TRUE), prefix = "$")
  ) %>%
  kable(caption = "Resumen de costos de comparendos")
Resumen de costos de comparendos
Mínimo Máximo Promedio Total
$257,500 $515,000 $304,749 $646,067,500

8.2 Costo promedio por tipo de infracción

df %>%
  group_by(nom_infraccion) %>%
  summarise(
    Cantidad = n(),
    `Costo promedio` = dollar(mean(costo, na.rm = TRUE), prefix = "$"),
    `Costo total`    = dollar(sum(costo, na.rm = TRUE), prefix = "$")
  ) %>%
  arrange(desc(Cantidad)) %>%
  kable(caption = "Costos por tipo de infracción")
Costos por tipo de infracción
nom_infraccion Cantidad Costo promedio Costo total
Conducir un vehículo a velocidad superior a la máxima permitida. 1626 $257,500 $418,695,000
No detenerse ante una luz roja o amarilla de semáforo 385 $515,000 $198,275,000
No respetar el paso de peatones 105 $257,500 $27,037,500
Transitar en sentido contrario al estipulado para la vía 4 $515,000 $2,060,000

8.3 Distribución de costos

df %>%
  count(costo) %>%
  ggplot(aes(x = factor(costo), y = n, fill = factor(costo))) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = n), vjust = -0.5, size = 4) +
  scale_fill_manual(values = c("257500" = "#2A9D8F", "515000" = "#E76F51")) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  scale_x_discrete(labels = c("257500" = "$257.500", "515000" = "$515.000")) +
  labs(title = "Distribución de valores de comparendos",
       x = "Valor del comparendo", y = "Cantidad") +
  theme_minimal()


9. Infractores más frecuentes

La tabla muestra los 10 infractores con mayor número de comparendos acumulados. Se destacan tanto personas naturales como empresas que acumularon múltiples multas durante el período analizado, lo que sugiere una reincidencia en el incumplimiento de las normas de tránsito.

df %>%
  count(ejecutado, sort = TRUE) %>%
  head(10) %>%
  rename(`Nombre` = ejecutado, `N° comparendos` = n) %>%
  kable(caption = "Top 10 infractores con más comparendos")
Top 10 infractores con más comparendos
Nombre N° comparendos
LEASING BANCOLOMBIAA SA CF 61
FINANCIERA INTERNACIONAL SA 32
TRANSPORTES MST Y CIA SENC 31
LEASING DE OCCIDENTE SA CF 28
LILIANA ROZO PINZON 27
GMAC FINANCIERA DE COLOMBIA 21
LEASING DE CREDITO SA 21
TRANSPORTES MST Y CIA S EN C 17
UINON FAMILIAR CHARRIS SEN C 13
ELVIRA DEL CARMEN GARRIDO AREVALO 10

10. Conclusiones

  • La infracción más común es el exceso de velocidad, presente en más del 76% de los casos.

  • Los automóviles son el tipo de vehículo con más comparendos.

  • Mayo registró más infracciones que abril.

  • Las multas se concentran en el valor de $257.500, correspondiente a infracciones de menor gravedad.

  • Algunos infractores acumularon varios comparendos, evidenciando reincidencia en las infracciones.

  • La infracción más frecuente es exceder la velocidad máxima permitida (más del 76% de los casos).

  • Las mujeres representan el mayor grupo de infractores individuales, seguidas por hombres y empresas.

  • La gran mayoría de los comparendos corresponden a automóviles.

  • El mes de mayo concentra más comparendos que abril.

  • Existen dos valores de multa: $257.500 (infracciones leves) y $515.000 (más graves como semáforo en rojo).