Este informe presenta un análisis de comparendos basado en un
conjunto de datos proporcionado. Se han ejecutado seis consultas
distintas utilizando el lenguaje de programación R y las librerías
readxl, dplyr y ggplot2 para
extraer información relevante y visualizar patrones. Cada sección
detalla la consulta realizada, el código R utilizado y un análisis
interpretativo de los resultados.
library(readxl)
library(dplyr)
library(ggplot2)
# Carga del conjunto de datos (ajuste la ruta del archivo según sea necesario)
df <- read_excel("C:/Users/Adminsena/Downloads/BD Comparendos OK$ (2).xlsx")
q1 <- df %>%
group_by(`TIPO DE VEHICULO`) %>%
summarise(Total = n()) %>%
arrange(desc(Total))
ggplot(q1, aes(x = reorder(`TIPO DE VEHICULO`, Total),
y = Total,
fill = `TIPO DE VEHICULO`)) +
geom_col(width = 0.6) +
geom_text(aes(label = Total), hjust = -0.2, size = 4) +
coord_flip() +
labs(title = "Comparendos por Tipo de Vehículo",
x = "",
y = "Total") +
theme_minimal() +
theme(legend.position = "none")
Esta consulta agrupa los comparendos por la variable
TIPO DE VEHICULO y calcula el número total de comparendos
para cada tipo. Los resultados se ordenan de forma descendente para
identificar rápidamente los tipos de vehículos con mayor incidencia de
comparendos. La visualización se realiza mediante un gráfico de barras
horizontales, lo que facilita la comparación entre las categorías. Este
análisis es fundamental para entender qué medios de transporte están más
involucrados en infracciones de tránsito, permitiendo a las autoridades
enfocar sus esfuerzos de fiscalización y campañas de educación vial en
los segmentos más problemáticos.
q2 <- df %>%
group_by(`NOMBRE DEL MES`) %>%
summarise(Total = n())
ggplot(q2, aes(x = `NOMBRE DEL MES`,
y = Total,
fill = `NOMBRE DEL MES`)) +
geom_col(width = 0.5) +
geom_text(aes(label = Total), vjust = -0.5, size = 4) +
labs(title = "Comparendos por Mes",
x = "",
y = "Total") +
theme_minimal() +
theme(legend.position = "none")
Esta consulta agrupa los comparendos por el
NOMBRE DEL MES y calcula el total de comparendos para cada
mes. La visualización se presenta como un gráfico de barras verticales,
mostrando la distribución de las infracciones a lo largo del año. Este
análisis permite identificar patrones estacionales o meses específicos
con un aumento o disminución significativa en el número de comparendos.
Dicha información es valiosa para la planificación de recursos y la
implementación de estrategias preventivas o de control en periodos de
mayor incidencia.
q3 <- df %>%
group_by(`COD. INFRACCION`) %>%
summarise(Total = n()) %>%
mutate(
Porcentaje = round(Total / sum(Total) * 100, 1),
Codigo = as.factor(`COD. INFRACCION`)
) %>%
arrange(desc(Total))
ggplot(q3, aes(x = "", y = Porcentaje, fill = Codigo)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = paste0(Codigo, "\n", Porcentaje, "%")),
position = position_stack(vjust = 0.5),
size = 3) +
labs(title = "Distribución por Código de Infracción") +
theme_void() +
theme(legend.position = "none")
Esta consulta identifica las infracciones más frecuentes agrupando
los datos por COD. INFRACCION. Calcula el total de
comparendos para cada código y su porcentaje respecto al total general.
Los resultados se ordenan de forma descendente y se visualizan mediante
un gráfico de pastel (coordenadas polares), lo que permite observar la
proporción de cada infracción en el conjunto total. Este análisis es
crucial para comprender cuáles son las infracciones de tránsito más
comunes, lo que puede guiar la formulación de políticas públicas,
campañas de concientización y la asignación de recursos para abordar las
causas subyacentes de estas infracciones.
q4 <- df %>%
group_by(SEXO) %>%
summarise(Total = n()) %>%
mutate(
Porcentaje = round(Total / sum(Total) * 100, 1)
) %>%
arrange(desc(Total))
ggplot(q4, aes(x = reorder(SEXO, Total),
y = Total,
fill = SEXO)) +
geom_col(width = 0.6) +
geom_text(aes(label = paste0(Total, " (", Porcentaje, "%)")),
hjust = -0.1,
size = 3.5) +
coord_flip() +
labs(title = "Comparendos por Sexo",
x = "",
y = "Total") +
theme_minimal() +
theme(legend.position = "none")
Esta consulta agrupa los comparendos por la variable
SEXO y calcula el total de comparendos para cada categoría,
así como su porcentaje sobre el total. Los resultados se ordenan de
forma descendente y se visualizan mediante un gráfico de barras
horizontales. Este análisis proporciona una perspectiva sobre la
distribución de los comparendos entre hombres y mujeres, lo que puede
ser útil para identificar posibles sesgos en la aplicación de la ley o
para diseñar campañas de educación vial dirigidas a grupos demográficos
específicos.
q5 <- df %>%
group_by(EJECUTADO) %>%
summarise(Total = n()) %>%
arrange(desc(Total)) %>%
slice_head(n = 10)
ggplot(q5, aes(x = reorder(EJECUTADO, Total),
y = Total,
fill = Total)) +
geom_col(width = 0.6) +
geom_text(aes(label = Total),
hjust = -0.2,
size = 3.5) +
coord_flip() +
scale_fill_gradient(low = "#90caf9", high = "#1565c0") +
labs(title = "Top 10 Ejecutados con más Comparendos",
x = "",
y = "Total") +
theme_minimal() +
theme(legend.position = "none")
Esta consulta identifica los 10 ‘Ejecutados’ (presumiblemente
individuos o entidades) con el mayor número de comparendos. Agrupa los
datos por la variable EJECUTADO, calcula el total de
comparendos para cada uno, los ordena de forma descendente y selecciona
los diez primeros. La visualización se realiza mediante un gráfico de
barras horizontales, donde el color de las barras varía según el total
de comparendos, destacando visualmente a los que tienen más
infracciones. Este análisis es útil para identificar a los infractores
reincidentes o a las entidades que requieren una atención especial por
parte de las autoridades de tránsito.
q6 <- df %>%
group_by(DIA) %>%
summarise(Total = n()) %>%
arrange(DIA)
promedio <- mean(q6$Total)
ggplot(q6, aes(x = DIA, y = Total)) +
geom_line(color = "#1565c0", linewidth = 1) +
geom_point(color = "#1565c0", size = 2) +
geom_hline(yintercept = promedio,
linetype = "dashed",
color = "red") +
annotate("text",
x = max(q6$DIA),
y = promedio,
label = paste0("Promedio: ", round(promedio)),
vjust = -0.8,
hjust = 1,
color = "red",
size = 3.5) +
labs(title = "Dias mas afectados",
x = "Día",
y = "Total") +
scale_x_continuous(breaks = q6$DIA) +
theme_minimal()
Esta consulta analiza la distribución de comparendos por día del mes.
Agrupa los datos por la variable DIA y calcula el total de
comparendos para cada día, ordenándolos cronológicamente. Además,
calcula el promedio de comparendos diarios y lo representa en el gráfico
como una línea horizontal discontinua. La visualización es un gráfico de
líneas que muestra la tendencia de los comparendos a lo largo de los
días del mes, permitiendo identificar días específicos con picos o
valles en la incidencia de infracciones. Este análisis es útil para la
planificación operativa, como la asignación de personal de tránsito en
días de alta demanda o la implementación de medidas preventivas en
fechas recurrentes con mayor número de infracciones.