library(tidyverse)
library(janitor)
library(scales)
library(lubridate)
library(dplyr)
delitos <- read.csv("basesdedatos/Delitos_Sexuales_Antioquia (1).csv") %>% clean_names()
minas <- read.csv("basesdedatos/Minas_Colombia (2).csv") %>% clean_names()Taller Estadística Descriptiva
Ejercicio 1
1.1. Introducción
En este ejercicio se analiza la evolución temporal de dos fenómenos en Colombia: los delitos sexuales (a nivel de Antioquia) y los eventos de minas antipersonal. El objetivo es calcular la tasa de crecimiento anual de cada fenómeno y visualizar su comportamiento en el tiempo mediante gráficos de doble eje, que permitan comparar simultáneamente el número de casos y su dinámica de crecimiento.
1.2. Carga de librerias
Se cargan librerías necesarias para manipulación, limpieza y visualización de datos, así como las bases de datos correspondientes:
1.3. Exploración inicial de los datos
Se realiza una exploración preliminar para comprender la estructura de las bases de datos.
glimpse(delitos)Rows: 47,063
Columns: 8
$ municipio <chr> "Medellín (CT)", "Medellín (CT)", "Puerto Berrío", "Copac…
$ codigo_dane <int> 5001005, 5001005, 5579000, 5212000, 5154000, 5001014, 503…
$ armas_medios <chr> "NO REPORTADO", "NO REPORTADO", "NO REPORTADO", "NO REPOR…
$ fecha_hecho <chr> "02/01/2010", "02/01/2010", "07/03/2010", "01/02/2010", "…
$ genero <chr> "MASCULINO", "MASCULINO", "FEMENINO", "FEMENINO", "FEMENI…
$ grupo_etario <chr> "ADOLESCENTES", "ADOLESCENTES", "ADULTOS", "ADULTOS", "AD…
$ cantidad <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ delito <chr> "ARTÍCULO 209. ACTOS SEXUALES CON MENOR DE 14 AÑOS", "ART…
glimpse(minas)Rows: 39,171
Columns: 14
$ tipo_evento <chr> "Sospecha de campo minado", "Sospecha de camp…
$ departamento <chr> "SANTANDER", "SANTANDER", "ANTIOQUIA", "ARAUC…
$ codigo_dane_departamento <int> 68, 68, 5, 81, 54, 86, 95, 54, 50, 5, 41, 41,…
$ municipio <chr> "SAN VICENTE DE CHUCURÍ", "EL CARMEN", "GRANA…
$ codigo_dane_municipio <dbl> 68.689, 68.235, 5.313, 81.065, 54.810, 86.568…
$ ano <dbl> 2.014, 2.013, 2.015, 2.015, 2.015, 2.015, 2.0…
$ mes <int> 10, 9, 4, 5, 5, 3, 4, 4, 3, 3, 10, 3, 10, 6, …
$ evento <chr> "Incidente", "Incidente", "Incidente", "Incid…
$ tipo_lugar <chr> "Fincas", "Campo", "Campo", "Oleoductos", "Si…
$ tipo_area <chr> "Rural", "Rural", "Rural", "Rural", "Rural", …
$ latitud_cabecera <chr> "6,84073", "6,72416", "6,11738", "7,010011111…
$ longitud_cabecera <chr> "-73,53009", "-73,60923", "-75,10259", "-71,4…
$ sitio <chr> "Sospecha De Campo Minado", "Sospecha De Camp…
$ ubicacion <chr> "POINT (-73.53009 6.84073)", "POINT (-73.6092…
La base de delitos contiene información a nivel de evento individual, incluyendo fecha del hecho y cantidad de casos. Por su parte, la base de minas antipersonal presenta información histórica por evento, donde el año se encuentra en una variable con problemas de formato, lo que requiere un proceso de limpieza.
1.4. Exploración inicial de los datos
Se transforma la variable fecha y se extrae el año para permitir la agregación temporal. Se verifica que la variable año fue correctamente extraída y que los datos cubren el periodo esperado. Se corrigen valores erróneos del año derivados de problemas de codificación, garantizando una estructura temporal consistente para el análisis.
# Delitos
delitos <- delitos %>%
mutate(
fecha_hecho = dmy(fecha_hecho),
anio = year(fecha_hecho)
)
table(delitos$anio)
2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
280 276 335 442 886 2928 3101 3678 4756 5096 4523 5068 3516 3586 4251 4341
#Minas
minas <- minas %>%
mutate(
ano_char = as.character(ano),
ano_char = gsub("\\.", "", ano_char)
)
minas$ano_char <- ifelse(minas$ano_char == 199,1990,
ifelse(minas$ano_char == 2, 2000,
ifelse(minas$ano_char == 201,2010,
ifelse(minas$ano_char == 202, 2020,minas$ano_char))))
table(minas$ano_char)
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
35 52 171 202 257 208 163 146 77 81 233 350 975 1463 2033 1802
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021
2158 2039 1455 2690 2598 2946 3448 2799 2680 2444 1778 658 557 534 512 398
2022 2023
483 746
1.5. Agregación Anual de los datos
Se agrupan los datos por año para obtener el número total de casos en cada periodo. Se obtiene una serie temporal anual por cada fenómeno, lo que permite analizar tendencias y variaciones en el tiempo.
delitos_anual <- delitos %>%
group_by(anio) %>%
summarise(casos = sum(cantidad, na.rm = TRUE)) %>%
arrange(anio)
minas_anual <- minas %>%
group_by(ano_char) %>%
summarise(casos = n()) %>%
arrange(ano_char) %>%
rename(anio = ano_char)1.6. Cálculo de la tasa de crecimiento
Se calcula la tasa de crecimiento anual como la variación relativa entre un año y el anterior. La tasa de crecimiento permite identificar cambios relativos en la magnitud del fenómeno, evidenciando periodos de incremento o disminución.
calcular_crecimiento <- function(df){
df %>%
arrange(anio) %>%
mutate(
crecimiento = (casos - lag(casos)) / lag(casos)
)
}
delitos_anual <- calcular_crecimiento(delitos_anual);delitos_anual# A tibble: 16 × 3
anio casos crecimiento
<dbl> <int> <dbl>
1 2010 280 NA
2 2011 276 -0.0143
3 2012 335 0.214
4 2013 442 0.319
5 2014 886 1.00
6 2015 2928 2.30
7 2016 3101 0.0591
8 2017 3678 0.186
9 2018 4756 0.293
10 2019 5096 0.0715
11 2020 4523 -0.112
12 2021 5068 0.120
13 2022 3516 -0.306
14 2023 3586 0.0199
15 2024 4251 0.185
16 2025 4341 0.0212
minas_anual <- calcular_crecimiento(minas_anual);delitos_anual# A tibble: 16 × 3
anio casos crecimiento
<dbl> <int> <dbl>
1 2010 280 NA
2 2011 276 -0.0143
3 2012 335 0.214
4 2013 442 0.319
5 2014 886 1.00
6 2015 2928 2.30
7 2016 3101 0.0591
8 2017 3678 0.186
9 2018 4756 0.293
10 2019 5096 0.0715
11 2020 4523 -0.112
12 2021 5068 0.120
13 2022 3516 -0.306
14 2023 3586 0.0199
15 2024 4251 0.185
16 2025 4341 0.0212
1.7. Visualización de datos
Se realiza la gráfica de doble eje para cada uno de los fenómenos que contenga casos y tasa de crecimiento.
# =========================================================
# 5.1 DELITOS
# =========================================================
# Factor de escala: convierte crecimiento (proporción) a escala de casos
scale_factor_delitos <- max(delitos_anual$casos, na.rm = TRUE) /
max(abs(delitos_anual$crecimiento), na.rm = TRUE)
g_delitos <- ggplot(delitos_anual, aes(x = anio)) +
# Casos (barras)
geom_col(aes(y = casos), fill = "steelblue", alpha = 0.7) +
# Crecimiento (línea escalada)
geom_line(aes(y = crecimiento * scale_factor_delitos),
color = "red", size = 1) +
scale_y_continuous(
name = "Número de casos",
sec.axis = sec_axis(
~ . / scale_factor_delitos,
name = "Tasa de crecimiento",
labels = percent
)
) +
labs(
title = "Delitos sexuales en Antioquia",
x = "Año"
) +
theme_minimal()
g_delitos# =========================================================
# 5.2 MINAS
# =========================================================
minas_anual$anio <- as.integer(minas_anual$anio)
scale_factor_minas <- max(minas_anual$casos, na.rm = TRUE) /
max(abs(minas_anual$crecimiento), na.rm = TRUE)
g_minas <- ggplot(minas_anual, aes(x = anio)) +
geom_col(aes(y = casos), fill = "darkgreen", alpha = 0.7) +
geom_line(aes(y = crecimiento * scale_factor_minas),
color = "orange", size = 1) +
scale_y_continuous(
name = "Número de eventos",
sec.axis = sec_axis(
~ . / scale_factor_minas,
name = "Tasa de crecimiento",
labels = percent
)
) +
labs(
title = "Eventos de minas antipersonal en Colombia",
x = "Año"
) +
theme_minimal()
g_minas1.8. Interpretación de resultados.
1.8.1 Evolución temporal de los delitos sexuales
Los delitos sexuales en Antioquia presentan una dinámica claramente creciente entre 2010 y 2019, pasando de 280 casos en 2010 a un máximo de 5069 casos en 2019. Este crecimiento no es lineal, sino que muestra un punto de inflexión crítico entre 2014 y 2015, donde los casos aumentan de 886 a 2928, lo que representa una tasa de crecimiento del 230%, la más alta de toda la serie.
A partir de 2019, se observa una fase de estabilización con fluctuaciones, incluyendo una disminución en 2020 (-11.2%) y una caída más pronunciada en 2022 (-30.6%), seguida de una recuperación moderada hasta 2025. En general, el fenómeno muestra una tendencia creciente de largo plazo, pero con variaciones importantes en los últimos años.
1.8.2. Evolución temporal de los eventos de minas antipersonal.
Los eventos de minas antipersonal presentan una dinámica diferente, caracterizada por tres fases claras:
Crecimiento inicial (1990 -2004): Se observa un aumento sostenido desde 35 eventos en 1990 hasta 2033 en 2004, con tasas de crecimiento elevadas en años específicos como 1992 (228%) y 2000 (187%).
Fase de alta intensidad (2005 - 2012): Durante este periodo se mantienen niveles altos, alcanzando el máximo en 2012 con 3448 eventos.
Disminución sostenida (2013 - 2021): A partir de 2013 se evidencia una reducción progresiva del fenómeno, con caídas signifiactivas como la de 2017 (-63%), hasta llegar a 398 eventos en 2021.
Finalmente, entre 2022 y 2023 se observa un repunte del fenómeno, con crecimientos del 21% y 54%, respectivamente, lo que sugiere una posible reactivación o cambios en las condiciones del contexto.
1.8.3. Identificación de picos (años de mayor frecuencia)
En términos de número de casos (moda empírica):
Delitos sexuales: el año con mayor frecuencia es 2019, con 5,096 casos.
Minas antipersonal: el máximo se presenta en 2012, con 3,448 eventos.
Estos picos representan los momentos de mayor intensidad de cada fenómeno y no necesariamente coinciden con los mayores crecimientos.
1.8.4. Relación entre número de casos y tasa de crecimiento.
El análisis conjunto de las gráficas permite evidenciar que los mayores crecimientos no coinciden con los años de mayor número de casos. Por ejemplo:
En delitos sexuales, el mayor crecimiento ocurre en 2015 (230%), pero el máximo número de casos se alcanza en 2019.
En minas antipersonal, crecimientos muy altos se presentan en años iniciales como 1992 (228%) y 2000 (187%), cuando el número absoluto de eventos aún era relativamente bajo.
Esto refleja una propiedad importante de las tasas de crecimiento: son altamente sensibles a valores iniciales pequeños, por lo que deben interpretarse en conjunto con el volumen de casos.
1.8.5. Comparación general de los fenómenos.
Al comparar ambos fenómenos, se observan patrones contrastantes:
Los delitos sexuales muestran una tendencia creciente reciente, con aumentos importantes en la última década.
Los eventos de minas antipersonal presentan una tendencia decreciente de largo plazo, con un pico en la década de 2010 y una posterior reducción sostenida.
En conjunto, esto sugiere que se trata de fenómenos con dinámicas estructurales distintas, posiblemente influenciadas por factores sociales, institucionales y de seguridad diferentes.
Ejercicio 2
2.1. Introducción
En este ejercicio se analiza la estructura por género y la distribución de la edad de las personas involucradas en homicidios en Medellín. A partir de la base de datos disponible, se construyen distribuciones por género y grupos de edad, y se calculan medidas descriptivas que permiten caracterizar la variable edad en términos de tendencia central, dispersión, forma y posición. El análisis se complementa con representaciones gráficas que facilitan la interpretación de los resultados.
2.2. Carga de librerias
En esta etapa se carga la base de datos y se realiza una exploración inicial de su estructura. Se identifica que la información está a nivel individual, incluyendo variables como sexo y edad, las cuales serán utilizadas para el análisis descriptivo.
library(tidyverse)
library(janitor)
library(lubridate)
homicidios <- read.csv("basesdedatos/Homicidios_Medellín.csv") %>%
clean_names()2.3. Exploración inicial de los datos
Se realiza una exploración preliminar para comprender la estructura de las bases de datos. La base contiene información detallada de eventos de homicidios, incluyendo variables demográficas como sexo y edad, las cuales serán utilizadas para el análisis descriptivo.
glimpse(homicidios)Rows: 19,647
Columns: 36
$ fecha_hecho <chr> "2019-04-23T07:30:00.000-05:00", "2019-05-11T19:51…
$ cantidad <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
$ latitud <dbl> 6.257226, 6.222806, 6.262382, 6.269589, 6.236277, …
$ longitud <dbl> -75.56985, -75.61037, -75.62039, -75.56177, -75.53…
$ sexo <chr> "Mujer", "Hombre", "Hombre", "Hombre", "Hombre", "…
$ edad <int> 50, 24, 34, 20, 34, 25, 37, 22, 21, 29, 29, 20, 25…
$ estado_civil <chr> "Sin dato", "Unión marital de hecho", "Casado", "S…
$ grupo_actor <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ actividad_delictiva <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ parentesco <chr> "Desconocido", "Sin dato", "Sin dato", "Sin dato",…
$ ocupacion <chr> "Comerciante", "Vendedor ambulante", "Conductor", …
$ discapacidad <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ grupo_especial <chr> "LGBTI", "Sin dato", "Sin dato", "Sin dato", "Sin …
$ medio_transporte <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ nivel_academico <chr> "Alfabeta", "Bachillerato", "Bachillerato", "Sin d…
$ testigo <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ conducta <chr> "Homicidio", "Homicidio", "Homicidio", "Homicidio"…
$ modalidad <chr> "Ahorcamiento o estrangulamiento", "Arma de fuego"…
$ caracterizacion <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ conducta_especial <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ arma_medio <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ articulo_penal <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ categoria_penal <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ nombre_barrio <chr> "Estación Villa", "Altavista", "El Socorro", "San …
$ codigo_barrio <chr> "1005", "1613", "1319", "0408", "0819", "8007", "0…
$ codigo_comuna <dbl> 10, 16, 13, 4, 8, 80, 2, 4, 10, 10, 8, 60, 60, 60,…
$ lugar <chr> "Vía pública", "Vía pública", "Vía pública", "Vía …
$ sede_receptora <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ bien <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ categoria_bien <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ grupo_bien <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ modelo <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ color <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ permiso <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ unidad_medida <chr> "Sin dato", "Sin dato", "Sin dato", "Sin dato", "S…
$ fecha_ingestion <chr> "2025-03-06T04:08:41.000-05:00", "2025-03-06T04:08…
2.4. Limpieza de datos
En este bloque se realiza la depuración de la variable edad, eliminando valores faltantes o inconsistentes, como edades negativas o fuera de un rango razonable. Adicionalmente, se estandariza la variable sexo para asegurar consistencia en los valores y permitir una correcta agrupación.
# ---- Limpieza de edad ----
homicidios <- homicidios %>%
mutate(
edad = as.numeric(edad)
) %>%
filter(
!is.na(edad),
edad > 0, # elimina -1
edad <= 100 # rango razonable
)
# ---- Limpieza de sexo ----
homicidios <- homicidios %>%
mutate(
sexo = str_to_title(sexo)
)2.5. Distribución por sexo
El cálculo de la distribución por género muestra que la gran mayoría de los casos corresponde a hombres, quienes representan el 92.3% del total, mientras que las mujeres corresponden al 7.7%. Esta diferencia evidencia que el fenómeno de homicidios en Medellín está fuertemente concentrado en la población masculina. El registro clasificado como “None” es marginal y no afecta la interpretación general.
tabla_genero <- homicidios %>%
count(sexo) %>%
mutate(
porcentaje = round(100 * n / sum(n), 2)
)
tabla_genero sexo n porcentaje
1 Hombre 18097 92.30
2 Mujer 1509 7.70
3 None 1 0.01
2.6. Distribución por grupos de edad
Al agrupar la edad en rangos, se observa que el fenómeno se concentra principalmente en población joven adulta. El grupo entre 26 y 35 años presenta la mayor proporción de casos, con 33.62%, seguido del grupo de 19 a 25 años con 28.07%. En conjunto, estos dos grupos concentran más del 60% de los casos, lo que indica que los homicidios afectan principalmente a personas en etapas tempranas de la vida adulta. A medida que aumenta la edad, la frecuencia disminuye progresivamente, siendo el grupo de 60 años o más el de menor participación.
homicidios <- homicidios %>%
mutate(
grupo_edad = cut(
edad,
breaks = c(0, 18, 25, 35, 45, 60, 100),
labels = c("0-18", "19-25", "26-35", "36-45", "46-60", "60+"),
right = FALSE
)
)
tabla_edad <- homicidios %>%
count(grupo_edad) %>%
mutate(
porcentaje = round(100 * n / sum(n), 2)
)
tabla_edad grupo_edad n porcentaje
1 0-18 1512 7.71
2 19-25 5503 28.07
3 26-35 6592 33.62
4 36-45 3421 17.45
5 46-60 1959 9.99
6 60+ 620 3.16
2.7. Medidas descriptivas de la edad
Las medidas descriptivas muestran que la edad promedio es de aproximadamente 30.7 años, con una mediana de 28 años y una moda de 25 años, lo que confirma la concentración del fenómeno en adultos jóvenes. La desviación estándar indica una dispersión moderada de la edad, siendo mayor en mujeres que en hombres, lo que sugiere mayor variabilidad en este grupo. Los valores mínimo y máximo evidencian un rango amplio, lo que indica la presencia de casos en edades muy diversas.
En términos de forma, la asimetría positiva indica que la distribución está sesgada hacia la derecha, es decir, existe una mayor concentración de observaciones en edades bajas y una cola hacia edades más altas. La curtosis sugiere la presencia de valores extremos que influyen en la forma de la distribución.
library(dplyr)
library(e1071)
library(knitr)
library(kableExtra)
moda <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}
tabla_descriptiva <- homicidios %>%
group_by(sexo) %>%
summarise(
n = n(),
media = mean(edad),
mediana = median(edad),
moda = moda(edad),
minimo = min(edad),
q1 = quantile(edad, 0.25),
q3 = quantile(edad, 0.75),
maximo = max(edad),
rango = maximo - minimo,
sd = sd(edad),
asimetria = skewness(edad),
curtosis = kurtosis(edad),
.groups = "drop"
)
total <- homicidios %>%
summarise(
sexo = "Total",
n = n(),
media = mean(edad),
mediana = median(edad),
moda = moda(edad),
minimo = min(edad),
q1 = quantile(edad, 0.25),
q3 = quantile(edad, 0.75),
maximo = max(edad),
rango = maximo - minimo,
sd = sd(edad),
asimetria = skewness(edad),
curtosis = kurtosis(edad)
)
tabla_final <- bind_rows(tabla_descriptiva, total)
tabla_final <- tabla_final %>%
mutate(across(where(is.numeric), ~round(., 1))) %>%
arrange(factor(sexo, levels = c("Hombre", "Mujer", "Total")))
tabla_final %>%
rename(
Sexo = sexo,
N = n,
Media = media,
Mediana = mediana,
Moda = moda,
Mínimo = minimo,
Q1 = q1,
Q3 = q3,
Máximo = maximo,
Rango = rango,
`Desv. Est.` = sd,
Asimetría = asimetria,
Curtosis = curtosis
) %>%
kable(
caption = "Tabla X. Medidas descriptivas de la edad de personas involucradas en homicidios en Medellín, por género",
align = "c"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE,
position = "center"
) %>%
row_spec(nrow(tabla_final), bold = TRUE)| Sexo | N | Media | Mediana | Moda | Mínimo | Q1 | Q3 | Máximo | Rango | Desv. Est. | Asimetría | Curtosis |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Hombre | 18097 | 30.6 | 28 | 25 | 1 | 22 | 37 | 94 | 93 | 11.8 | 1.2 | 1.7 |
| Mujer | 1509 | 32.4 | 29 | 25 | 1 | 21 | 40 | 99 | 98 | 15.9 | 1.1 | 1.3 |
| Total | 19607 | 30.7 | 28 | 25 | 1 | 22 | 37 | 99 | 98 | 12.2 | 1.2 | 1.9 |
| None | 1 | 53.0 | 53 | 53 | 53 | 53 | 53 | 53 | 0 | NA | NaN | NaN |
2.8. Análisis gráfico de la edad
El histograma confirma que la mayor concentración de casos se encuentra entre los 20 y 35 años, con una disminución progresiva a medida que aumenta la edad. La forma de la distribución es claramente asimétrica hacia la derecha.
El gráfico de cajas y bigotes permite identificar valores atípicos, especialmente en edades altas. Estos valores, aunque poco frecuentes, amplían la dispersión de la distribución y son coherentes con la asimetría positiva observada.
El gráfico de barras confirma que el fenómeno se concentra principalmente en los grupos de 19 a 35 años, con un máximo en el grupo de 26 a 35 años, lo que refuerza los resultados obtenidos en la tabla de distribución.
# Histograma de edad
hist(
homicidios$edad,
breaks = seq(0, 100, 5),
col = "grey30",
border = "white",
main = "Distribución de la edad en homicidios",
xlab = "Edad",
ylab = "Frecuencia",
las = 1
)# Grafico de cajas de edad vs sexo
boxplot(
edad ~ sexo,
data = homicidios,
col = c("lightblue", "pink"),
main = "Edad por género",
xlab = "Género",
ylab = "Edad",
boxwex = 0.5,
las = 1
)# Grafico de barras edades agrupadas
etiquetas <- paste0(tabla_edad$n, " (", tabla_edad$porcentaje, "%)")
bp <- barplot(
tabla_edad$n,
names.arg = tabla_edad$grupo_edad,
col = "grey30",
main = "Distribución por grupos de edad",
xlab = "Grupo de edad",
ylab = "Frecuencia",
ylim = c(0, max(tabla_edad$n) * 1.15),
las = 1
)
text(
x = bp,
y = tabla_edad$n,
labels = etiquetas,
pos = 3,
cex = 0.8
)2.9. Conclusiones
El análisis descriptivo de este ejercicio permite concluir que los homicidios en Medellín se concentran principalmente en hombres jóvenes, con una distribución de la edad claramente sesgada hacia la derecha. La mayor proporción de casos se presenta en edades entre los 19 y 35 años, lo que indica una fuerte asociación descriptiva del fenómeno con la población joven adulta. Aunque existen valores atípicos en edades altas, estos no representan la mayoría de los casos, sino que corresponden a situaciones aisladas dentre de una distribución predominantemente concentrada en edades bajas.
Ejercicio 3
3.1. Introducción
En este ejercicio se evalúa la relación entre la pobreza multidimensional y el riesgo de victimización por el conflicto armado en Colombia. Para ello, se integran dos bases de datos a nivel municipal y se realiza un análisis descriptivo que incluye gráficos de dispersión, cálculo de correlaciones y exploración de patrones territoriales. El objetivo es determinar si existe asociación entre ambas variables, así como la dirección de dicha relación y sus posibles limitaciones interpretativas.
3.2. Carga de librerias
En esta etapa se cargan las bases de datos y se explora su estructura. A partir de esta revisión se identifica que ambas bases contienen información a nivel municipal y que el código DANE permite realizar integración entre ellas.
# =========================================================
# 0. CONFIGURACIÓN INICIAL
# =========================================================
library(tidyverse)
library(janitor)
library(lubridate)
require(readxl)
# =========================================================
# 1. CARGA DE DATOS
# =========================================================
pobreza <- read_excel("basesdedatos/MPM_Colombia (1).xlsx") %>%
clean_names()
victimizacion <- read_excel("basesdedatos/IRV_Colombia (1).xlsx") %>%
clean_names()
# =========================================================
# 2. EXPLORACIÓN INICIAL
# =========================================================
glimpse(pobreza)Rows: 1,122
Columns: 4
$ mpio_cnmbr <chr> "FLORENCIA", "ALBANIA", "BELÉN DE LOS ANDAQUÍES", "EL DONCE…
$ mpio_ccnct <chr> "18001", "18029", "18094", "18247", "18256", "18410", "1846…
$ dpto_cnmbr <chr> "CAQUETÁ", "CAQUETÁ", "CAQUETÁ", "CAQUETÁ", "CAQUETÁ", "CAQ…
$ mpm <dbl> 29.6, 38.8, 50.0, 44.3, 45.5, 56.2, 64.6, 42.4, 48.7, 50.0,…
glimpse(victimizacion)Rows: 1,123
Columns: 8
$ codigo_departamento <chr> "05", "05", "05", "05", "05", "05", "05", "05", …
$ departamento <chr> "Antioquia", "Antioquia", "Antioquia", "Antioqui…
$ direccion_territorial <chr> "DT Antioquia", "DT Antioquia", "DT Antioquia", …
$ pdet <chr> "No PDET", "No PDET", "No PDET", "No PDET", "No …
$ codigo_municipio <chr> "05001", "05002", "05004", "05021", "05030", "05…
$ municipio <chr> "Medellín", "Abejorral", "Abriaquí", "Alejandría…
$ estimado <chr> "0.42671102999999999", "0.23529381999999999", "0…
$ cluster <chr> "Medio", "Bajo", "Medio", "Bajo", "Medio Bajo", …
3.3. Limpieza e integración de las bases
En este bloque se realiza la limpieza y estandarización de las variables, asegurando consistencia en los códigos municipales y en el formato de las variables númericas. Posteriormente, se integran las bases de datos, obteniendo 1122 municipios, lo que indica un cruce prácticamente completo entre ambas fuentes
pobreza_limpia <- pobreza %>%
mutate(
codigo_municipio = as.character(mpio_ccnct),
municipio_pobreza = str_to_title(mpio_cnmbr),
departamento_pobreza = str_to_title(dpto_cnmbr),
mpm = as.numeric(mpm)
) %>%
select(
codigo_municipio,
municipio_pobreza,
departamento_pobreza,
mpm
)
victimizacion_limpia <- victimizacion %>%
mutate(
codigo_municipio = as.character(codigo_municipio),
municipio_victimizacion = str_to_title(municipio),
departamento_victimizacion = str_to_title(departamento),
irv = as.numeric(estimado),
cluster = str_to_title(cluster),
pdet = str_to_title(pdet)
) %>%
select(
codigo_municipio,
municipio_victimizacion,
departamento_victimizacion,
pdet,
cluster,
irv
)
# =========================================================
# 4. INTEGRACIÓN DE BASES
# =========================================================
base_mpm_irv <- pobreza_limpia %>%
inner_join(victimizacion_limpia, by = "codigo_municipio")
# Validación del cruce
nrow(pobreza_limpia)[1] 1122
nrow(victimizacion_limpia)[1] 1123
nrow(base_mpm_irv)[1] 1122
glimpse(base_mpm_irv)Rows: 1,122
Columns: 9
$ codigo_municipio <chr> "18001", "18029", "18094", "18247", "18256"…
$ municipio_pobreza <chr> "Florencia", "Albania", "Belén De Los Andaq…
$ departamento_pobreza <chr> "Caquetá", "Caquetá", "Caquetá", "Caquetá",…
$ mpm <dbl> 29.6, 38.8, 50.0, 44.3, 45.5, 56.2, 64.6, 4…
$ municipio_victimizacion <chr> "Florencia", "Albania", "Belén De Los Andaq…
$ departamento_victimizacion <chr> "Caquetá", "Caquetá", "Caquetá", "Caquetá",…
$ pdet <chr> "Pdet Cuenca Del Caguán Y Piedemonte Caquet…
$ cluster <chr> "Medio", "Bajo", "Medio Bajo", "Medio", "Al…
$ irv <dbl> 0.4211969, 0.2097005, 0.2434362, 0.3573984,…
3.4. Analisis descriptivo general
El análisis descriptivo muestra una alta variabilidad territorial tanto en la pobreza multidimensional como en el índice de victimización. Al analizar los clusters de riesgo, se observa que los municipios con mayor nivel de victimización presentan también mayores niveles promedio de pobreza, evidenciando un patrón creciente entre ambas variables.
summary(base_mpm_irv$mpm) Min. 1st Qu. Median Mean 3rd Qu. Max.
4.50 30.23 40.80 41.79 52.67 98.50
summary(base_mpm_irv$irv) Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0000 0.2027 0.2656 0.3283 0.4212 1.0000
# Tabla por cluster de riesgo
tabla_cluster <- base_mpm_irv %>%
count(cluster) %>%
mutate(
porcentaje = round(100 * n / sum(n), 2)
) %>%
arrange(desc(n))
tabla_cluster# A tibble: 5 × 3
cluster n porcentaje
<chr> <int> <dbl>
1 Bajo 462 41.2
2 Medio Bajo 264 23.5
3 Medio 180 16.0
4 Medio Alto 141 12.6
5 Alto 75 6.68
# Promedio de pobreza multidimensional por cluster
tabla_mpm_cluster <- base_mpm_irv %>%
group_by(cluster) %>%
summarise(
n = n(),
mpm_media = round(mean(mpm, na.rm = TRUE), 1),
mpm_mediana = round(median(mpm, na.rm = TRUE), 1),
irv_media = round(mean(irv, na.rm = TRUE), 3),
irv_mediana = round(median(irv, na.rm = TRUE), 3),
.groups = "drop"
) %>%
arrange(desc(irv_media))
tabla_mpm_cluster# A tibble: 5 × 6
cluster n mpm_media mpm_mediana irv_media irv_mediana
<chr> <int> <dbl> <dbl> <dbl> <dbl>
1 Alto 75 55.4 55.4 0.738 0.708
2 Medio Alto 141 50.4 48.7 0.544 0.545
3 Medio 180 44.4 43.2 0.402 0.396
4 Medio Bajo 264 40.8 39.5 0.279 0.274
5 Bajo 462 36.5 35.5 0.195 0.193
3.5. Correlación entre pobreza y victimización
El coeficiente de correlación de Pearson (0.34) y el de Spearman (0.35) indican la existencia de una relación positiva moderada entre la pobreza multidimensional y el riesgo de victimización. Ambos resultados son estadísticamente significativos, lo que sugiere que, en general, los territorios con mayores niveles de pobreza tienden a presentar mayores niveles de riesgo.
plot(
base_mpm_irv$mpm,
base_mpm_irv$irv,
pch = 19,
col = "grey40",
xlab = "Pobreza multidimensional (%)",
ylab = "Índice de riesgo de victimización",
main = "Relación entre pobreza multidimensional e índice de victimización"
)
abline(
lm(irv ~ mpm, data = base_mpm_irv),
col = "red",
lwd = 2
)El gráfico de dispersión muestra una tendencia positiva entre ambas variables, aunque con una alta dispersión, lo que indica que la relación no es deterministica y que existen otros factores que influyen en el riesgo de victimización. Es así, que al incorporar los clusters, se observa que los municipios con mayor riesgo se concentran en niveles medios y altos de pobreza, lo que refuerza la asociación positiva identificada previamente.
plot(
base_mpm_irv$mpm,
base_mpm_irv$irv,
pch = 19,
col = as.numeric(as.factor(base_mpm_irv$cluster)),
xlab = "Pobreza multidimensional (%)",
ylab = "Índice de riesgo de victimización",
main = "Pobreza multidimensional e IRV por cluster"
)
legend(
"topleft",
legend = levels(as.factor(base_mpm_irv$cluster)),
col = 1:length(levels(as.factor(base_mpm_irv$cluster))),
pch = 19,
cex = 0.8
)
abline(
lm(irv ~ mpm, data = base_mpm_irv),
col = "black",
lwd = 2
)3.6. Identificación de patrones territoriales
El análisis de municipios extremos muestra que los territorios con mayor pobreza no necesariamente presentan los mayores niveles de victimización, lo que indica que la pobreza no es el único factor determinante. Por otro lado, los municipios con mayor riesgo de victimización se concentran en regiones históricamente afectadas por el conflicto armado, lo que evidencia la influencia de factores territoriales y geopolíticos adicionales.
# Municipios con mayor pobreza multidimensional
top_pobreza <- base_mpm_irv %>%
arrange(desc(mpm)) %>%
select(
departamento_pobreza,
municipio_pobreza,
mpm,
irv,
cluster,
pdet
) %>%
head(10)
top_pobreza# A tibble: 10 × 6
departamento_pobreza municipio_pobreza mpm irv cluster pdet
<chr> <chr> <dbl> <dbl> <chr> <chr>
1 Guainía Pana Pana 98.5 0.150 Bajo No Pdet
2 Vaupés Pacoa 98.4 0.188 Bajo No Pdet
3 Vaupés Papunahua 97.9 0.181 Bajo No Pdet
4 Amazonas La Victoria 96.4 0.299 Medio Bajo No Pdet
5 Guainía Puerto Colombia 96.3 0.507 Medio Alto No Pdet
6 Guainía Morichal 95.7 0.182 Bajo No Pdet
7 Guainía Mapiripana 95.5 0 Bajo No Pdet
8 Vaupés Yavaraté 94.8 0.132 Bajo No Pdet
9 La Guajira Uribia 92.2 0.307 Medio Bajo No Pdet
10 Vichada Cumaribo 91.4 0.620 Medio Alto No Pdet
# Municipios con mayor índice de victimización
top_irv <- base_mpm_irv %>%
arrange(desc(irv)) %>%
select(
departamento_victimizacion,
municipio_victimizacion,
mpm,
irv,
cluster,
pdet
) %>%
head(10)
top_irv# A tibble: 10 × 6
departamento_victimizacion municipio_victimizacion mpm irv cluster pdet
<chr> <chr> <dbl> <dbl> <chr> <chr>
1 Cauca Argelia 50.1 1 Alto Pdet …
2 Norte De Santander Tibú 57.6 0.990 Alto Pdet …
3 Norte De Santander El Tarra 71.2 0.932 Alto Pdet …
4 Norte De Santander Teorama 67.1 0.926 Alto Pdet …
5 Caquetá Puerto Rico 54.3 0.911 Alto Pdet …
6 Nariño San Andrés De Tumaco 53.7 0.908 Alto Pdet …
7 Antioquia Anorí 53.3 0.883 Alto Pdet …
8 Chocó Sipí 69.7 0.852 Alto Pdet …
9 Chocó San José Del Palmar 59.1 0.844 Alto No Pd…
10 Antioquia Valdivia 59.3 0.841 Alto Pdet …
3.7. Conclusiones
Los resultados permiten afirmar que existe una asociación positiva entre la pobreza multidimensional y el riesgo de victimización, lo que respalda parcialmente la afirmación planteada. Sin embargo, la magnitud moderada de la correlación y la dispersión observada indican que esta relación no es absoluta.
La relación identificada es positiva, ya que a mayores niveles de pobreza se observa un mayor riesgo de victimización. No obstante, la presencia de múltiples excepciones evidencia que otros factores estructurales influyen en esta dinámica.
Finalmente, es importante destacar que este análisis es de carácter descriptivo, por lo que no permite establecer relaciones causales. La correlación observada no implica causalidad, sino una asociación que debe interpretarse con cautela dentro del contexto territorial del conflicto armado en Colombia.
Ejercicio 6
6.1. Introducción
En este ejercicio se realiza una caracterización territorial
6.2. Carga y exploración de los datos
En este bloque se cargan las cuatro fuentes de información: el índice de riesgo de victimización, las subregiones de Antioquia, la población municipal y la información de cultivos de coca. La exploración inicial permite identificar las variables clave y los códigos territoriales necesarios para la integración.
library(tidyverse)
library(janitor)
library(lubridate)
library(readxl)
victimizacion <- read_excel("basesdedatos/IRV_Colombia (1).xlsx") %>%
clean_names()
subregiones <- read_excel("basesdedatos/Subregiones_Antioquia (1).xlsx") %>%
clean_names()
poblacion <- read_excel("basesdedatos/Poblacion_Colombia.xlsx") %>%
clean_names()
coca <- read.csv("basesdedatos/Coca_Colombia.csv") %>%
clean_names()
glimpse(victimizacion)Rows: 1,123
Columns: 8
$ codigo_departamento <chr> "05", "05", "05", "05", "05", "05", "05", "05", …
$ departamento <chr> "Antioquia", "Antioquia", "Antioquia", "Antioqui…
$ direccion_territorial <chr> "DT Antioquia", "DT Antioquia", "DT Antioquia", …
$ pdet <chr> "No PDET", "No PDET", "No PDET", "No PDET", "No …
$ codigo_municipio <chr> "05001", "05002", "05004", "05021", "05030", "05…
$ municipio <chr> "Medellín", "Abejorral", "Abriaquí", "Alejandría…
$ estimado <chr> "0.42671102999999999", "0.23529381999999999", "0…
$ cluster <chr> "Medio", "Bajo", "Medio", "Bajo", "Medio Bajo", …
glimpse(subregiones)Rows: 125
Columns: 4
$ cod <chr> "05001", "05002", "05004", "05021", "05030", "05031", "0503…
$ mpio_cnmbr <chr> "MEDELLÍN", "ABEJORRAL", "ABRIAQUÍ", "ALEJANDRÍA", "AMAGÁ",…
$ subregion <chr> "Valle de Aburrá", "Oriente", "Occidente", "Oriente", "Suro…
$ var_zomac <chr> "NO ZOMAC", "ZOMAC", "ZOMAC", "ZOMAC", "NO ZOMAC", "ZOMAC",…
glimpse(poblacion)Rows: 1,123
Columns: 6
$ cod_dept <chr> "05", "05", "05", "05", "05", "05", "05", "05", "05", "05…
$ departamento <chr> "Antioquia", "Antioquia", "Antioquia", "Antioquia", "Anti…
$ cod_mun <chr> "05001", "05002", "05004", "05021", "05030", "05031", "05…
$ municipio <chr> "Medellín", "Abejorral", "Abriaquí", "Alejandría", "Amagá…
$ ano <dbl> 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 202…
$ poblacion <dbl> 2526795, 21126, 2804, 5347, 33092, 29394, 45436, 6214, 12…
glimpse(coca)Rows: 319
Columns: 27
$ coddepto <int> 91, 91, 91, 91, 91, 91, 91, 91, 5, 5, 5, 5, 5, 5, 5, 5, 5…
$ departamento <chr> "AMAZONAS", "AMAZONAS", "AMAZONAS", "AMAZONAS", "AMAZONAS…
$ codmpio <int> 91263, 91405, 91407, 91430, 91460, 91530, 91536, 91669, 5…
$ municipio <chr> "EL ENCANTO (Cor. Departamental)", "LA CHORRERA (Cor. Dep…
$ x2001 <chr> "191.8", "65.0", "- 0", "- 0", "6.0", "212.3", "- 0", "33…
$ x2002 <chr> "264.0", "236.0", "- 0", "- 0", "43.0", "195.0", "1.0", "…
$ x2003 <chr> "164.0", "209.0", "- 0", "- 0", "36.2", "173.0", "6.4", "…
$ x2004 <chr> "270.0", "271.0", "- 0", "- 0", "30.0", "174.0", "- 0", "…
$ x2005 <chr> "382.0", "257.0", "- 0", "- 0", "12.0", "210.0", "- 0", "…
$ x2006 <chr> "233.0", "223.0", "- 0", "- 0", "4.0", "202.0", "- 0", "3…
$ x2007 <chr> "186.0", "132.0", "- 0", "- 0", "9.0", "165.0", "- 0", "4…
$ x2008 <chr> "349.0", "349.0", "- 0", "- 0", "2.0", "95.0", "- 0", "41…
$ x2009 <chr> "109.0", "81.0", "7.0", "2.0", "4.0", "53.0", "- 0", "22.…
$ x2010 <chr> "81.0", "113.0", "12.0", "10.0", "15.0", "73.0", "- 0", "…
$ x2011 <chr> "35.0", "36.0", "- 0", "- 0", "- 0", "44.0", "- 0", "7.0"…
$ x2012 <chr> "16.0", "22.0", "1.0", "- 0", "5.0", "54.0", "- 0", "- 0"…
$ x2013 <chr> "8.0", "25.0", "- 0", "- 0", "- 0", "76.0", "- 0", "1.0",…
$ x2014 <chr> "20.0", "51.0", "- 0", "- 0", "- 0", "102.0", "- 0", "- 0…
$ x2015 <chr> "11.8", "13.6", "- 0", "- 0", "- 0", "85.8", "- 0", "- 0"…
$ x2016 <chr> "12.7", "14.1", "- 0", "- 0", "- 0", "140.0", "- 0", "- 0…
$ x2017 <chr> "8.0", "18.2", "- 0", "- 0", "- 0", "139.4", "- 0", "- 0"…
$ x2018 <chr> "4.1", "6.0", "- 0", "- 0", "- 0", "111.5", "- 0", "- 0",…
$ x2019 <chr> "2.5", "3.2", "- 0", "- 0", "- 0", "119.0", "- 0", "- 0",…
$ x2020 <chr> "0", "0", "0", "0", "0", "61,5", "0", "0", "209,8", "1.08…
$ x2021 <chr> "- 0", "- 0", "- 0", "- 0", "- 0", "72.8", "- 0", "- 0", …
$ x2022 <chr> "- 0", "- 0", "- 0", "- 0", "- 0", "103.4", "- 0", "- 0",…
$ x2023 <chr> "- 0", "- 0", "- 0", "- 0", "- 0", "66.0", "- 0", "- 0", …
6.3. Identificación de municipios PDET en Antioquia
En este bloque se filtran los municipios del departamento de Antioquia y se construye una variable indicadora ('pdet_flag') para identificar aquellos municipios que cuentan con PDET. Como resultado, se obtienen 125 municipios, lo que corresponde a la totalidad de municipios del departamento, en la que se identifican que 24 (19.2%) de los 125 municipios son PDET.
victimizacion_ant <- victimizacion %>%
filter(departamento == "Antioquia") %>%
mutate(
codigo_municipio = as.character(codigo_municipio),
irv = as.numeric(estimado),
pdet_flag = ifelse(pdet == "No PDET", 0, 1)
) %>%
select(codigo_municipio, municipio, pdet, pdet_flag, irv, cluster)
head(victimizacion_ant)# A tibble: 6 × 6
codigo_municipio municipio pdet pdet_flag irv cluster
<chr> <chr> <chr> <dbl> <dbl> <chr>
1 05001 Medellín No PDET 0 0.427 Medio
2 05002 Abejorral No PDET 0 0.235 Bajo
3 05004 Abriaquí No PDET 0 0.348 Medio
4 05021 Alejandría No PDET 0 0.236 Bajo
5 05030 Amagá No PDET 0 0.310 Medio …
6 05031 Amalfi PDET Bajo Cauca-Nordeste … 1 0.390 Medio
require(summarytools)
freq(victimizacion_ant$pdet_flag)Frequencies
victimizacion_ant$pdet_flag
Type: Numeric
Freq % Valid % Valid Cum. % Total % Total Cum.
----------- ------ --------- -------------- --------- --------------
0 101 80.80 80.80 80.80 80.80
1 24 19.20 100.00 19.20 100.00
<NA> 0 0.00 100.00
Total 125 100.00 100.00 100.00 100.00
6.4. Integración con subregiones y población
En este bloque se integran subregiones de Antioquia y la población municipal a la base principal. Esto permite contar con una base consolidada que contiene información territorial, demográfica y de riesgo de victimización para cada municipio.
subregiones_ant <- subregiones %>%
mutate(codigo_municipio = as.character(cod)) %>%
select(codigo_municipio, subregion)
poblacion_ant <- poblacion %>%
filter(departamento == "Antioquia") %>%
mutate(codigo_municipio = as.character(cod_mun)) %>%
select(codigo_municipio, poblacion)
base_antioquia <- victimizacion_ant %>%
left_join(subregiones_ant, by = "codigo_municipio") %>%
left_join(poblacion_ant, by = "codigo_municipio")
glimpse(base_antioquia)Rows: 125
Columns: 8
$ codigo_municipio <chr> "05001", "05002", "05004", "05021", "05030", "05031",…
$ municipio <chr> "Medellín", "Abejorral", "Abriaquí", "Alejandría", "A…
$ pdet <chr> "No PDET", "No PDET", "No PDET", "No PDET", "No PDET"…
$ pdet_flag <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0,…
$ irv <dbl> 0.4267110, 0.2352938, 0.3477542, 0.2362749, 0.3100314…
$ cluster <chr> "Medio", "Bajo", "Medio", "Bajo", "Medio Bajo", "Medi…
$ subregion <chr> "Valle de Aburrá", "Oriente", "Occidente", "Oriente",…
$ poblacion <dbl> 2526795, 21126, 2804, 5347, 33092, 29394, 45436, 6214…
6.5. Incorporación de cultivos de coca (2023)
En este bloque se transforma la variable de hectáreas de coca para el año 2023 a formato numérico y se integra a la base consolidada. Esto permite identificar la presencia de cultivos ilícitos a nivel municipaldentro del departamento.
coca_ant <- coca %>%
mutate(
codigo_municipio = str_pad(codmpio, width = 5, pad = "0"),
coca_2023 = as.numeric(str_replace_all(x2023, ",", "."))
) %>%
filter(substr(codigo_municipio, 1, 2) == "05") %>%
select(codigo_municipio, coca_2023)
base_antioquia <- base_antioquia %>%
left_join(coca_ant, by = "codigo_municipio")6.6. Análisis por subregión
Este resumen permite responder directamente a los indicadores solicitados en el ejercicio para cada subregión del departamento.
resumen_subregion <- base_antioquia %>%
group_by(subregion) %>%
summarise(
municipios = n(),
poblacion_total = sum(poblacion, na.rm = TRUE),
municipios_pdet = sum(pdet_flag, na.rm = TRUE),
prop_pdet = round(municipios_pdet / municipios, 2),
coca_presente = any(coca_2023 > 0, na.rm = TRUE),
.groups = "drop"
) %>%
arrange(desc(municipios_pdet))
resumen_subregion# A tibble: 9 × 6
subregion municipios poblacion_total municipios_pdet prop_pdet coca_presente
<chr> <int> <dbl> <dbl> <dbl> <lgl>
1 Urabá 11 522249 9 0.82 TRUE
2 Bajo Cauca 6 265907 6 1 TRUE
3 Nordeste 10 217500 4 0.4 TRUE
4 Norte 17 256574 3 0.18 TRUE
5 Magdalena … 6 110971 1 0.17 TRUE
6 Occidente 19 227034 1 0.05 TRUE
7 Oriente 23 763096 0 0 TRUE
8 Suroeste 23 388398 0 0 FALSE
9 Valle de A… 10 4212261 0 0 FALSE
6.7. Resultados
Los resultados muestran que la presencia de municipios PDET en Antioquia no es homogénea, sino que se concentra en ciertas subregiones específicas. En particular, Urabá presenta 9 municipios PDET, lo que representa el 82% de sus municipios, mientras que Bajo Cauca presenta 6 municipios, equivalentes al 100% de su subregión. Estas dos subregiones concentran la mayor proporción de municipios con PDET.
Por su parte, el Nordeste presenta 4 municipios PDET (40%), el Norte 3 municipios (18%) y el Magdalena Medio 1 municipio (17%). En contraste, subregiones como Oriente, Suroeste y Valle de Aburrá no presentan municipios con esta clasificación.
En términos de población, las subregiones con mayor número de municipios PDET no necesariamente son las más pobladas, lo que indica que estos programas están focalizados en territorios específicos más que en grandes centros urbanos. De hecho, el Valle de Aburrá, que concentra la mayor población del departamento, no presenta municipios PDET.
En relación con la presencia de cultivos de coca, se observa que la mayoría de las subregiones cuentan con al menos un municipio con cultivos en 2023, especialmente aquellas con mayor proporción de municipios PDET, como Urabá, Bajo Cauca y Nordeste. En contraste, el Suroeste y el Valle de Aburrá no presentan evidencia de cultivos de coca en este periodo.
6.7. Preguntas del ejercicio
En cuanto al número de municipios PDET por subregión, se identifica que Urabá y Bajo Cauca concentran la mayor cantidad, con 9 y 6 municipios respectivamente, seguidos por el Nordeste y el Norte con menor participación.
Respecto a la población total de estos municipios, se observa que las subregiones con mayor número de municipios PDET no corresponden a las más pobladas del departamento, lo que evidencia una focalización territorial de estos programas hacia zonas con condiciones específicas de vulnerabilidad.
En relación con la presencia de cultivos de coca, se encuentra que la mayoría de las subregiones presentan al menos un municipio con cultivos en 2023, lo que indica una amplia distribución territorial de este fenómeno dentro del departamento.
6.8. Análisis territorial
El análisis permite identificar un patrón territorial claro en el que los municipios con PDET se concentran en subregiones que también presentan presencia de cultivos de coca y mayores niveles de riesgo de victimización. Este patrón es especialmente evidente en Urabá, Bajo Cauca y Nordeste, territorios históricamente afectados por el conflicto armado y por economías ilícitas.
Por el contrario, subregiones como el Valle de Aburrá, caracterizadas por mayor urbanización y desarrollo económico, no presentan municipios PDET ni cultivos de coca, lo que evidencia una diferenciación territorial marcada dentro del departamento.
6.9. Implicación para la política pública
Los resultados sugieren que los programas PDET están correctamente focalizados en territorios con mayores niveles de vulnerabilidad, donde coinciden factores como el riesgo de victimización y la presencia de economías ilícitas. Esto refuerza la importancia de intervenciones integrales que aborden simultáneamente aspectos de seguridad, desarrollo económico y fortalecimiento institucional.
Asimismo, la concentración territorial de estos fenómenos implica que las políticas públicas deben tener un enfoque diferencial por subregión, reconociendo las particularidades de cada territorio.
6.10. Conclusión
El análisis evidencia que los municipios PDET en Antioquia se concentran en subregiones específicas que también presentan mayores niveles de riesgo de victimización y presencia de cultivos de coca. Este patrón territorial refleja la complejidad del conflicto armado y resalta la importancia de una planificación territorial basada en evidencia, que permita orientar de manera eficiente los recursos y las intervenciones del Estado.