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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Este informe fue desarrollado en R 4.3.2 utilizando RMarkdown para garantizar reproducibilidad total.
library(readxl) # Lectura de archivos Excel library(dplyr) # Manipulación de datos library(tidyr) # Limpieza y transformación
library(ggplot2) # Gráficos estadísticos library(scales) # Formateo de etiquetas
library(kableExtra) # Tablas HTML
library(reshape2) # Transformación de matrices