Introducción

El presente informe tiene como propósito analizar el comportamiento de tres problemáticas sociales de alto impacto en Colombia: los feminicidios, los delitos sexuales y la violencia intrafamiliar, utilizando para ello diferentes bases de datos oficiales. A través del procesamiento, depuración y análisis estadístico de la información, se buscó identificar patrones, tendencias temporales, grupos poblacionales afectados y posibles relaciones entre los distintos tipos de violencia.

Para el desarrollo del análisis se empleó el software R debido a su capacidad para gestionar grandes volúmenes de datos y producir visualizaciones de alta calidad. Se utilizaron diversas librerías especializadas, tales como dplyr, ggplot2, tidyr, reshape2 y scales, permitiendo realizar procesos de agrupamiento, transformación y graficación. Asimismo, la lectura de bases de datos se manejó mediante readxl, y personalizar paletas de color y mejorar la estética visual del reporte.

El informe incluye múltiples consultas diseñadas para responder preguntas clave, entre ellas:

  • La evolución de los feminicidios por año, apoyada en gráficos de líneas con etiquetas de datos.

  • Los mecanismos o armas utilizados según el tipo de delito, mediante visualizaciones comparativas por categorías.

  • La distribución porcentual del volumen de registros entre las tres bases analizadas, presentada mediante un gráfico circular.

Resumen de las Bases de Datos

Para el desarrollo del presente informe se utilizaron tres bases de datos independientes, cada una correspondiente a un tipo específico de violencia. Estas bases contienen información detallada sobre los casos reportados en Colombia, permitiendo analizar características demográficas, temporales y geográficas de las víctimas. A continuación se presenta un resumen de su estructura y contenido:

Feminicidios

summary(BD_FIMINCIDIOS)
##        ID             AÑO       Grupo de edad de la víctima
##  Min.   :    9   Min.   :2024   Length:5958                
##  1st Qu.:10414   1st Qu.:2024   Class :character           
##  Median :21811   Median :2024   Mode  :character           
##  Mean   :21672   Mean   :2024                              
##  3rd Qu.:32123   3rd Qu.:2025                              
##  Max.   :43752   Max.   :2025                              
##  Grupo Mayor Menor de Edad Grupo de Edad judicial Ciclo Vital       
##  Length:5958               Length:5958            Length:5958       
##  Class :character          Class :character       Class :character  
##  Mode  :character          Mode  :character       Mode  :character  
##                                                                     
##                                                                     
##                                                                     
##  Sexo de la víctima Estado Civil       País de Nacimiento de la Víctima
##  Length:5958        Length:5958        Length:5958                     
##  Class :character   Class :character   Class :character                
##  Mode  :character   Mode  :character   Mode  :character                
##                                                                        
##                                                                        
##                                                                        
##  Escolaridad        Pertenencia Grupal Mes del hecho      Dia del hecho     
##  Length:5958        Length:5958        Length:5958        Length:5958       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  Rango de Hora del Hecho X 3 Horas Código Dane Municipio
##  Length:5958                       Length:5958          
##  Class :character                  Class :character     
##  Mode  :character                  Mode  :character     
##                                                         
##                                                         
##                                                         
##  Municipio del hecho DANE Departamento del hecho DANE Código Dane Departamento
##  Length:5958              Length:5958                 Length:5958             
##  Class :character         Class :character            Class :character        
##  Mode  :character         Mode  :character            Mode  :character        
##                                                                               
##                                                                               
##                                                                               
##  Escenario del Hecho Zona del Hecho     Actividad Durante el Hecho
##  Length:5958         Length:5958        Length:5958               
##  Class :character    Class :character   Class :character          
##  Mode  :character    Mode  :character   Mode  :character          
##                                                                   
##                                                                   
##                                                                   
##  Circunstancia del Hecho Manera de Muerte   Mecanismo Causal  
##  Length:5958             Length:5958        Length:5958       
##  Class :character        Class :character   Class :character  
##  Mode  :character        Mode  :character   Mode  :character  
##                                                               
##                                                               
##                                                               
##  Diagnóstico Topográfico de la Lesión Presunto Agresor   Razón del Suicidio
##  Length:5958                          Length:5958        Length:5958       
##  Class :character                     Class :character   Class :character  
##  Mode  :character                     Mode  :character   Mode  :character  
##                                                                            
##                                                                            
##                                                                            
##  Condición de la Víctima Medio de Desplazamiento o Transporte
##  Length:5958             Length:5958                         
##  Class :character        Class :character                    
##  Mode  :character        Mode  :character                    
##                                                              
##                                                              
##                                                              
##  Servicio del Vehículo Clase o Tipo de Accidente Objeto de Colisión
##  Length:5958           Length:5958               Length:5958       
##  Class :character      Class :character          Class :character  
##  Mode  :character      Mode  :character          Mode  :character  
##                                                                    
##                                                                    
##                                                                    
##  Servicio del Objeto de Colisión Localidad del Hecho Ancestro Racial   
##  Length:5958                     Length:5958         Length:5958       
##  Class :character                Class :character    Class :character  
##  Mode  :character                Mode  :character    Mode  :character  
##                                                                        
##                                                                        
##                                                                        
##  Pueblo Indígena    Orientación Sexual Identidad de Género Transgénero       
##  Length:5958        Length:5958        Length:5958         Length:5958       
##  Class :character   Class :character   Class :character    Class :character  
##  Mode  :character   Mode  :character   Mode  :character    Mode  :character  
##                                                                              
##                                                                              
##                                                                              
##  Pertenencia Étnica
##  Length:5958       
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Delito Sexual

summary(BD_DELITOSEXUAL)
##  ARMAS MEDIOS       DEPARTAMENTO        MUNICIPIO        
##  Length:40759       Length:40759       Length:40759      
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##   FECHA HECHO                          AÑO          GENERO         
##  Min.   :2024-01-01 00:00:00.00   Min.   :2024   Length:40759      
##  1st Qu.:2024-04-07 00:00:00.00   1st Qu.:2024   Class :character  
##  Median :2024-07-01 00:00:00.00   Median :2024   Mode  :character  
##  Mean   :2024-06-29 02:16:58.25   Mean   :2024                     
##  3rd Qu.:2024-09-20 00:00:00.00   3rd Qu.:2025                     
##  Max.   :2024-12-31 00:00:00.00   Max.   :2025                     
##  NA's   :20027                                                     
##  *AGRUPA EDAD PERSONA* CODIGO DANE          DELITOS             CANTIDAD     
##  Length:40759          Length:40759       Length:40759       Min.   : 1.000  
##  Class :character      Class :character   Class :character   1st Qu.: 1.000  
##  Mode  :character      Mode  :character   Mode  :character   Median : 1.000  
##                                                              Mean   : 1.112  
##                                                              3rd Qu.: 1.000  
##                                                              Max.   :13.000  
## 

Violencia Intrafamiliar

summary(BD_VIOLENCIAINTRAFAMILIAR)
##  ARMAS MEDIOS       DEPARTAMENTO        MUNICIPIO        
##  Length:120516      Length:120516      Length:120516     
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
##                                                          
##                                                          
##   FECHA HECHO                          AÑO          GENERO         
##  Min.   :2024-01-01 00:00:00.00   Min.   :2024   Length:120516     
##  1st Qu.:2024-04-02 00:00:00.00   1st Qu.:2024   Class :character  
##  Median :2024-07-01 00:00:00.00   Median :2025   Mode  :character  
##  Mean   :2024-06-28 19:23:46.96   Mean   :2025                     
##  3rd Qu.:2024-09-23 00:00:00.00   3rd Qu.:2025                     
##  Max.   :2024-12-31 00:00:00.00   Max.   :2025                     
##  NA's   :79941                                                     
##  AGRUPA_EDAD_PERSONA CODIGO DANE           CANTIDAD    
##  Length:120516       Length:120516      Min.   :  1.0  
##  Class :character    Class :character   1st Qu.:  1.0  
##  Mode  :character    Mode  :character   Median :  1.0  
##                                         Mean   :  1.5  
##                                         3rd Qu.:  1.0  
##                                         Max.   :154.0  
## 

Objetivos del Informe

Analizar y caracterizar los casos de feminicidios, delitos sexuales y violencia intrafamiliar en Colombia a partir de tres bases de datos oficiales, con el fin de identificar patrones, tendencias y factores asociados que permitan comprender la magnitud y el comportamiento de estas problemáticas en el territorio nacional.

Objetivos Específicos

  1. Integrar y depurar las tres bases de datos disponibles, garantizando su organización, coherencia y calidad para realizar un análisis estadístico confiable.

  2. Describir la distribución geográfica de los casos de violencia por departamento y municipio, identificando las zonas con mayor incidencia.

  3. Generar visualizaciones estadísticas y gráficas que faciliten la comprensión del comportamiento de los casos y permitan comunicar los resultados de manera clara.

Consultas

Las consultas permitieron explorar las tres bases de datos mediante operaciones de agrupación, conteo y unión de información. Se analizaron los casos por año, departamento, municipio, género y grupo de edad, identificando tendencias generales y comparando la magnitud de los feminicidios, delitos sexuales y violencia intrafamiliar. También se realizaron cruces entre bases para obtener totales combinados, así como visualizaciones gráficas que muestran los departamentos con mayor incidencia, la evolución temporal de los casos y la distribución de víctimas por edad. En conjunto, las consultas ofrecieron una visión clara del comportamiento de estas violencias y permitieron identificar patrones relevantes dentro de los datos.

Consulta 1

library(ggplot2)
library(dplyr)

# Función de conteo por año
count_by_year <- function(df){
  yc <- grep("AÑO", names(df), ignore.case = TRUE, value = TRUE)
  if(length(yc)==0) return(NULL)
  as.data.frame(table(df[[yc[1]]]))
}

fem_years <- count_by_year(BD_FIMINCIDIOS)

# Convertir a numérico para orden correcto
fem_years$Var1 <- as.numeric(as.character(fem_years$Var1))

# Paleta morada
col_linea <- "#7B2CBF"
col_puntos <- "#9D4EDD"
col_texto <- "#3C096C"

ggplot(fem_years, aes(x = Var1, y = Freq)) +
  geom_line(linewidth = 1.5, color = col_linea) +
  geom_point(size = 3.5, color = col_puntos) +
  geom_text(
    aes(label = Freq),
    vjust = -0.7,
    size = 4,
    color = col_texto
  ) +
  scale_x_continuous(breaks = fem_years$Var1) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", color = col_texto, size = 16),
    axis.title = element_text(face = "bold", color = col_texto),
    axis.text = element_text(color = "#4C2A85"),
    panel.grid.minor = element_blank(),
    panel.grid.major.x = element_blank()
  ) +
  labs(
    title = "Evolución de Feminicidios por Año",
    x = "Año",
    y = "Número de Casos"
  )

La Evolución de Feminicidios por Año ilustra una reducción drástica en la cantidad de casos reportados entre los años 2024 y 2025. Se observa que la cifra inicial de 3,979 casos desciende abruptamente hasta los 1,979, lo que representa una disminución exacta de 2,000 incidentes en el transcurso de un solo periodo. En términos proporcionales, esta caída indica que la problemática se redujo prácticamente a la mitad, registrando un descenso del 50.2%, lo cual se refleja visualmente en una línea con una pendiente negativa muy pronunciada que conecta ambos puntos.

Consulta 2

library(dplyr)
library(ggplot2)
library(scales)

options(scipen = 999)  # evita NC

# Preparar bases
fem_armas <- BD_FIMINCIDIOS %>% 
  count(`Mecanismo Causal`, name = "Casos") %>% 
  rename(ArmaMedio = `Mecanismo Causal`) %>% 
  mutate(Delito = "Feminicidios")

del_armas <- BD_DELITOSEXUAL %>% 
  count(`ARMAS MEDIOS`, name = "Casos") %>% 
  rename(ArmaMedio = `ARMAS MEDIOS`) %>% 
  mutate(Delito = "Delitos Sexuales")

vif_armas <- BD_VIOLENCIAINTRAFAMILIAR %>% 
  count(`ARMAS MEDIOS`, name = "Casos") %>% 
  rename(ArmaMedio = `ARMAS MEDIOS`) %>% 
  mutate(Delito = "Violencia Intrafamiliar")

# Unir
armas_total <- bind_rows(fem_armas, del_armas, vif_armas)

# Eliminar vacíos
armas_total <- armas_total %>% filter(!is.na(ArmaMedio) & ArmaMedio != "")

# Gráfico
ggplot(armas_total, aes(x = Casos, y = reorder(ArmaMedio, Casos), fill = Delito)) +
  geom_col(position = "dodge") +
  geom_text(aes(label = Casos),
            position = position_dodge(width = 0.9),
            hjust = -0.1,
            size = 3.5) +
  scale_fill_manual(values = c(
    "Delitos Sexuales" = "#7A1FA2",
    "Feminicidios" = "#4A0072",
    "Violencia Intrafamiliar" = "#CE93D8"
  )) +
  scale_x_continuous(labels = comma) +
  theme_minimal(base_size = 12) +
  labs(
    title = "Armas o Medios Utilizados por Tipo de Delito",
    x = "Casos",
    y = "Arma o Medio"
  ) +
  theme(
    legend.title = element_blank(),
    plot.title = element_text(face = "bold", size = 15),
    axis.text.y = element_text(size = 9)
  ) +
  expand_limits(x = max(armas_total$Casos) * 1.15)

La consulta llamada Armas o Medios Utilizados por Tipo de Delito, ofrece una visión detallada de los métodos empleados en tres categorías de crímenes: Delitos Sexuales, Feminicidios y Violencia Intrafamiliar. La distribución de los datos muestra claramente una dependencia abrumadora del factor “Sin Empleo de Armas” en los tres tipos de delitos, lo cual es el hallazgo más significativo.

“Sin Empleo de Armas”, este medio supera drásticamente a todos los demás. Para la Violencia Intrafamiliar, los casos ascienden a 98,141. En los Delitos Sexuales, se registran 35,589 casos.

Consulta 3

library(ggplot2)
library(dplyr)

# Crear tabla de conteo
counts <- data.frame(
  Base = c("Feminicidios", "Delitos Sexuales", "Violencia Intrafamiliar"),
  Registros = c(
    nrow(BD_FIMINCIDIOS),
    nrow(BD_DELITOSEXUAL),
    nrow(BD_VIOLENCIAINTRAFAMILIAR)
  )
)

# Calcular porcentaje
counts <- counts %>%
  mutate(Porcentaje = Registros / sum(Registros) * 100)

# Paleta de tonos morados
colores_morados <- c("#6A0DAD", "#8A2BE2", "#C39BD3")

# Gráfico circular
ggplot(counts, aes(x = "", y = Porcentaje, fill = Base)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  scale_fill_manual(values = colores_morados) +
  theme_void() +
  labs(
    title = "Distribución porcentual de Casos por Delitos",
    fill = "Base de Datos"
  ) +
  geom_text(
    aes(label = paste0(round(Porcentaje, 1), "%")),
    position = position_stack(vjust = 0.5),
    color = "white",
    size = 4
  )

El gráfico de distribución porcentual establece que la Violencia Intrafamiliar es la problemática dominante dentro de la base de datos analizada, representando el 72.1% de todos los casos. Le siguen los Delitos Sexuales con un 24.4% y, en menor medida, los Feminicidios que constituyen el 3.6% del total. Este panorama subraya que cualquier estrategia de seguridad y prevención debe priorizar los recursos destinados a mitigar la violencia en el entorno familiar, dado su volumen masivo en comparación con los otros dos delitos.

Consulta 4

library(dplyr)
library(ggplot2)

# FEMINICIDIOS
dep_fem <- BD_FIMINCIDIOS %>%
  group_by(`Departamento del hecho DANE`) %>%
  summarise(Feminicidios = n()) %>%
  rename(DEPARTAMENTO = `Departamento del hecho DANE`)

# DELITOS SEXUALES
dep_sex <- BD_DELITOSEXUAL %>%
  group_by(DEPARTAMENTO) %>%
  summarise(DelitosSexuales = sum(CANTIDAD))

# VIOLENCIA INTRAFAMILIAR
dep_vi <- BD_VIOLENCIAINTRAFAMILIAR %>%
  group_by(DEPARTAMENTO) %>%
  summarise(ViolenciaIntrafamiliar = sum(CANTIDAD))

dep_total <- dep_fem %>%
  full_join(dep_sex, by="DEPARTAMENTO") %>%
  full_join(dep_vi, by="DEPARTAMENTO") %>%
  replace(is.na(.), 0) %>%
  mutate(Total = Feminicidios + DelitosSexuales + ViolenciaIntrafamiliar) %>%
  arrange(desc(Total)) %>%
  slice(1:10)

ggplot(dep_total, aes(x = reorder(DEPARTAMENTO, Total), y = Total)) +
  
  geom_bar(stat="identity", fill="#4B0082", width=0.6) +
  
  geom_text(aes(label = Total),
            hjust = -0.2,
            size = 6,
            fontface = "bold") +
  
  coord_flip() +
  
  theme_minimal(base_size = 16) +
  theme(
    plot.title = element_text(face="bold", size=20, hjust=0.5),
    axis.title.y = element_text(face="bold"),
    axis.title.x = element_text(face="bold"),
    axis.text = element_text(face="bold"),
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank()
  ) +
  
  labs(
    title = "Top 10 Departamentos con Más Casos (Tres Bases Combinadas)",
    x = "Departamento",
    y = "Casos Totales"
  ) +
  
  ylim(0, max(dep_total$Total) * 1.15)

Al examinar la concentración geográfica de los casos totales (que, por la distribución de prevalencia, están fuertemente influenciados por la Violencia Intrafamiliar), se observa una disparidad extrema entre las regiones. Cundinamarca se posiciona como el departamento con el mayor número de casos, alcanzando los 86,051, superando por mucho al segundo lugar, Antioquia, que registra 32,099 casos. Este hallazgo sugiere que la violencia está particularmente concentrada en la región de Cundinamarca, probablemente impulsada por su densidad poblacional y la inclusión de su capital, si aplica, en la cifra total. El tercer departamento es Valle, con 17,903 casos.

Consulta 5

library(ggplot2)
library(dplyr)

edad_fem <- BD_FIMINCIDIOS %>%
  group_by(`Grupo de edad de la víctima`) %>%
  summarise(Casos = n()) %>%
  arrange(desc(Casos))

ggplot(edad_fem, 
       aes(x = reorder(`Grupo de edad de la víctima`, Casos),
           y = Casos,
           fill = Casos)) +
  
  geom_bar(stat = "identity") +
  
  # Etiquetas de datos
  geom_text(aes(label = Casos),
            hjust = -0.2,
            color = "black",
            size = 5,
            fontface = "bold") +
  
  # Paleta
  scale_fill_gradientn(colors = c("#E0AAFF", "#C77DFF", 
                                  "#9D4EDD", "#5A189A")) +
  
  coord_flip() +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5),
    axis.text = element_text(face = "bold"),
    axis.title = element_text(face = "bold"),
    legend.position = "none"
  ) +
  
  labs(
    title = "Feminicidios por Grupo de Edad",
    x = "Grupo de Edad",
    y = "Número de Casos"
  ) +
  
  # Suficiente espacio para ver etiquetas
  ylim(0, max(edad_fem$Casos) * 1.15)

El riesgo de feminicidio, lejos de ser constante, se manifiesta en múltiples picos de vulnerabilidad que corresponden a etapas críticas del desarrollo y la vida adulta:

El gráfico “Feminicidios por Grupo de Edad” indica que la fatalidad no se distribuye de manera uniforme, sino que se concentra en grupos específicos. El rango de edad más afectado es (20 a 24 años), con 690 casos. Sorprendentemente, el grupo de (80 y más) se sitúa como el segundo más afectado, con 682 casos, seguido por (25 a 29 años) con 572 casos. Estos datos demuestran un doble pico de riesgo: uno en la adultez joven (20-29 años) y otro en la extrema vejez (80 y más), lo cual debe orientar programas de protección específicos para ambos extremos de la vida adulta.

Correlación de Pearson

library(dplyr)
library(tidyr)
library(ggplot2)
library(reshape2)

# 1. Filtrar FEMENINO en cada base

fem_fem <- BD_FIMINCIDIOS %>%
  filter(`Sexo de la víctima` == "FEMENINO") %>%
  mutate(AÑO = as.character(`AÑO`),
         Delito = "Feminicidios")

fem_sex <- BD_DELITOSEXUAL %>%
  filter(GENERO == "FEMENINO") %>%
  mutate(AÑO = as.character(`AÑO`),
         Delito = "Delitos Sexuales")

fem_vif <- BD_VIOLENCIAINTRAFAMILIAR %>%
  filter(GENERO == "FEMENINO") %>%
  mutate(AÑO = as.character(`AÑO`),
         Delito = "Violencia Intrafamiliar")

# 2. Unir todas las bases

genero_fem <- bind_rows(fem_fem, fem_sex, fem_vif)

# 3. Contar casos por año y delito

tabla_anio <- genero_fem %>%
  group_by(AÑO, Delito) %>%
  summarise(Casos = n(), .groups = "drop") %>%
  pivot_wider(names_from = Delito, values_from = Casos, values_fill = 0)


# 4. Matriz de correlación de Pearson

matriz_corr <- cor(tabla_anio %>% select(`Feminicidios`, `Delitos Sexuales`, `Violencia Intrafamiliar`), 
                   method = "pearson")

# 5. Preparar datos para heatmap

cor_melt <- melt(matriz_corr)

# 6. Heatmap tipo hatpam

ggplot(cor_melt, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(value, 2)), size = 5, color = "black") +
  scale_fill_gradient2(low = "#E6CEFF", mid = "white", high = "#4B0082", midpoint = 0) +
  theme_minimal(base_size = 13) +
  labs(
    title = "Correlación de Pearson entre Delitos Femeninos",
    x = "",
    y = "",
    fill = "Pearson"
  ) +
  theme(
    axis.text.x = element_text(face = "bold"),
    axis.text.y = element_text(face = "bold"),
    plot.title = element_text(face = "bold", hjust = 0.5)
  )

Conclusión

El panorama de la violencia contra las mujeres se define por una crisis de Violencia Intrafamiliar (VIF) que se duplicó alarmantemente en un año y se concentra de forma crítica en Cundinamarca. La gran mayoría de los incidentes se cometen sin el uso de armas.

La violencia letal (Feminicidios) presenta un doble pico de riesgo en mujeres jóvenes (20-24 años) y en la extrema vejez (80 y más años), además de estar perfectamente correlacionada con los Delitos Sexuales. A pesar de una supuesta reducción del 50% en los Feminicidios, la prioridad debe ser contener el explosivo aumento de la VIF, enfocando los esfuerzos en Cundinamarca y protegiendo de manera diferenciada a los grupos de edad más vulnerables.