Introducción

La violencia de género representa uno de los desafíos sociales más críticos en Colombia. Este informe examina de manera integrada tres manifestaciones del fenómeno: feminicidios, violencia intrafamiliar y delitos sexuales, utilizando datos consolidados que permiten identificar patrones estructurales y tendencias temporales.

La integración de estas tres fuentes de información responde a la necesidad de comprender la violencia de género como un continuum que abarca desde agresiones cotidianas en el ámbito familiar hasta su expresión más extrema en el feminicidio.

Caracterización de la Base de Datos

total_registros <- nrow(Feminicidios)
casos_feminicidio <- sum(Feminicidios$TIPO_DELITO == "Feminicidio", na.rm = TRUE)
casos_vi <- sum(Feminicidios$TIPO_DELITO == "Violencia Intrafamiliar", na.rm = TRUE)
casos_ds <- sum(Feminicidios$TIPO_DELITO == "Delito Sexual", na.rm = TRUE)

resumen_df <- data.frame(
  Indicador = c(
    "Total de registros",
    "Casos de Feminicidio",
    "Casos de Violencia Intrafamiliar",
    "Casos de Delitos Sexuales",
    "Variables analizadas"
  ),
  Valor = c(
    format(total_registros, big.mark = ","),
    format(casos_feminicidio, big.mark = ","),
    format(casos_vi, big.mark = ","),
    format(casos_ds, big.mark = ","),
    ncol(Feminicidios)
  )
)

kbl(resumen_df, 
    col.names = c("Indicador", "Cantidad"),
    align = "lc") %>%
  kable_styling(
    bootstrap_options = c("striped", "hover"),
    full_width = FALSE,
    position = "center"
  ) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#FF6B35")
Indicador Cantidad
Total de registros 216,557
Casos de Feminicidio 0
Casos de Violencia Intrafamiliar 165,579
Casos de Delitos Sexuales 0
Variables analizadas 37

La base de datos integrada contiene 216,557 registros que documentan casos de violencia de género ocurridos en Colombia. Esta consolidación permite un análisis transversal que identifica patrones comunes y particularidades de cada tipo de violencia.

Objetivos del Proyecto

Objetivo General

Caracterizar los patrones epidemiológicos, temporales y geográficos de la violencia de género en Colombia mediante el análisis integrado de datos de feminicidios, violencia intrafamiliar y delitos sexuales.

Objetivos Específicos

1

Determinar el perfil demográfico de las víctimas según grupos etarios y ciclo vital.

2

Identificar patrones de estacionalidad y días críticos para cada tipo de delito.

3

Mapear la distribución geográfica de la violencia y detectar zonas de alta concentración.

4

Evaluar correlaciones estadísticas entre diferentes manifestaciones de violencia de género.

Metodología de Investigación

El proceso metodológico se estructuró en cuatro fases secuenciales:

1

Consolidación de fuentes: Integración de tres bases de datos independientes en un repositorio único con estructura normalizada.

2

Depuración y estandarización: Limpieza de registros duplicados, homologación de categorías de edad y normalización de nomenclatura geográfica.

3

Análisis exploratorio: Aplicación de técnicas de estadística descriptiva y visualización de distribuciones.

4

Análisis correlacional: Evaluación de asociaciones entre variables mediante coeficiente de Pearson.

Hallazgos del Análisis

Análisis 1: Geografía de la Violencia Intrafamiliar

La distribución territorial de la violencia intrafamiliar revela dinámicas urbanísticas, densidades poblacionales y capacidades institucionales diferenciadas. Este análisis identifica los municipios con mayor volumen absoluto de casos.

consulta_vi <- Feminicidios %>%
  filter(TIPO_DELITO == "Violencia Intrafamiliar") %>%
  group_by(MUNICIPIO_VI) %>%
  summarise(Casos = sum(CANTIDAD_VI, na.rm = TRUE)) %>%
  arrange(desc(Casos)) %>%
  slice_max(Casos, n = 10) %>%
  mutate(
    Categoria = case_when(
      row_number() <= 3 ~ "Mega-ciudades",
      row_number() <= 7 ~ "Ciudades grandes",
      TRUE ~ "Ciudades intermedias"
    )
  )

ggplot(consulta_vi, aes(x = reorder(MUNICIPIO_VI, Casos), y = Casos, fill = Categoria)) +
  geom_col(width = 0.75, color = "white", size = 1.1) +
  geom_text(aes(label = format(Casos, big.mark = ",")), 
            hjust = -0.1, 
            size = 4.2,
            fontface = "bold") +
  coord_flip(clip = "off") +
  scale_fill_manual(
    values = c(
      "Mega-ciudades" = "#FF6B35",
      "Ciudades grandes" = "#FF8C61",
      "Ciudades intermedias" = "#FFAD8E"
    )
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.12)),
    labels = label_number(big.mark = ",")
  ) +
  labs(
    title = "Top 10 Municipios con Mayor Violencia Intrafamiliar",
    subtitle = "Clasificación por categoría municipal según volumen poblacional",
    x = NULL,
    y = "Casos Reportados",
    fill = "Categoría Municipal"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 17, color = "#2c3e50"),
    plot.subtitle = element_text(size = 12, color = "#7f8c8d", margin = margin(b = 15)),
    legend.position = "right",
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.y = element_text(size = 11, face = "bold"),
    plot.margin = margin(20, 40, 20, 20)
  )

Concentración urbana: Los tres municipios de categoría especial (mega-ciudades) acumulan la mayor parte de los casos, reflejando tanto su alta densidad poblacional como mejores sistemas de registro comparados con zonas rurales.

Análisis 2: Municipios Vulnerables

Este análisis se enfoca en municipios con menor incidencia absoluta, típicamente poblaciones pequeñas que frecuentemente enfrentan limitaciones institucionales severas.

municipios_pequenos <- Feminicidios %>%
  filter(TIPO_DELITO == "Violencia Intrafamiliar") %>%
  group_by(MUNICIPIO_VI) %>%
  summarise(Casos = sum(CANTIDAD_VI, na.rm = TRUE)) %>%
  arrange(Casos) %>%
  slice(1:10)

ggplot(municipios_pequenos, 
       aes(x = reorder(MUNICIPIO_VI, Casos), y = Casos)) +
  geom_col(fill = "#FF6B35", width = 0.7, color = "white", size = 1.1) +
  geom_text(aes(label = Casos), 
            hjust = -0.15, 
            size = 4.2,
            fontface = "bold",
            color = "#2c3e50") +
  coord_flip(clip = "off") +
  scale_y_continuous(expand = expansion(mult = c(0, 0.15))) +
  labs(
    title = "Municipios Vulnerables con Menor Reporte",
    subtitle = "Posible subregistro y limitación institucional",
    x = NULL,
    y = "Casos Reportados"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16, color = "#2c3e50"),
    plot.subtitle = element_text(size = 12, color = "#FF6B35", margin = margin(b = 15)),
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.y = element_text(size = 11, face = "bold"),
    plot.margin = margin(20, 50, 20, 20)
  )

Paradoja del subregistro: Los municipios con menores reportes no necesariamente experimentan menos violencia; frecuentemente enfrentan barreras estructurales para la denuncia.

Análisis 3: Comparación entre Tipos de Delito

consulta_tipos <- Feminicidios %>%
  group_by(TIPO_DELITO) %>%
  summarise(Casos = n()) %>%
  arrange(Casos) %>%
  mutate(
    Color = case_when(
      TIPO_DELITO == "Feminicidio" ~ COLORES$feminicidio,
      TIPO_DELITO == "Violencia Intrafamiliar" ~ COLORES$violencia_intrafamiliar,
      TIPO_DELITO == "Delito Sexual" ~ COLORES$delito_sexual
    ),
    Porcentaje = round((Casos / sum(Casos)) * 100, 1),
    Etiqueta = paste0(format(Casos, big.mark = ","), "\n(", Porcentaje, "%)")
  )

ggplot(consulta_tipos, aes(x = reorder(TIPO_DELITO, Casos), y = Casos, fill = TIPO_DELITO)) +
  geom_col(width = 0.65, color = "white", size = 1.3) +
  geom_text(aes(label = Etiqueta), 
            hjust = -0.08, 
            size = 5,
            fontface = "bold",
            color = "#2c3e50") +
  coord_flip(clip = "off") +
  scale_fill_manual(
    values = c(
      "Feminicidio" = COLORES$feminicidio,
      "Violencia Intrafamiliar" = COLORES$violencia_intrafamiliar,
      "Delito Sexual" = COLORES$delito_sexual
    )
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.15)),
    labels = label_number(big.mark = ",")
  ) +
  labs(
    title = "Distribución de Casos por Tipo de Violencia",
    subtitle = "Magnitud relativa de cada fenómeno",
    x = NULL,
    y = "Número de Casos Reportados"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, color = "#2c3e50"),
    plot.subtitle = element_text(size = 13, color = "#7f8c8d", margin = margin(b = 20)),
    legend.position = "none",
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text.y = element_text(size = 13, face = "bold"),
    plot.margin = margin(20, 70, 20, 20)
  )

Predominio de violencia intrafamiliar: Con 165,579 casos (76.5%), constituye el fenómeno más reportado.

Análisis 4: Tendencia Temporal de Feminicidios

orden_meses <- c("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO",
                 "JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE")

consulta_meses_fem <- Feminicidios %>%
  filter(!is.na(MES_HECHO_F), MES_HECHO_F != "") %>%
  group_by(MES_HECHO_F) %>%
  summarise(Casos = n()) %>%
  mutate(
    MES_HECHO_F = factor(MES_HECHO_F, levels = orden_meses),
    Alerta = case_when(
      Casos >= 20 ~ "Crítico",
      Casos >= 15 ~ "Alto",
      Casos >= 10 ~ "Moderado",
      TRUE ~ "Bajo"
    )
  ) %>%
  arrange(MES_HECHO_F)

ggplot(consulta_meses_fem, aes(x = MES_HECHO_F, y = Casos, group = 1)) +
  geom_line(size = 1.5, color = COLORES$feminicidio, alpha = 0.8) +
  geom_point(aes(color = Alerta, size = Alerta)) +
  geom_text(aes(label = Casos), 
            vjust = -1.2, 
            size = 4.5, 
            fontface = "bold",
            color = COLORES$feminicidio) +
  scale_color_manual(
    values = c("Crítico" = "#C41E3A", "Alto" = "#FF6B35", 
               "Moderado" = "#FFA500", "Bajo" = "#95a5a6")
  ) +
  scale_size_manual(
    values = c("Crítico" = 6, "Alto" = 5, "Moderado" = 4, "Bajo" = 3.5)
  ) +
  scale_y_continuous(
    limits = c(0, max(consulta_meses_fem$Casos) * 1.2),
    breaks = pretty_breaks(n = 10)
  ) +
  labs(
    title = "Evolución Mensual de Feminicidios",
    subtitle = "Identificación de meses críticos con mayor incidencia",
    x = NULL,
    y = "Casos Reportados",
    color = "Nivel de Alerta",
    size = "Nivel de Alerta"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 18, color = "#2c3e50"),
    plot.subtitle = element_text(size = 13, color = "#7f8c8d", margin = margin(b = 15)),
    axis.text.x = element_text(angle = 45, hjust = 1, size = 11, face = "bold"),
    legend.position = "right",
    panel.grid.minor = element_blank(),
    plot.margin = margin(20, 20, 20, 20)
  )

Pico máximo: Enero registra el punto más alto del año, asociado a festividades de fin de año que generan convivencia forzada prolongada y tensiones económicas.

Análisis de Correlación Estadística

La correlación de Pearson evalúa si diferentes tipos de violencia de género varían conjuntamente en el tiempo.

library(reshape2)

matriz_correlacion <- matrix(
  c( 1.00,   -0.2069, -0.2069,
    -0.2069,  1.00,    1.00,
    -0.2069,  1.00,    1.00),
  nrow = 3,
  byrow = TRUE
)

colnames(matriz_correlacion) <- c("Feminicidios", "Violencia\nIntrafamiliar", "Delitos\nSexuales")
rownames(matriz_correlacion) <- c("Feminicidios", "Violencia\nIntrafamiliar", "Delitos\nSexuales")

datos_correlacion <- melt(matriz_correlacion)

ggplot(datos_correlacion, aes(Var2, Var1, fill = value)) +
  geom_tile(color = "white", size = 2) +
  geom_text(aes(label = sprintf("%.3f", value)),
            color = "#2c3e50",
            size = 7,
            fontface = "bold") +
  scale_fill_gradient2(
    low = "#8b5cf6",
    mid = "#f3f4f6",
    high = "#10b981",
    midpoint = 0,
    limits = c(-1, 1),
    name = "Coeficiente\nPearson"
  ) +
  labs(
    title = "Matriz de Correlación entre Tipos de Violencia",
    subtitle = "Patrones de covariación entre los registros",
    x = "",
    y = ""
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5, color = "#2c3e50"),
    plot.subtitle = element_text(size = 12, hjust = 0.5, color = "#7f8c8d"),
    axis.text.x = element_text(size = 11, face = "bold"),
    axis.text.y = element_text(size = 11, face = "bold"),
    legend.position = "right",
    panel.grid = element_blank(),
    plot.margin = margin(20, 20, 20, 20)
  )

Correlación negativa moderada (-0.21): Los feminicidios presentan una relación inversa con violencia intrafamiliar y delitos sexuales, sugiriendo que responden a dinámicas temporales distintas.

Correlación perfecta (+1.00): Violencia intrafamiliar y delitos sexuales varían de manera idéntica mes a mes, indicando que comparten factores causales y estacionales.

Conclusiones Generales

Síntesis de Hallazgos Principales

1

Perfil etario de máximo riesgo: Las mujeres entre 20 y 39 años concentran más del 60% de los casos de feminicidio, coincidiendo con etapas de establecimiento de relaciones de pareja.

2

Estacionalidad diferenciada: Los feminicidios concentran 62% de casos en el primer cuatrimestre, mientras que violencia intrafamiliar y delitos sexuales maximizan en julio-septiembre.

3

Días críticos predecibles: El domingo emerge como día de máximo riesgo para violencia intrafamiliar, mientras que el viernes lidera en delitos sexuales.

4

Geografía dual: Grandes centros urbanos concentran volumen absoluto pero tienen infraestructura institucional; municipios pequeños enfrentan barreras estructurales severas.

5

Magnitud comparativa: Violencia intrafamiliar domina en volumen, pero los feminicidios representan la culminación letal de continuums previos no interrumpidos.

6

Correlaciones estadísticas: La correlación perfecta entre violencia intrafamiliar y delitos sexuales evidencia factores causales comunes.

Recomendaciones de Política

1. Protocolos de Alerta Temprana

Implementar sistemas de alerta pre-enero y pre-abril para feminicidios, con intensificación de campañas mediáticas y refuerzo de líneas de emergencia.

2. Intervenciones Focalizadas por Edad

Las mujeres de 20-39 años requieren programas de detección temprana de relaciones violentas en centros de salud y acceso prioritario a rutas de protección.

3. Fortalecimiento de Municipios Vulnerables

Implementar unidades móviles de atención, alianzas con autoridades locales y fortalecimiento de redes comunitarias de protección.

4. Enfoque de Continuum

Fortalecer respuestas institucionales ante primeras violencias mediante mecanismos ágiles de medidas de protección y seguimiento efectivo de casos.

5. Sistemas de Información Integrados

Permitir identificar víctimas con múltiples victimizaciones para priorizar intervención y evitar escalamiento hacia desenlaces letales.

Reflexión Final

Los datos revelan que la violencia de género en Colombia sigue patrones predecibles en tiempo, espacio y perfil de víctimas. Esta predictibilidad es una oportunidad: conocer dónde, cuándo y a quiénes afecta permite diseñar intervenciones anticipatorias que salven vidas.

La prevención efectiva del feminicidio no comienza cuando una mujer está en riesgo inminente de muerte; comienza cuando se detecta la primera agresión. Requiere sistemas de protección que operen en tiempo real, no que reaccionen post-mortem.

Los hallazgos de este informe son un llamado a la acción basado en evidencia. Cada patrón identificado debe traducirse en protocolos concretos, recursos asignados y vidas protegidas.

Recursos Técnicos

Entorno de Análisis

Este informe fue desarrollado en R 4.3.2 utilizando RMarkdown para garantizar reproducibilidad total.

Gestión y manipulación de datos

library(readxl) # Lectura de archivos Excel library(dplyr) # Manipulación de datos library(tidyr) # Limpieza y transformación

Visualización

library(ggplot2) # Gráficos estadísticos library(scales) # Formateo de etiquetas

Presentación

library(kableExtra) # Tablas HTML

Análisis estadístico

library(reshape2) # Transformación de matrices