En este documento se realiza una breve exploración de la base de datos Comparendos, que contiene información relacionada con infracciones de tránsito en la ciudad de Barranquilla, en el periodo Abril-Mayo del año 2010. Con el fin de obtener una visión general de la situación presentada, se realizarón gráficos que muestran la cantidad de comparendos reportados con respecto al tipo de infracción, el tipo de vehiculo, los meses registrados, el sexo del infractor, etc.Se utilizarán herramientas básicas de R para importar, visualizar y analizar los datos. A continuación se muestra la información brindada por la base de datos elegida.
names(Comparendos)
## [1] "No. MANDAMIENTO DE PAGO" "FECHA MANDAMIENTO DE PAGO"
## [3] "EJECUTADO" "TIPO DE IDENTIFICACION"
## [5] "No. IDENTIFICACION" "SEXO"
## [7] "COD. INFRACCION" "COMPARENDO"
## [9] "FECHA DE COMPARENDO" "FECHA"
## [11] "AÑO" "DIA"
## [13] "MES" "NOMBRE DEL MES"
## [15] "PACA DE VEHICULO" "TIPO DE VEHICULO"
## [17] "VALOR_A_PAGAR"
Este resumen ofrece una descripción general de las variables numéricas y categóricas del conjunto de datos.
Comparendos %>%
summarise(across(everything(), ~ paste(class(.), collapse = ", "))) %>%
pivot_longer(
everything(),
names_to = "Variable",
values_to = "Clase"
) %>%
mutate(
Descripcion = case_when(
Variable == "No. MANDAMIENTO DE PAGO" ~ "Numero del mandamiento de pago",
Variable == "FECHA MANDAMIENTO DE PAGO" ~ "Fecha del mandamiento de pago",
Variable == "EJECUTADO" ~ "Estado del comparendo",
Variable == "TIPO DE IDENTIFICACION" ~ "Tipo de identificacion del infractor",
Variable == "No. IDENTIFICACION" ~ "Numero de identificacion del infractor",
Variable == "SEXO" ~ "Sexo del infractor",
Variable == "COD. INFRACCION" ~ "Codigo de la infraccion",
Variable == "COMPARENDO" ~ "Numero del comparendo",
Variable == "FECHA DE COMPARENDO" ~ "Fecha en que se hizo el comparendo",
Variable == "FECHA" ~ "Fecha en formato caracter",
Variable == "AÑO" ~ "Ano de la infraccion",
Variable == "DIA" ~ "Dia de la infraccion",
Variable == "MES" ~ "Mes de la infraccion",
Variable == "NOMBRE DEL MES" ~ "Nombre del mes de la infraccion",
Variable == "PACA DE VEHICULO" ~ "Placa del vehiculo",
Variable == "TIPO DE VEHICULO" ~ "Tipo de vehiculo",
Variable == "VALOR_A_PAGAR" ~ "Valor monetario a pagar",
TRUE ~ ""
)) %>%
knitr::kable(
caption = "Clases y descripcion de cada variable en el dataset"
)
| Variable | Clase | Descripcion |
|---|---|---|
| No. MANDAMIENTO DE PAGO | character | Numero del mandamiento de pago |
| FECHA MANDAMIENTO DE PAGO | character | Fecha del mandamiento de pago |
| EJECUTADO | character | Estado del comparendo |
| TIPO DE IDENTIFICACION | character | Tipo de identificacion del infractor |
| No. IDENTIFICACION | numeric | Numero de identificacion del infractor |
| SEXO | character | Sexo del infractor |
| COD. INFRACCION | numeric | Codigo de la infraccion |
| COMPARENDO | character | Numero del comparendo |
| FECHA DE COMPARENDO | numeric | Fecha en que se hizo el comparendo |
| FECHA | POSIXct, POSIXt | Fecha en formato caracter |
| AÑO | numeric | Ano de la infraccion |
| DIA | numeric | Dia de la infraccion |
| MES | numeric | Mes de la infraccion |
| NOMBRE DEL MES | character | Nombre del mes de la infraccion |
| PACA DE VEHICULO | character | Placa del vehiculo |
| TIPO DE VEHICULO | character | Tipo de vehiculo |
| VALOR_A_PAGAR | numeric | Valor monetario a pagar |
Antes de realizar el análisis, se verifico la integridad de los datos teniendo en cuenta las siguientes caracteristicas:
Valores faltantes: Ninguna variable critica tiene NA significativos.
Variables categoricas incosistentes: Se identifico que la columna SEXO incluye categorias incorrectas como “EMPRESA” y “CEDULA NUEVA”.
Formatos de variables: Se convirtieron fechas a formato Date y el valor_a_pagar a formato numerico.
Para realizar este informe se hizo uso de las siguientes librerias:
knitr: Es una libreria que convierte los resultados de R en formatos bonitos dentro de los documentos Markdown, HTML, word o PDF.
readr: Forma parde del tidyverse y ayuda a importar datos desde archivos de texto (CSV, TSV, etc)
dplyr: Una de las librerias más importantes del tidyverse, sirve para manipular y transformar datos de manera eficiente.
ggplot2: Libreria para visualización de datos basada en la gramatica de los gráficos.
tidyverse: Conjunto de paquetes diseñados para trabajar juntos de manera coherente en el flujo de analisis de datos (lectura, manipulación, visualización).
A continuación, se muestra la proporción de comparendos por sexo, en la que se aprecia que las mujeres tienen una proporción de comparendos más alta, seguidas por los hombres y empresas. Sin embargo se debe resaltar la definicion de esta categoria debido a la inclusión de “empresa” y “cedula nueva”, y estas no deberian corresponder como tal al apartado de sexo.
Comparendos %>%
count(SEXO) %>%
mutate(porcentaje = round(100 * n / sum(n), 1)) %>%
ggplot(aes(x = reorder(SEXO, -n), y = n, fill = SEXO)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(porcentaje, "%")),
vjust = -0.5, color = "black", size = 4, fontface = "bold") +
scale_fill_manual(values = c("yellow", "blue", "green", "purple")) +
labs(title = "Distribucion de comparendos por Genero",
x = "Genero",
y = "Cantidad de comparendos") +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", color = "black", size = 15, hjust = 0.5),
axis.title = element_text(color = "black"),
axis.text = element_text(color = "black")
)
sexo <- Comparendos %>%
count(`SEXO`) %>%
arrange(desc(n)) %>%
mutate(
porcentaje = round(n / sum(n) * 100, 1),
etiqueta = paste0(porcentaje, "%")
)
sexo
## # A tibble: 4 × 4
## SEXO n porcentaje etiqueta
## <chr> <int> <dbl> <chr>
## 1 MUJER 945 44.6 44.6%
## 2 HOMBRE 615 29 29%
## 3 EMPRESA 472 22.3 22.3%
## 4 CÉDULA NUEVA 88 4.2 4.2%
El gráfico evidencia una distribución desigual de las infracciones, destacándose el código 64 como el de mayor frecuencia. Esta infracción corresponde al exceso de velocidad, concentrando la mayor proporción de casos registrados durante el período analizado.
Comparendos %>%
count(`COD. INFRACCION`) %>% # Cuenta las infracciones
arrange(desc(n)) %>% # Ordena de mayor a menor
head(10) %>% # Toma las 10 primeras filas
ggplot(aes(x = reorder(`COD. INFRACCION`, n), y = n)) + # Gráfico con eje x reordenado
geom_col(fill = "purple", width = 0.6) + # Barras verdes y un poco más delgadas
coord_flip() + # Barras horizontales
labs(title = "Cantidad de infracciones por tipos",
x = "Tipo de infraccion",
y = "Cantidad") +
theme_minimal(base_size = 13) + # Tema minimal con tamaño base 13
theme(
plot.title = element_text(face = "bold", color = "black", hjust = 0.5), # Título verde oscuro, centrado y en negrita
axis.title = element_text(color = "black"), # Títulos ejes en verde
axis.text = element_text(color = "black") # Texto de ejes en verde oscuro
) +
geom_text(aes(label = n),
vjust = 0.5, hjust = 1, # Texto dentro de la barra, centrado verticalmente y a la izquierda
color = "black", # Color verde oscuro para el texto
size = 5)
infracciones <- Comparendos %>%
count(`COD. INFRACCION`) %>%
arrange(desc(n)) %>%
mutate(
porcentaje = round(n / sum(n) * 100, 1),
etiqueta = paste0(porcentaje, "%")
)
En el grafico vemos que la mayoría de los comparendos fueron impuestos a conductores de carro (1.938 casos; 91,4%), mientras que las motocicletas registraron 182 comparendos (8,6%). Esto evidencia un claro predominio de las infracciones asociadas a vehículos tipo carro.
vehiculos <- Comparendos %>%
count(`TIPO DE VEHICULO`) %>%
arrange(desc(n)) %>%
mutate(
porcentaje = round(n / sum(n) * 100, 1),
etiqueta = paste0(porcentaje, "%")
)
vehiculos
## # A tibble: 2 × 4
## `TIPO DE VEHICULO` n porcentaje etiqueta
## <chr> <int> <dbl> <chr>
## 1 CARRO 1938 91.4 91.4%
## 2 MOTO 182 8.6 8.6%
Comparendos %>%
count(`TIPO DE VEHICULO`) %>%
mutate(porcentaje = round(100 * n / sum(n), 1),
etiqueta = paste0(`TIPO DE VEHICULO`, " (", porcentaje, "%)")) %>%
ggplot(aes(x = "", y = porcentaje, fill = `TIPO DE VEHICULO`)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y") +
scale_fill_manual(values = c("#2E8B57", "#66BB6A", "#A5D6A7", "#B9F6CA", "#81C784")) +
geom_text(aes(label = paste0(porcentaje, "%")),
position = position_stack(vjust = 0.5), color = "white", size = 4) +
labs(title = "Distribucion de comparendos por tipo de vehiculo",
fill = "Tipo de vehiculo") +
theme_void() +
theme(
plot.title = element_text(face = "bold", color = "black", size = 15, hjust = 0.5),
legend.title = element_text(color = "black", face = "bold"),
legend.text = element_text(color = "black")
)
En el análisis de los comparendos se evidencia una alta concentración de infracciones en el código 64 (exceso de velocidad), siendo la conducta más frecuente durante el período evaluado, así como un predominio de comparendos asociados a vehículos tipo carro frente a motocicletas. En la clasificación por género se observan inconsistencias en la variable, debido a la inclusión de categorías como “empresa” y “cédula nueva”, las cuales no corresponden directamente a sexo, lo que puede afectar la interpretación de los resultados. En conjunto, los hallazgos muestran que las infracciones se concentran principalmente en el exceso de velocidad y en determinados tipos de registro, lo que sugiere la necesidad de depurar y estandarizar las variables para un análisis más preciso.