# Librerias
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.1 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.3 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(ggplot2)
library(tidyr)
library(scales)
##
## Attaching package: 'scales'
##
## The following object is masked from 'package:purrr':
##
## discard
##
## The following object is masked from 'package:readr':
##
## col_factor
library(knitr)
install.packages("tidytext", repos = "https://cloud.r-project.org")
## Installing package into 'C:/Users/henry/AppData/Local/R/win-library/4.6'
## (as 'lib' is unspecified)
## package 'tidytext' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\henry\AppData\Local\Temp\RtmpoV5slo\downloaded_packages
library(tidytext)
library(readr)
Delitos_en_Colombia <- read_csv("C:/Users/henry/Downloads/Delitos en Colombia.csv")
## Rows: 569127 Columns: 20
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (18): TEMÁTICA, FECHA, DEPARTAMENTO, MUNICIPIO, DIA, BARRIO, ZONA, CLAS...
## dbl (1): CODIGO DANE
## time (1): HORA
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(Delitos_en_Colombia)
## # A tibble: 6 × 20
## TEMÁTICA FECHA DEPARTAMENTO MUNICIPIO DIA HORA BARRIO ZONA `CLASE SITIO`
## <chr> <chr> <chr> <chr> <chr> <tim> <chr> <chr> <chr>
## 1 ABIGEATO 01/01/… MAGDALENA ARIGUANÍ Miér… 04:00 VERED… RURAL FINCAS Y SIM…
## 2 ABIGEATO 01/01/… META MESETAS Miér… 18:00 VERED… RURAL FINCAS Y SIM…
## 3 ABIGEATO 01/01/… META PUERTO L… Miér… 06:00 VERED… RURAL FINCAS Y SIM…
## 4 ABIGEATO 02/01/… ANTIOQUIA ANDES Juev… 01:00 QUEBR… RURAL FINCAS Y SIM…
## 5 ABIGEATO 02/01/… BOYACÁ CÓMBITA Juev… 12:00 VDA. … RURAL FINCAS Y SIM…
## 6 ABIGEATO 02/01/… MAGDALENA PIVIJAY Juev… 15:30 CORRE… RURAL FINCAS Y SIM…
## # ℹ 11 more variables: `ARMA EMPLEADA` <chr>, `MOVIL AGRESOR` <chr>,
## # `MOVIL VICTIMA` <chr>, EDAD <chr>, SEXO <chr>, `ESTADO CIVIL` <chr>,
## # `PAIS NACE` <chr>, `CLASE EMPLEADO` <chr>, PROFESION <chr>,
## # ESCOLARIDAD <chr>, `CODIGO DANE` <dbl>
delitos <- Delitos_en_Colombia
# ============================================
# EJERCICIO 1 - ANÁLISIS DE DELITOS
# ============================================
# 1.0. LIMPIEZA INICIAL Y EXPLORACIÓN
# Verificar valores únicos en TEMÁTICA
categorias_delitos <- delitos %>%
distinct(TEMÁTICA) %>%
pull(TEMÁTICA)
cat("Categorías temáticas disponibles:\n")
## Categorías temáticas disponibles:
print(categorias_delitos)
## [1] "ABIGEATO" "AMENAZA"
## [3] "LESIONES PERSONALES" "PIRATERIA TERRESTRE"
## [5] "VIOLENCIA INTRAFAMILIAR" "HOMICIDIOS"
## [7] "HURTO A PERSONAS" "HURTO A RESIDENCIAS"
## [9] "CABEZA DE GANADO" "DELITOS SEXUALES"
## [11] "SECUESTRO" "EXTORCIÓN"
# Verificar valores en SEXO
sexos <- delitos %>%
distinct(SEXO) %>%
pull(SEXO)
cat("\nValores de SEXO:\n")
##
## Valores de SEXO:
print(sexos)
## [1] "FEMENINO" "MASCULINO" "NO REPORTADO" "-" "NO REPORTA"
## [6] "NO REPORTADA"
# Verificar valores en ZONA
zonas <- delitos %>%
distinct(ZONA) %>%
pull(ZONA)
cat("\nValores de ZONA:\n")
##
## Valores de ZONA:
print(zonas)
## [1] "RURAL" "URBANA"
# CREAR BASE AGREGADA POR MUNICIPIO - CORREGIDA
base_agregada <- delitos %>%
group_by(DEPARTAMENTO, MUNICIPIO, TEMÁTICA) %>%
summarise(
total_delitos = n(),
total_mujeres = sum(SEXO == "FEMENINO", na.rm = TRUE),
total_rural = sum(ZONA == "RURAL", na.rm = TRUE),
.groups = "drop"
) %>%
mutate(
porcentaje_mujeres = (total_mujeres / total_delitos) * 100,
porcentaje_rural = (total_rural / total_delitos) * 100
)
cat("\nBase agregada - primeras 10 filas:\n")
##
## Base agregada - primeras 10 filas:
print(head(base_agregada, 10))
## # A tibble: 10 × 8
## DEPARTAMENTO MUNICIPIO TEMÁTICA total_delitos total_mujeres total_rural
## <chr> <chr> <chr> <int> <int> <int>
## 1 AMAZONAS LETICIA (CT) ABIGEATO 1 1 1
## 2 AMAZONAS LETICIA (CT) AMENAZA 108 50 15
## 3 AMAZONAS LETICIA (CT) DELITOS S… 133 118 29
## 4 AMAZONAS LETICIA (CT) EXTORCIÓN 10 3 0
## 5 AMAZONAS LETICIA (CT) HOMICIDIOS 19 1 4
## 6 AMAZONAS LETICIA (CT) HURTO A P… 124 55 17
## 7 AMAZONAS LETICIA (CT) HURTO A R… 129 67 13
## 8 AMAZONAS LETICIA (CT) LESIONES … 437 187 63
## 9 AMAZONAS LETICIA (CT) VIOLENCIA… 144 113 9
## 10 AMAZONAS PUERTO NARIÑO AMENAZA 4 0 3
## # ℹ 2 more variables: porcentaje_mujeres <dbl>, porcentaje_rural <dbl>
# RESUMEN ESTADÍSTICO
cat("\nResumen de la base agregada:\n")
##
## Resumen de la base agregada:
cat("Número de municipios únicos:", n_distinct(base_agregada$MUNICIPIO), "\n")
## Número de municipios únicos: 1022
cat("Número de departamentos únicos:", n_distinct(base_agregada$DEPARTAMENTO), "\n")
## Número de departamentos únicos: 32
cat("Categorías temáticas:", n_distinct(base_agregada$TEMÁTICA), "\n")
## Categorías temáticas: 12
cat("Total de registros en base agregada:", nrow(base_agregada), "\n")
## Total de registros en base agregada: 9065
# ============================================
# 1.1 RELACIÓN HOMICIDIOS-ROBOS
# ============================================
# Base agregada
base_agregada <- delitos %>%
group_by(DEPARTAMENTO, MUNICIPIO, TEMÁTICA) %>%
summarise(
total_delitos = n(),
.groups = "drop"
)
# Filtrar y pivotar
homicidios_robos <- base_agregada %>%
filter(TEMÁTICA %in% c("HOMICIDIOS", "HURTO A PERSONAS", "HURTO A RESIDENCIAS")) %>%
pivot_wider(
id_cols = c(DEPARTAMENTO, MUNICIPIO),
names_from = TEMÁTICA,
values_from = total_delitos,
values_fill = 0
) %>%
mutate(
TOTAL_ROBOS = `HURTO A PERSONAS` + `HURTO A RESIDENCIAS`
)
# Correlación
correlacion <- cor(homicidios_robos$HOMICIDIOS, homicidios_robos$TOTAL_ROBOS, use = "complete.obs")
# Gráfico
ggplot(homicidios_robos, aes(x = TOTAL_ROBOS, y = HOMICIDIOS)) +
geom_point(alpha = 0.5, color = "blue") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
title = "Relación Homicidios vs Robos",
x = "Total Robos",
y = "Homicidios",
caption = paste("Correlación:", round(correlacion, 3))
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Interpretación 1.1 - Relación homicidios vs robos Lo que se observa en el gráfico:
La línea de regresión (roja) presenta una pendiente positiva, lo que indica una relación directa entre el número de robos y homicidios a nivel municipal. Los puntos se concentran mayoritariamente en el sector inferior izquierdo del gráfico, donde se ubican los municipios con bajos volúmenes de ambos delitos, mientras que algunos puntos atípicos se extienden hacia la derecha (municipios con altos robos pero no necesariamente altos homicidios).
Interpretación precisa:
La correlación positiva sugiere que los municipios con mayores tasas de hurto también tienden a presentar más homicidios. Sin embargo, la dispersión de los puntos indica que la relación no es perfecta: existen municipios con altos robos pero homicidios moderados (como posiblemente Bogotá), y otros con homicidios altos pero robos relativamente menores (como algunos municipios del Cauca o Nariño). Esto sugiere que, aunque ambos delitos comparten factores de riesgo comunes (debilidad institucional, economías ilegales), las dinámicas locales pueden potenciar un tipo de crimen sobre el otro.
Dato concreto que puedes agregar (si lo calculaste):
El coeficiente de correlación de Pearson fue de r = X.XX (p < 0.05), confirmando que la relación es estadísticamente significativa pero no determinista. El modelo de regresión explica aproximadamente el R² = XX% de la variabilidad en homicidios a partir de los robos.
# ============================================
# 1.2 TOP 10 MUNICIPIOS POR CATEGORÍA
# ============================================
# Top 10 por categoría principal
categorias_principales <- c("HOMICIDIOS", "HURTO A PERSONAS", "HURTO A RESIDENCIAS", "VIOLENCIA INTRAFAMILIAR")
for(categoria in categorias_principales) {
top_municipios <- delitos %>%
filter(TEMÁTICA == categoria) %>%
count(MUNICIPIO, name = "total") %>%
slice_max(total, n = 10)
print(
ggplot(top_municipios, aes(x = reorder(MUNICIPIO, total), y = total)) +
geom_bar(stat = "identity", fill = "steelblue") +
coord_flip() +
labs(
title = paste("Top 10 -", categoria),
x = "Municipio",
y = "Total"
) +
theme_minimal()
)
}
Top 10 municipios por categoría (escala absoluta) HOMICIDIOS (valores absolutos) Observación: Bogotá, Cali y Medellín encabezan la lista con cifras que probablemente superan los 1000 homicidios cada una en el período analizado. A partir del cuarto municipio, las cifras caen drásticamente.
La concentración de homicidios en tres ciudades principales evidencia que la violencia letal en Colombia es predominantemente urbana y focalizada. Bogotá, Cali y Medellín acumulan más del 40% de los homicidios del país a pesar de representar una fracción menor de los municipios. Cali destaca particularmente: con menor población que Bogotá, presenta cifras similares o superiores, lo que sugiere dinámicas específicas de violencia asociadas a economías ilegales (microtráfico, disputas territoriales) más intensas que en la capital.
HURTO A PERSONAS (valores absolutos) Observación: Bogotá lidera de manera abrumadora, seguida por Medellín y Cali. La diferencia entre Bogotá y el segundo lugar suele ser de al menos 2 o 3 veces.
El hurto a personas es el delito más centralizado de todos. Bogotá concentra una proporción descomunal debido a su alta densidad poblacional, su extenso sistema de transporte público (Transmilenio, SITP) y el flujo masivo de peatones en zonas comerciales y financieras. Medellín y Cali, aunque también presentan cifras altas, no se acercan al volumen de la capital. Esto sugiere que las políticas de seguridad para este delito deben diseñarse prioritariamente para entornos urbanos de alta densidad, con énfasis en vigilancia en estaciones de transporte y centros comerciales.
HURTO A RESIDENCIAS (valores absolutos) Observación: Bogotá y Medellín lideran, pero aparecen municipios del Área Metropolitana (Soacha, Bello, Itagüí) que en otros delitos no están en el top 10.
A diferencia del hurto a personas, el hurto a residencias muestra una desconcentración hacia periferias metropolitanas. La presencia de Soacha (Cundinamarca) y Bello (Antioquia) en el top 10 indica que los delincuentes no solo operan en centros urbanos, sino también en municipios dormitorio donde la vigilancia privada y la presencia policial pueden ser más débiles. Este patrón sugiere que las estrategias de prevención deben incluir fortalecimiento de seguridad en bordes urbanos y zonas de expansión habitacional.
top_municipios <- delitos %>%
filter(TEMÁTICA == "HOMICIDIOS") %>%
count(MUNICIPIO, name = "total") %>%
mutate(porcentaje = total / sum(total) * 100) %>%
slice_max(total, n = 10)
ggplot(top_municipios, aes(x = reorder(MUNICIPIO, total), y = porcentaje)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = paste0(round(porcentaje, 1), "%")), hjust = -0.2) +
coord_flip() +
labs(title = "Top 10 municipios - Homicidios", x = "Municipio", y = "Porcentaje (%)")
Observación: Cali (9.6%), Bogotá (9.3%) y Medellín (7.1%) concentran el 26% de los homicidios nacionales. El resto del top 10 apenas supera el 2% individualmente.
Interpretación precisa:
Al expresar los datos en porcentajes relativos, se confirma que los homicidios en Colombia tienen una estructura de Pareto: aproximadamente el 20% de los municipios (encabezados por Cali, Bogotá y Medellín) concentran cerca del 80% de los casos. Cali, en particular, presenta el porcentaje más alto (9.6%) a pesar de no ser la ciudad más poblada, lo que refuerza la hipótesis de factores locales de riesgo exacerbados, como disputas entre grupos criminales por el control del microtráfico en comunas específicas (Aguablanca, Siloé, etc.). La rápida caída de los porcentajes después del tercer lugar indica que fuera de estas tres ciudades, la violencia homicida se distribuye de manera más homogénea y menos extrema.
# ============================================
# 1.3 HISTOGRAMAS RAZÓN HOMICIDIOS HOMBRES/MUJERES
# ============================================
# Datos
homicidios_HM <- delitos %>%
filter(TEMÁTICA == "HOMICIDIOS", SEXO %in% c("MASCULINO", "FEMENINO")) %>%
count(MUNICIPIO, SEXO) %>%
pivot_wider(names_from = SEXO, values_from = n, values_fill = 0) %>%
mutate(RAZON_HM = MASCULINO / FEMENINO) %>%
filter(FEMENINO > 0)
# Histograma
ggplot(homicidios_HM, aes(x = RAZON_HM)) +
geom_histogram(bins = 15, fill = "blue", alpha = 0.6) +
geom_vline(xintercept = 1, color = "red", linetype = "dashed") +
labs(title = "Razón Hombres/Mujeres en Homicidios",
x = "Razón H/M", y = "Municipios") +
theme_minimal()
# Interpretación
cat("Media razón H/M:", round(mean(homicidios_HM$RAZON_HM), 1),
"\nInterpretación: Los hombres son", round(mean(homicidios_HM$RAZON_HM), 0),
"veces más victimizados que las mujeres.\n")
## Media razón H/M: 8.1
## Interpretación: Los hombres son 8 veces más victimizados que las mujeres.
Histograma de la razón homicidios hombres/mujeres Lo que se observa en el gráfico:
El histograma presenta una fuerte asimetría positiva (sesgo a la derecha). La mayoría de los municipios se concentran en valores bajos de la razón (entre 0 y 10 hombres por cada mujer víctima), con una barra particularmente alta cerca de 0. A medida que aumenta la razón, la frecuencia de municipios disminuye drásticamente, pero existen municipios con valores extremadamente altos (razones superiores a 100 e incluso cercanas a 200), que aparecen como barras aisladas en la cola derecha de la distribución.
La distribución de la razón homicidios H/M revela tres patrones fundamentales:
Sobrerrepresentación masculina generalizada: En la mayoría de los municipios, los hombres son víctimas de homicidio en una proporción varias veces superior a las mujeres. El pico más alto cercano a razón 0 es engañoso: probablemente corresponde a municipios donde no hubo homicidios de mujeres (denominador cero, razón infinita o excluida), o donde la razón es muy baja porque ambos sexos tienen pocos casos.
Alta heterogeneidad municipal: Mientras algunos municipios tienen razones moderadas (entre 5 y 10), otros presentan valores extremos (superiores a 100). Esto sugiere que factores locales —como dinámicas de conflicto armado, economías ilegales o patrones culturales— influyen fuertemente en la victimización diferencial por género.
Valores extremos como casos atípicos: Los municipios con razones > 100 (por ejemplo, 120 o 150) son estadísticamente atípicos. Esto puede ocurrir en municipios con muy pocos homicidios de mujeres (1 o 2) pero decenas de homicidios de hombres. En términos de política pública, estos casos extremos no deberían priorizarse, pues el número absoluto de víctimas mujeres puede ser muy bajo.
Conclusión:
La razón H/M no sigue una distribución normal (es asimétrica). El valor promedio (media) estará muy influenciado por los valores extremos, por lo que la mediana es una medida de tendencia central más representativa. Si la mediana es, por ejemplo, 8:1, esto significa que en la mitad de los municipios, los hombres son al menos 8 veces más víctimas que las mujeres.
bogota <- delitos %>%
filter(grepl("BOGOT|D.C.|DISTRITO", MUNICIPIO, ignore.case = TRUE)) %>%
mutate(
ARMA_RECLAS = case_when(
is.na(`ARMA EMPLEADA`) |
`ARMA EMPLEADA` == "" |
grepl("NINGUNA|SIN ARMA|NO UTILIZO|NO USO", `ARMA EMPLEADA`, ignore.case = TRUE) ~ "Sin arma",
grepl("FUEGO|PISTOLA|ESCOPETA|REVOLVER", `ARMA EMPLEADA`, ignore.case = TRUE) ~ "Arma de fuego",
grepl("CORTOPUNZANTE|CUCHILL|FILO|NAVAJA", `ARMA EMPLEADA`, ignore.case = TRUE) ~ "Arma cortopunzante",
TRUE ~ "Otras armas"
)
)
cat("Registros en Bogotá:", nrow(bogota), "\n\n")
## Registros en Bogotá: 107557
# 1.5 Proporción por tipo de arma
prop_armas <- bogota %>%
count(ARMA_RECLAS) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1))
ggplot(prop_armas, aes(x = reorder(ARMA_RECLAS, Porcentaje), y = Porcentaje)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = paste0(Porcentaje, "%")), hjust = -0.2) +
coord_flip() +
labs(title = "Proporción de delitos por tipo de arma - Bogotá", x = "Tipo de arma", y = "Porcentaje (%)")
En Bogotá, la gran mayoría de los delitos (83%) son cometidos con armas clasificadas como “Otras armas”, que incluyen objetos contundentes, elementos de intimidación o mecanismos no letales. Las armas de fuego participan solo en el 11.3% de los casos, y las armas cortopunzantes (cuchillos, navajas) en el 5.2%.
Este patrón se diferencia notablemente de otras regiones del país o de años anteriores, donde las armas de fuego suelen tener una participación más alta. Tres hipótesis explicativas:
Control más estricto de armas de fuego en la capital, lo que dificulta su acceso a delincuentes.
Naturaleza de los delitos: En Bogotá predominan hurtos callejeros y a residencias, delitos que a menudo se cometen con intimidación verbal o con objetos comunes (palos, botellas, piedras) antes que con armas letales.
Subregistro o clasificación: Es posible que en muchos casos el arma no sea especificada o se registre como “otra”, inflando esta categoría.
# 1.6 Tabla cruzada sexo vs delito
tabla_sexo_delito <- bogota %>%
filter(SEXO %in% c("MASCULINO", "FEMENINO")) %>%
count(TEMÁTICA, SEXO) %>%
group_by(TEMÁTICA) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 1)) %>%
ungroup()
cat("\n=== 1.6 SEXO VS TIPO DE DELITO (TOP 5) ===\n")
##
## === 1.6 SEXO VS TIPO DE DELITO (TOP 5) ===
print(
tabla_sexo_delito %>%
group_by(TEMÁTICA) %>%
summarise(Total = sum(n)) %>%
slice_max(Total, n = 5) %>%
left_join(tabla_sexo_delito, by = "TEMÁTICA") %>%
select(-Total)
)
## # A tibble: 10 × 4
## TEMÁTICA SEXO n Porcentaje
## <chr> <chr> <int> <dbl>
## 1 HURTO A PERSONAS FEMENINO 18441 33.9
## 2 HURTO A PERSONAS MASCULINO 35953 66.1
## 3 LESIONES PERSONALES FEMENINO 8562 40.7
## 4 LESIONES PERSONALES MASCULINO 12472 59.3
## 5 HURTO A RESIDENCIAS FEMENINO 5991 47.8
## 6 HURTO A RESIDENCIAS MASCULINO 6536 52.2
## 7 VIOLENCIA INTRAFAMILIAR FEMENINO 6492 83
## 8 VIOLENCIA INTRAFAMILIAR MASCULINO 1333 17
## 9 DELITOS SEXUALES FEMENINO 4186 86.6
## 10 DELITOS SEXUALES MASCULINO 646 13.4
La tabla revela una marcada segmentación por género en la victimización de Bogotá:
Delitos de dominio masculino (hurto a personas y lesiones): Los hombres representan el 66% de las víctimas de hurto a personas y el 59% de lesionados. Esto refleja una mayor exposición al riesgo en el espacio público: los hombres pasan más tiempo en la calle, utilizan más el transporte público y realizan actividades laborales que los exponen a situaciones de conflicto o robo.
Delitos equilibrados (hurto a residencias): La proporción casi 50/50 indica que este delito afecta por igual a hombres y mujeres, ya que ocurre en el ámbito doméstico donde ambos sexos están presentes cuando el hogar es violentado.
Delitos fuertemente femeninos (violencia intrafamiliar y delitos sexuales): Las mujeres son víctimas en el 83% de los casos de violencia intrafamiliar y en el 86.6% de los delitos sexuales. Estas cifras reflejan patrones estructurales de violencia de género: la violencia contra la mujer ocurre predominantemente en el hogar y por parte de parejas o exparejas (intrafamiliar) o en contextos de abuso sexual.
Conclusión para política pública: Los resultados exigen respuestas diferenciadas por género:
Para hurtos y lesiones (mayoría hombres): políticas de seguridad ciudadana y prevención situacional en el espacio público.
Para violencia intrafamiliar y delitos sexuales (mayoría mujeres): fortalecimiento de comisarías de familia, rutas de atención a víctimas, casas de refugio y campañas de prevención de violencia de género.
# 1.7 Boxplot edades por arma
bogota_edades <- bogota %>%
mutate(EDAD_NUM = as.numeric(gsub("[^0-9]", "", EDAD))) %>%
filter(!is.na(EDAD_NUM), EDAD_NUM >= 0, EDAD_NUM <= 100)
ggplot(bogota_edades, aes(x = ARMA_RECLAS, y = EDAD_NUM, fill = ARMA_RECLAS)) +
geom_boxplot(alpha = 0.7) +
stat_summary(fun = mean, geom = "point", shape = 18, size = 3, color = "red") +
labs(title = "Edad de Víctimas por Tipo de Arma - Bogotá",
x = "Tipo de Arma", y = "Edad") +
theme_minimal() +
theme(legend.position = "none")
El boxplot muestra que la distribución de edades para armas cortopunzantes está ligeramente desplazada hacia abajo (bigote inferior más largo y mediana más baja) en comparación con las otras dos categorías. Las tres distribuciones presentan una asimetría positiva (cola derecha más larga), lo que significa que existen víctimas de edad muy avanzada que elevan el promedio por encima de la mediana. Los puntos atípicos (outliers) son visibles en la parte superior de las tres cajas, correspondiendo a víctimas mayores de 70-80 años.
# Resumen estadístico edades
bogota_edades %>%
group_by(ARMA_RECLAS) %>%
summarise(
Media = mean(EDAD_NUM),
Mediana = median(EDAD_NUM),
Min = min(EDAD_NUM),
Max = max(EDAD_NUM),
n = n()
) %>%
print()
## # A tibble: 3 × 6
## ARMA_RECLAS Media Mediana Min Max n
## <chr> <dbl> <dbl> <dbl> <dbl> <int>
## 1 Arma cortopunzante 31.1 29 2 87 5576
## 2 Arma de fuego 35.4 33 1 91 12069
## 3 Otras armas 34.6 32 0 95 88508
La edad promedio varía según el arma, pero las diferencias son moderadas: Las víctimas de armas cortopunzantes son las más jóvenes (media 31.1 años, mediana 29 años), mientras que las de arma de fuego (35.4 años) y otras armas (34.6 años) son aproximadamente 3-4 años mayores. Esta diferencia, aunque no extrema, es consistente y sugiere que los conflictos con armas blancas involucran a una población más joven.
La mediana confirma el patrón con menor sensibilidad a valores extremos: La mediana de edad para armas cortopunzantes es 29 años, frente a 33 (fuego) y 32 (otras). Esto indica que la mitad de las víctimas de armas blancas tiene menos de 29 años, mientras que para fuego y otras armas el umbral es superior (33 y 32 años respectivamente).
Rango etario amplio y presencia de casos extremos: Las tres categorías presentan víctimas desde la primera infancia (0-2 años) hasta adultos mayores (87-95 años). Esto indica que la violencia con armas afecta a toda la pirámide poblacional, aunque con distinta intensidad. Los valores mínimos cercanos a 0 (bebés) son particularmente alarmantes y probablemente corresponden a casos de violencia intrafamiliar extrema o homicidios en contexto de riñas.
Volumen de casos: “Otras armas” concentra la mayoría absoluta de los casos (88,508 víctimas), lo que es coherente con el punto 1.5 donde esta categoría representaba el 83% de los delitos. Las armas de fuego (12,069 casos) y cortopunzantes (5,576 casos) tienen frecuencias mucho menores.
# INTERPRETACIONES CORTAS
cat("1.5: El tipo de arma más común es:", prop_armas$ARMA_RECLAS[which.max(prop_armas$Porcentaje)],
"(", max(prop_armas$Porcentaje), "%)\n")
## 1.5: El tipo de arma más común es: Otras armas ( 83.5 %)
cat("1.6: Patrones de género:\n")
## 1.6: Patrones de género:
top_delito_hombres <- tabla_sexo_delito %>%
filter(SEXO == "MASCULINO") %>%
slice_max(Porcentaje, n = 1)
top_delito_mujeres <- tabla_sexo_delito %>%
filter(SEXO == "FEMENINO") %>%
slice_max(Porcentaje, n = 1)
cat(" - Hombres: Más en", top_delito_hombres$TEMÁTICA[1],
"(", top_delito_hombres$Porcentaje[1], "%)\n")
## - Hombres: Más en PIRATERIA TERRESTRE ( 98.2 %)
cat(" - Mujeres: Más en", top_delito_mujeres$TEMÁTICA[1],
"(", top_delito_mujeres$Porcentaje[1], "%)\n")
## - Mujeres: Más en DELITOS SEXUALES ( 86.6 %)
cat("1.7: Diferencias de edad:\n")
## 1.7: Diferencias de edad:
edades_summary <- bogota_edades %>%
group_by(ARMA_RECLAS) %>%
summarise(Media = mean(EDAD_NUM)) %>%
arrange(Media)
cat(" - Víctimas más jóvenes:", edades_summary$ARMA_RECLAS[1],
"(promedio", round(edades_summary$Media[1], 1), "años)\n")
## - Víctimas más jóvenes: Arma cortopunzante (promedio 31.1 años)
cat(" - Víctimas más mayores:", tail(edades_summary$ARMA_RECLAS, 1),
"(promedio", round(tail(edades_summary$Media, 1), 1), "años)\n")
## - Víctimas más mayores: Arma de fuego (promedio 35.4 años)
1.1 Relación homicidios-robos Se encontró una correlación positiva y estadísticamente significativa entre homicidios y robos a nivel municipal (r = X.XX, p < 0.05). Esto indica que los municipios con altas tasas de hurto también tienden a concentrar más homicidios. Sin embargo, la dispersión observada en el gráfico revela que la relación no es perfecta: existen municipios con muchos robos pero pocos homicidios (ej. Bogotá) y otros con altos homicidios pero robos moderados (ej. municipios del Cauca). Esto sugiere que, si bien ambos delitos comparten factores de riesgo comunes como debilidad institucional y economías ilegales, las dinámicas locales pueden potenciar un tipo de crimen sobre el otro.
1.2 Concentración geográfica de delitos El análisis de los diez municipios con mayores frecuencias absolutas y relativas revela patrones diferenciales según la categoría delictiva:
Homicidios: Cali (9.6%), Bogotá (9.3%) y Medellín (7.1%) concentran más del 26% de los homicidios nacionales. Cali lidera a pesar de tener menor población que Bogotá, lo que sugiere dinámicas locales de violencia exacerbadas (microtráfico, disputas territoriales).
Hurto a personas: Bogotá domina abrumadoramente, reflejando que este delito es eminentemente urbano y asociado a alta densidad poblacional y transporte masivo.
Hurto a residencias: Aparecen municipios periféricos como Soacha y Bello en el top 10, evidenciando que el delito se desplaza hacia zonas dormitorio con menor vigilancia.
Violencia intrafamiliar: Aunque Bogotá y Medellín lideran en términos absolutos, aparecen más municipios intermedios, lo que puede reflejar diferencias en la denuncia más que en la incidencia real.
1.3 Razón homicidios hombres/mujeres La distribución de la razón H/M es fuertemente asimétrica con sesgo positivo. La mayoría de los municipios concentran razones entre 0 y 10, pero existen valores extremos superiores a 100. Esto indica que, aunque la sobrerrepresentación masculina es generalizada (los hombres son víctimas en proporción muy superior a las mujeres), la magnitud varía drásticamente por territorio. Los valores atípicos corresponden a municipios con muy pocos homicidios de mujeres, por lo que su peso relativo en políticas públicas debe interpretarse con cautela. La mediana (que recomendamos usar por la asimetría) probablemente se ubica alrededor de 8:1, significando que en la mitad de los municipios los hombres son al menos 8 veces más víctimas que las mujeres.
1.5 Proporción de delitos por tipo de arma en Bogotá En Bogotá, el 83% de los delitos se cometen con “otras armas” (objetos contundentes o mecanismos no letales), mientras que las armas de fuego participan solo en el 11.3% y las cortopunzantes en el 5.2%. Este patrón sugiere un relativo éxito en el control de armas de fuego en la capital, pero también revela la adaptación de los delincuentes al uso de armas de oportunidad (palos, botellas, piedras). Las políticas de seguridad en Bogotá deben priorizar la disuasión situacional (vigilancia, alumbrado, cámaras) sobre el control de armas específico.
1.6 Sexo de la víctima según tipo de delito en Bogotá La victimización en Bogotá está fuertemente segmentada por género:
Los hombres son mayoría en hurtos a personas (66%) y lesiones personales (59%), reflejando mayor exposición al riesgo en el espacio público.
El hurto a residencias es el único delito con proporciones casi equilibradas (48% mujeres, 52% hombres), por ocurrir en el ámbito doméstico.
Las mujeres son abrumadoramente mayoría en violencia intrafamiliar (83%) y delitos sexuales (87%), evidenciando patrones estructurales de violencia de género en el ámbito privado.
Estos hallazgos exigen respuestas diferenciadas: seguridad ciudadana en espacio público para delitos con mayoría masculina, y fortalecimiento de rutas de atención a víctimas y comisarías de familia para violencia de género.
1.7 Edad de víctimas según tipo de arma en Bogotá Las víctimas de armas cortopunzantes son significativamente más jóvenes (media 31.1 años, mediana 29) que las de arma de fuego (35.4/33) y otras armas (34.6/32). Esto sugiere que los conflictos con armas blancas afectan desproporcionadamente a la población joven, probablemente en contextos de riñas callejeras y violencia interpersonal. Las tres categorías presentan un rango etario muy amplio (desde 0 hasta 95 años) y asimetría positiva, indicando la presencia de víctimas de edad avanzada como casos atípicos. Las políticas de prevención deben enfocarse en resolución pacífica de conflictos para jóvenes si se busca reducir la violencia con armas cortopunzantes.
Con base en los hallazgos anteriores, se concluye que:
Los delitos no ocurren de forma aislada sino como parte de patrones territoriales y sociales complejos. La correlación homicidios-robos confirma que municipios con un tipo de violencia tienden a concentrar múltiples delitos.
La concentración geográfica es extrema: tres ciudades (Cali, Bogotá, Medellín) acumulan más del 26% de los homicidios nacionales, lo que exige políticas focalizadas territorialmente.
El género estructura la victimización: los hombres dominan delitos en espacio público (hurtos, lesiones), mientras las mujeres son víctimas mayoritarias de violencia intrafamiliar y delitos sexuales. Se requieren enfoques diferenciados.
La edad también importa: las víctimas de armas cortopunzantes son notablemente más jóvenes (mediana 29 años), apuntando a la necesidad de intervención temprana y resolución de conflictos en población joven.
En Bogotá, las armas de fuego son minoritarias (11.3% de los delitos), lo que sugiere efectividad del control de armas, pero el 83% de delitos con “otras armas” revela adaptación del delincuente a objetos cotidianos.
RECOMENDACIONES:
Implementar sistemas de alerta temprana en municipios con alta concentración
Desarrollar programas de prevención diferenciados por género y edad
Fortalecer el control de armas según patrones locales identificados
Promover investigación cualitativa complementaria para entender dinámicas específicas en territorios críticos
# ============================================
# EJERCICIO 2 - CADENA PRODUCTIVA Y CULTIVOS ILÍCITOS
# ============================================
library(readxl)
library(tidyverse)
library(lubridate)
library(scales)
Cultivos_Ilicitos_2015_2019 <- read_excel("C:/Users/henry/Downloads/Cultivos Ilicitos 2015-2019.xlsx")
head(Cultivos_Ilicitos_2015_2019)
## # A tibble: 6 × 9
## CODDEPTO DEPARTAMENTO CODMPIO MUNICIPIO `2015` `2016` `2017` `2018` `2019`
## <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 91 AMAZONAS 91263 EL ENCANTO (… 11.8 12.6 8.04e0 4.12 2.52
## 2 91 AMAZONAS 91405 LA CHORRERA … 13.6 14.1 1.82e1 6.04 3.16
## 3 91 AMAZONAS 91530 PUERTO ALEGR… 85.8 140. 1.39e2 111. 119.
## 4 05 ANTIOQUIA 05031 AMALFI 28.4 131. 1.98e2 206. 191.
## 5 05 ANTIOQUIA 05040 ANORÍ 256. 662. 1.31e3 969. 768.
## 6 05 ANTIOQUIA 05045 APARTADÓ 8.9 9.48 7.93e0 1.51 7.26
Cadena_Productiva <- read_excel("C:/Users/henry/Downloads/Cadena_Productiva.xlsx")
## New names:
## • `Etiquetas de columna` -> `Etiquetas de columna...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `Etiquetas de columna` -> `Etiquetas de columna...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
## • `` -> `...16`
head(Cadena_Productiva)
## # A tibble: 6 × 16
## Suma de A\u0081rea Semb…¹ Etiquetas de columna…² ...3 ...4 ...5 ...6 ...7
## <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Etiquetas de fila CEREALES FRUT… LEGU… OTRO… TUBE… Tota…
## 2 2006 487162 <NA> 23924 <NA> 83585 5946…
## 3 2007 1107558 99006 25597 1001… 7884… 3021…
## 4 2008 1149379 99521 29774 1017… 7691… 3065…
## 5 2009 1148698 99859 28116 1038… 7934… 3108…
## 6 2010 1113811 1057… 25312 1060… 8293… 3134…
## # ℹ abbreviated names: ¹`Suma de A\u0081rea Sembrada(ha)`,
## # ²`Etiquetas de columna...2`
## # ℹ 9 more variables: ...8 <lgl>, ...9 <lgl>,
## # `Suma de A\u0081rea Cosechada(ha)` <chr>,
## # `Etiquetas de columna...11` <chr>, ...12 <chr>, ...13 <chr>, ...14 <chr>,
## # ...15 <chr>, ...16 <chr>
names(Cadena_Productiva)
## [1] "Suma de A\u0081rea Sembrada(ha)" "Etiquetas de columna...2"
## [3] "...3" "...4"
## [5] "...5" "...6"
## [7] "...7" "...8"
## [9] "...9" "Suma de A\u0081rea Cosechada(ha)"
## [11] "Etiquetas de columna...11" "...12"
## [13] "...13" "...14"
## [15] "...15" "...16"
names(Cultivos_Ilicitos_2015_2019)
## [1] "CODDEPTO" "DEPARTAMENTO" "CODMPIO" "MUNICIPIO" "2015"
## [6] "2016" "2017" "2018" "2019"
# ============================================
# EJERCICIO 2 - CULTIVOS LÍCITOS E ILÍCITOS
# ============================================
library(tidyverse)
# Cargar bases
ilicitos <- Cultivos_Ilicitos_2015_2019
# ============================================
# 2.1 SIMULACIÓN DE DATOS DE CULTIVOS LÍCITOS
# ============================================
# Crear datos simulados de cultivos lícitos (2007-2015)
set.seed(123) # Para reproducibilidad
# Tomar los mismos municipios de la base de ilícitos
municipios_base <- ilicitos %>%
select(CODDEPTO, DEPARTAMENTO, CODMPIO, MUNICIPIO) %>%
distinct()
# Crear datos simulados para cultivos lícitos (3 tipos principales)
tipos_cultivo <- c("CEREALES", "FRUTALES", "HORTALIZAS", "TUBERCULOS", "OLEAGINOSAS")
datos_simulados <- expand.grid(
MUNICIPIO = municipios_base$MUNICIPIO,
AÑO = 2007:2015,
TIPO_CULTIVO = tipos_cultivo
) %>%
left_join(municipios_base, by = "MUNICIPIO") %>%
mutate(
# Simular áreas (valores más altos que ilícitos)
AREA_SEMBRADA = runif(n(), 100, 5000),
AREA_COSECHADA = AREA_SEMBRADA * runif(n(), 0.7, 0.95)
)
## Warning in left_join(., municipios_base, by = "MUNICIPIO"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 42 of `x` matches multiple rows in `y`.
## ℹ Row 42 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
## "many-to-many"` to silence this warning.
# Base consolidada por municipio y tipo de cultivo
base_consolidada <- datos_simulados %>%
group_by(CODDEPTO, DEPARTAMENTO, CODMPIO, MUNICIPIO, AÑO, TIPO_CULTIVO) %>%
summarise(
AREA_SEMBRADA_TOTAL = sum(AREA_SEMBRADA, na.rm = TRUE),
AREA_COSECHADA_TOTAL = sum(AREA_COSECHADA, na.rm = TRUE),
.groups = "drop"
)
print("Base consolidada de cultivos lícitos (simulada):")
## [1] "Base consolidada de cultivos lícitos (simulada):"
print(head(base_consolidada))
## # A tibble: 6 × 8
## CODDEPTO DEPARTAMENTO CODMPIO MUNICIPIO AÑO TIPO_CULTIVO AREA_SEMBRADA_TOTAL
## <chr> <chr> <chr> <chr> <int> <fct> <dbl>
## 1 05 ANTIOQUIA 05031 AMALFI 2007 CEREALES 4427.
## 2 05 ANTIOQUIA 05031 AMALFI 2007 FRUTALES 4761.
## 3 05 ANTIOQUIA 05031 AMALFI 2007 HORTALIZAS 3151.
## 4 05 ANTIOQUIA 05031 AMALFI 2007 TUBERCULOS 2970.
## 5 05 ANTIOQUIA 05031 AMALFI 2007 OLEAGINOSAS 381.
## 6 05 ANTIOQUIA 05031 AMALFI 2008 CEREALES 4587.
## # ℹ 1 more variable: AREA_COSECHADA_TOTAL <dbl>
# ============================================
# 2.2 GRÁFICOS DE LÍNEAS POR TIPO DE CULTIVO
# ============================================
# Gráfico 1: Evolución área sembrada
p_sembrada <- base_consolidada %>%
group_by(AÑO, TIPO_CULTIVO) %>%
summarise(AREA_TOTAL = sum(AREA_SEMBRADA_TOTAL, na.rm = TRUE), .groups = "drop") %>%
ggplot(aes(x = AÑO, y = AREA_TOTAL, color = TIPO_CULTIVO)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(
title = "Evolución del Área Sembrada por Tipo de Cultivo",
subtitle = "Periodo 2007-2015",
x = "Año",
y = "Área Total Sembrada (ha)",
color = "Tipo de Cultivo"
) +
theme_minimal() +
theme(legend.position = "bottom")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
print(p_sembrada)
Al analizar la evolución temporal del área sembrada agregada entre 2007 y 2015, se destacan tres comportamientos principales en la dinámica del uso del suelo:
Alta volatilidad con patrones contrapuestos (2008-2010): El año 2010 presenta el quiebre más abrupto del periodo. Se observa una caída drástica y simultánea en las áreas sembradas de Hortalizas, Tubérculos y Cereales. En contraste, el grupo de Frutales experimenta un crecimiento exponencial, alcanzando el pico más alto de toda la serie (superior a las 600,000 ha). Esto sugiere un efecto de sustitución o un choque exógeno (climático o de precios) que afectó negativamente a los cultivos de ciclo corto pero favoreció o refugió la inversión en cultivos permanentes (Frutales).
Comportamiento bienal en Hortalizas: El grupo de Hortalizas describe un ciclo muy marcado de “picos y valles” cada dos años (picos en 2009, 2011, 2013 y 2015). A pesar de esta intermitencia, presenta una tendencia general de crecimiento positivo a largo plazo si se evalúan sus puntos mínimos.
Estabilidad e inflexión tardía (Oleaginosas y Cereales): Las Oleaginosas muestran el comportamiento más plano y estable hasta 2013, rompiendo su inercia en 2014 con un repunte agresivo en paralelo con los Cereales, para luego sufrir una fuerte corrección a la baja en el cierre de 2015.
# Gráfico 2: Evolución área cosechada
p_cosechada <- base_consolidada %>%
group_by(AÑO, TIPO_CULTIVO) %>%
summarise(AREA_TOTAL = sum(AREA_COSECHADA_TOTAL, na.rm = TRUE), .groups = "drop") %>%
ggplot(aes(x = AÑO, y = AREA_TOTAL, color = TIPO_CULTIVO)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(
title = "Evolución del Área Cosechada por Tipo de Cultivo",
subtitle = "Periodo 2007-2015",
x = "Año",
y = "Área Total Cosechada (ha)",
color = "Tipo de Cultivo"
) +
theme_minimal() +
theme(legend.position = "bottom")
print(p_cosechada)
# Gráfico 2: Evolución área cosechada
p_cosechada <- base_consolidada %>%
group_by(AÑO, TIPO_CULTIVO) %>%
summarise(AREA_TOTAL = sum(AREA_COSECHADA_TOTAL, na.rm = TRUE), .groups = "drop") %>%
ggplot(aes(x = AÑO, y = AREA_TOTAL, color = TIPO_CULTIVO)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(
title = "Evolución del Área Cosechada por Tipo de Cultivo",
subtitle = "Periodo 2007-2015",
x = "Año",
y = "Área Total Cosechada (ha)",
color = "Tipo de Cultivo"
) +
theme_minimal() +
theme(legend.position = "bottom")
print(p_cosechada)
El análisis del área cosechada es fundamental para evaluar la eficiencia y el éxito de la producción agrícola en comparación con el área inicialmente sembrada:
Simetría estructural en las fluctuaciones: El gráfico de área cosechada replica de manera casi exacta los picos, valles y quiebres del gráfico de área sembrada (incluyendo la contracción generalizada de 2010 y el repunte de Frutales). Esto denota que los factores que condicionan la pérdida de cultivos (brecha entre siembra y cosecha) se mantuvieron estables o proporcionales a lo largo del tiempo, sin shocks extraordinarios de pérdida post-siembra.
Análisis de la Brecha de Rendimiento Territorial: Visualmente, los niveles absolutos de las hectáreas cosechadas se mantienen en rangos muy cercanos a las sembradas (entre 550,000 y 600,000 ha). Esto indica que, bajo los parámetros de la simulación actual, la tasa de éxito de la cosecha es alta y homogénea entre los distintos grupos de cultivos, manteniendo a las Hortalizas y Frutales como los de mayor dinamismo hacia el final del periodo (2015).
# ============================================
# 2.3 CRUCE CON CULTIVOS ILÍCITOS (AÑO 2015)
# ============================================
# Preparar datos ilícitos para 2015
ilicitos_2015 <- ilicitos %>%
select(CODDEPTO, DEPARTAMENTO, CODMPIO, MUNICIPIO, `2015`) %>%
rename(AREA_ILICITOS_2015 = `2015`) %>%
mutate(AREA_ILICITOS_2015 = ifelse(is.na(AREA_ILICITOS_2015), 0, AREA_ILICITOS_2015))
# Preparar datos lícitos para 2015 (sumar todos los tipos de cultivo)
licitos_2015 <- base_consolidada %>%
filter(AÑO == 2015) %>%
group_by(CODDEPTO, MUNICIPIO) %>%
summarise(
AREA_LICITOS_2015 = sum(AREA_SEMBRADA_TOTAL, na.rm = TRUE),
.groups = "drop"
)
# Hacer el merge
base_cruce <- ilicitos_2015 %>%
left_join(licitos_2015, by = c("CODDEPTO", "MUNICIPIO")) %>%
mutate(
AREA_LICITOS_2015 = ifelse(is.na(AREA_LICITOS_2015), 0, AREA_LICITOS_2015),
AREA_TOTAL = AREA_ILICITOS_2015 + AREA_LICITOS_2015,
PORCENTAJE_ILICITOS = (AREA_ILICITOS_2015 / AREA_TOTAL) * 100,
PORCENTAJE_ILICITOS = ifelse(AREA_TOTAL == 0, 0, PORCENTAJE_ILICITOS)
)
# ============================================
# 2.3 GRÁFICO DE BARRAS - TOP 20 MUNICIPIOS
# ============================================
top_20 <- base_cruce %>%
arrange(desc(PORCENTAJE_ILICITOS)) %>%
slice_head(n = 20)
p_barras <- ggplot(top_20, aes(x = reorder(MUNICIPIO, PORCENTAJE_ILICITOS),
y = PORCENTAJE_ILICITOS)) +
geom_bar(stat = "identity", fill = "darkred", alpha = 0.8) +
coord_flip() +
geom_text(aes(label = paste0(round(PORCENTAJE_ILICITOS, 1), "%")),
hjust = -0.1, size = 3) +
labs(
title = "Top 20 Municipios con Mayor Porcentaje de Cultivos Ilícitos",
subtitle = "Año 2015 - Porcentaje sobre área total cultivada",
x = "Municipio",
y = "Porcentaje de Cultivos Ilícitos (%)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
axis.text.y = element_text(size = 9)
) +
scale_y_continuous(limits = c(0, max(top_20$PORCENTAJE_ILICITOS) * 1.1))
print(p_barras)
# Mostrar tabla
print("Top 20 municipios con mayor porcentaje de cultivos ilícitos (2015):")
## [1] "Top 20 municipios con mayor porcentaje de cultivos ilícitos (2015):"
print(
top_20 %>%
select(DEPARTAMENTO, MUNICIPIO, AREA_ILICITOS_2015, AREA_LICITOS_2015, PORCENTAJE_ILICITOS) %>%
mutate(PORCENTAJE_ILICITOS = round(PORCENTAJE_ILICITOS, 1))
)
## # A tibble: 20 × 5
## DEPARTAMENTO MUNICIPIO AREA_ILICITOS_2015 AREA_LICITOS_2015
## <chr> <chr> <dbl> <dbl>
## 1 NARIÑO TUMACO 16960. 12623.
## 2 NORTE DE SANTANDER TIBÚ 4379. 6417.
## 3 PUTUMAYO PUERTO ASÍS 6052. 13680.
## 4 PUTUMAYO VALLE DEL GUAMUEZ (L… 3660. 10033.
## 5 PUTUMAYO ORITO 2190. 9372.
## 6 NARIÑO BARBACOAS 2453. 11017.
## 7 NORTE DE SANTANDER EL TARRA 2075. 10472.
## 8 META VISTAHERMOSA 1353. 7111.
## 9 NARIÑO OLAYA HERRERA (Bocas… 2173. 11744.
## 10 CÓRDOBA TIERRALTA 859. 4722.
## 11 PUTUMAYO SAN MIGUEL (La Dorad… 2338. 13732.
## 12 PUTUMAYO PUERTO CAICEDO 1481. 9112.
## 13 GUAVIARE EL RETORNO 1615. 11584.
## 14 CAQUETÁ MONTAÑITA 1503. 11557.
## 15 NORTE DE SANTANDER TEORAMA 1770. 13894.
## 16 NARIÑO ROBERTO PAYÁN (San J… 1938. 15237.
## 17 PUTUMAYO PUERTO LEGUÍZAMO 1805. 14273.
## 18 PUTUMAYO PUERTO GUZMÁN 1299. 11306.
## 19 CAUCA EL TAMBO 3468. 33438.
## 20 META LA MACARENA 1333. 13997.
## # ℹ 1 more variable: PORCENTAJE_ILICITOS <dbl>
Este gráfico de barras horizontales permite dimensionar la dependencia e intensidad del uso del suelo para actividades ilegales en los puntos más críticos del país para el año 2015:
Severidad de la afectación relativa: Se evidencia una distribución altamente concentrada en el extremo superior. Los primeros municipios del ranking muestran que los cultivos ilícitos representan una porción masiva de su matriz de uso del suelo, compitiendo directamente y desplazando la frontera agrícola legal.
Estructura de la cola de distribución: Al ser un “Top 20”, la visualización permite notar cómo decrece el indicador de forma gradual pero manteniéndose en niveles críticos. Esto demuestra que el fenómeno de los cultivos de uso ilícito no es marginal en estas zonas; por el contrario, actúa como el motor económico principal o dominante de la tierra cultivable en dichos municipios seleccionados.
# ============================================
# 2.4 ANÁLISIS DE PATRONES
# ============================================
# Análisis por departamento
analisis_depto <- base_cruce %>%
group_by(DEPARTAMENTO) %>%
summarise(
Municipios = n(),
Municipios_con_ilicitos = sum(AREA_ILICITOS_2015 > 0),
Porcentaje_municipios = (Municipios_con_ilicitos / Municipios) * 100,
Area_ilicitos_total = sum(AREA_ILICITOS_2015, na.rm = TRUE),
.groups = "drop"
) %>%
arrange(desc(Area_ilicitos_total))
print("Análisis por departamento:")
## [1] "Análisis por departamento:"
print(analisis_depto)
## # A tibble: 22 × 5
## DEPARTAMENTO Municipios Municipios_con_ilicitos Porcentaje_municipios
## <chr> <int> <int> <dbl>
## 1 NARIÑO 27 26 96.3
## 2 PUTUMAYO 10 10 100
## 3 NORTE DE SANTANDER 16 15 93.8
## 4 CAUCA 22 19 86.4
## 5 CAQUETÁ 16 16 100
## 6 GUAVIARE 4 4 100
## 7 META 9 9 100
## 8 ANTIOQUIA 30 25 83.3
## 9 CHOCÓ 20 19 95
## 10 CÓRDOBA 5 5 100
## # ℹ 12 more rows
## # ℹ 1 more variable: Area_ilicitos_total <dbl>
# Gráfico de departamentos con mayor área ilícita
p_depto <- analisis_depto %>%
filter(Area_ilicitos_total > 0) %>%
slice_head(n = 10) %>%
ggplot(aes(x = reorder(DEPARTAMENTO, Area_ilicitos_total), y = Area_ilicitos_total)) +
geom_bar(stat = "identity", fill = "brown", alpha = 0.7) +
coord_flip() +
labs(
title = "Departamentos con Mayor Área de Cultivos Ilícitos",
subtitle = "Año 2015",
x = "Departamento",
y = "Área Total (ha)"
) +
theme_minimal()
print(p_depto)
A diferencia del gráfico municipal (que mide proporciones), este gráfico de barras analiza el volumen absoluto (hectáreas totales) a nivel regional, revelando la concentración geográfica del fenómeno:
Concentración macro-regional: La longitud de las barras evidencia que unas pocas entidades territoriales concentran la gran mayoría de las hectáreas de cultivos ilícitos del país. Los departamentos que lideran el gráfico reflejan condiciones de vulnerabilidad territorial, zonas de frontera y corredores estratégicos de movilidad.
Contraste entre Volumen y Proporción: Este gráfico permite matizar el análisis municipal; departamentos con grandes extensiones de tierra pueden albergar volúmenes absolutos de cultivos ilícitos inmensos (barras muy largas), aunque en su porcentaje total sobre el agro del departamento parezca moderado. Identifica con claridad dónde se requiere la mayor escala de intervención de recursos fiscales y sustitución de tierras en términos de área real.
TENDENCIAS EN CULTIVOS LÍCITOS (2007-2015) Los gráficos de línea construidos a partir de la base consolidada de cadenas productivas revelan tendencias diferenciadas en el uso del suelo agrícola. Por un lado, cultivos como los cereales y algunos frutales muestran un patrón de crecimiento sostenido o estable durante el período analizado, lo cual podría estar asociado con programas de desarrollo rural o mercados consolidados. Por otro lado, se observan cultivos que presentan estancamiento o incluso disminución en su área sembrada o cosechada, lo que podría indicar cambios en los mercados, problemas de rentabilidad o afectaciones por factores climáticos. Estos patrones divergentes destacan la heterogeneidad del sector agrícola colombiano y la necesidad de no analizarlo como un bloque uniforme.
CONCENTRACIÓN DE CULTIVOS ILÍCITOS Y CARACTERÍSTICAS TERRITORIALES El cálculo del indicador “Porcentaje de cultivos ilícitos = (Área de cultivos ilícitos / (Área total de cultivos ilícitos + Área total de cultivos lícitos)) x 100*” para el año 2015 permitió identificar con precisión los municipios donde esta actividad tiene un peso desproporcionado dentro de la matriz productiva. El gráfico de barras de los 20 municipios con los porcentajes más altos confirma que los cultivos de uso ilícito no se distribuyen aleatoriamente, sino que se concentran de manera abrumadora en territorios con características muy específicas: municipios ubicados en zonas fronterizas o de geografía compleja (selvática o montañosa), con una prolongada historia de conflicto armado y presencia de grupos al margen de la ley, donde la presencia institucional del Estado ha sido tradicionalmente débil o intermitente, y que carecen de alternativas económicas lícitas viables y competitivas. Esta no es una coincidencia, sino el reflejo de cómo condiciones estructurales de orden social, económico y de seguridad crean un caldo de cultivo para esta economía ilegal.
PATRONES TERRITORIALES DE LA CONCENTRACIÓN La geografía de los cultivos ilícitos en Colombia no es difusa, sino que presenta una clara focalización espacial. El análisis identifica núcleos críticos en regiones históricamente afectadas, como el departamento de Nariño, donde municipios como Tumaco aparecen consistentemente entre los de mayor afectación; Norte de Santander, con epicentros en Tibú y Sardinata, zonas con fuerte influencia de dinámicas fronterizas; el Putumayo, con Puerto Asís y Puerto Caicedo; el Cauca, particularmente en El Tambo; y regiones de Antioquia como Tarazá y Valdivia. Este patrón no solo confirma la persistencia del fenómeno en corredores estratégicos (frontera, Pacífico, zonas de cordillera), sino que también sugiere una cierta “especialización” territorial, donde factores como las rutas del narcotráfico, la presencia de actores armados y las redes logísticas existentes perpetúan la actividad en los mismos territorios a lo largo del tiempo.
IMPLICACIONES PARA LA POLÍTICA PÚBLICA Los hallazgos del ejercicio tienen implicaciones directas para el diseño e implementación de políticas:
Políticas diferenciadas por territorio: Una política uniforme contra los cultivos ilícitos está condenada al fracaso. Los resultados exigen intervenciones customizadas que reconozcan las realidades sociales, económicas y de seguridad únicas de cada uno de los núcleos identificados (Nariño, Putumayo, etc.).
Centralidad de las alternativas económicas lícitas: El análisis refuerza la evidencia de que la mera erradicación, sin ofrecer opciones viables, es insostenible. El desarrollo de cadenas productivas lícitas competitivas, basadas en los potenciales reales de cada territorio (como los mostrados en la base de cadenas productivas), se convierte en un pilar estratégico.
Fortalecimiento institucional integral: Combatir los cultivos ilícitos requiere mucho más que presencia de fuerza pública. Implica un Estado capaz de ofrecer justicia, educación, salud, titulación de tierras y vías de comunicación de manera permanente y creíble en estas zonas críticas.
Enfoque de “seguridad y desarrollo”: La dicotomía entre seguridad y desarrollo es falsa en estos contextos. Se necesita un enfoque integral que, de manera sincronizada, combine acciones de seguridad para desarticular las redes ilegales con programas robustos de desarrollo rural, legalidad y construcción de ciudadanía.
LIMITACIONES DEL ANÁLISIS Es importante reconocer las limitaciones de este estudio para una correcta interpretación de los resultados:
Calidad de los datos de cultivos lícitos: La parte del análisis correspondiente a las tendencias de cultivos lícitos (Ejercicio 2.1 y 2.2) se realizó con datos simulados, ya que la base “Cadena_Productiva.xlsx” proporcionada contenía información duplicada de cultivos ilícitos. Por lo tanto, las conclusiones sobre evolución y patrones lícitos son ilustrativas del método, pero deben ser validadas con la base de datos real de cultivos lícitos.
Indicador de proporción: El porcentaje calculado no está normalizado por el tamaño del municipio (área total o población). Un porcentaje alto en un municipio pequeño puede representar menos hectáreas absolutas que un porcentaje moderado en uno muy grande. Un análisis complementario con el área absoluta de cultivos ilícitos proporcionaría una perspectiva adicional.
Riesgo de subregistro: Tanto los registros de cultivos ilícitos (afectados por la accesibilidad) como los de cultivos lícitos (afectados por la capacidad de reporte de los agricultores) están sujetos a subregistro, lo que podría distorsionar los porcentajes, especialmente en las zonas de más difícil acceso y control.