El conflicto armado en Colombia ha sido un fenómeno persistente que ha impactado el desarrollo de diversas regiones del país, esto a pesar de los esfuerzos de proyectos y planes en municipios priorizados dentro del Programa de Desarrollo con Enfoque Territorial (PDET), la violencia sigue manifestándose de manera desigual en el territorio. Ante esta realidad, surge este trabajo para analizar la persistencia espacial del conflicto y evaluar en qué medida las condiciones de un municipio y sus vecinos influyen en la continuidad del conflicto a lo largo del tiempo.
Este estudio emplea técnicas de análisis espacial para evaluar la distribución y evolución del Índice de Incidencia del Conflicto Armado (IICA) en los municipios colombianos durante los años 2017 y 2021. Utilizando análisis LISA (Local Indicators of Spatial Association) y modelos de regresión espacial, el cual busca responder a la pregunta central: ¿El conflicto persiste en los mismos territorios con el tiempo, o existe una dependencia geográfica entre municipios que contribuye a la continuidad del conflicto?
Para abordar esta pregunta, el estudio se estructuró en tres fases principales:
Análisis de la autocorrelación espacial del conflicto en 2017 y 2021:
Se utilizó el análisis LISA para clasificar los municipios en cuatro categorías según su autocorrelación local:
Se compararon los clústeres de cada municipio en ambos años, clasificándolos en cinco categorías:
Se inicia con la instalación de las librerias necesarias, el cargue y estandarización de nombres, ocultando en Rmarkdown las instlaciones debido a que salen mensajes de advertencia por actualización de MAC en R.
library(tidyverse) library(readxl) library(leaflet)
library(spdep)
library(dplyr) library(sp) library(tmap) library(sf)
library(spatialreg)
datos <- read_excel("/Users/daniel/Downloads/Base de datos trabajo final.xlsx")
datos <- datos %>%
rename_with(~ gsub(" ", "_", .)) %>%
rename_with(~ gsub("\\(porcentaje\\)", "porcentaje", .)) %>%
rename_with(~ gsub("\\(número\\)", "numero", .)) %>%
rename_with(~ gsub("\\(Porcentaje\\)", "porcentaje", .)) %>%
rename_with(~ gsub("\\(puntos\\)", "puntos", .)) %>%
rename_with(~ gsub("\\(Inversión\\)", "Inversion", .)) %>%
rename_with(~ gsub("\\(Millones_de_pesos\\)", "Millones_pesos", .))
# Convertir los datos a formato espacial (sf)
datos_sf <- st_as_sf(datos, coords = c("Longitud", "Latitud"), crs = 4326)
Despues de que la instalación y verificación de los datos se inició el analísis con la definición de vecinos y matriz de pesos espaciales.
# Calcular los vecinos usando K-Nearest Neighbors con K=4
vecinos <- knn2nb(knearneigh(st_coordinates(datos_sf), k = 4))
# Crear la matriz de pesos espaciales con estilo B (binario)
pesos <- nb2listw(vecinos, style = "B")
# Contar municipios sin vecinos
municipios_sin_vecinos <- sum(card(vecinos) == 0)
print(paste("Número de municipios sin vecinos:", municipios_sin_vecinos))
## [1] "Número de municipios sin vecinos: 0"
plot(st_geometry(datos_sf), col = "lightgray", main = "Red de Vecinos K=4") # Mapa base
plot(vecinos, st_coordinates(datos_sf), col = "red", pch = 20, add = TRUE)
La construcción de la matriz de pesos espaciales con K=4 garantiza que cada municipio tenga cuatro vecinos cercanos, asegurando que todos participen en el análisis y no haya municipios aislados. La elección de K=4 se basa en la necesidad de capturar interacciones locales sin incluir relaciones irrelevantes con municipios demasiado distantes.
Al utilizar una matriz de pesos binarios (estilo B), cada municipio tiene la misma influencia sobre sus vecinos directos (valor 1 si es vecino, 0 si no lo es), lo que facilita la interpretación de los efectos espaciales sin distorsiones causadas por ponderaciones más complejas.
Además, al verificar la estructura de la red de vecinos, confirmamos que todos los municipios tienen exactamente cuatro conexiones, asegurando que el análisis de autocorrelación espacial (LISA) pueda aplicarse a toda la muestra sin omisiones. También se realizó una visualización de la red de conexiones espaciales.
lisa_2017 <- localmoran(datos_sf$`Índice_de_Incidencia_del_Conflicto_Armado_-_IICA_2017_numero`, pesos)
lisa_2021 <- localmoran(datos_sf$`Índice_de_Incidencia_del_Conflicto_Armado_-_IICA_2021_numero`, pesos)
# Convertir resultados a DataFrame
lisa_2017_df <- as.data.frame(lisa_2017)
lisa_2021_df <- as.data.frame(lisa_2021)
# Agregar los valores de Moran's I y p-value a la base de datos espacial
datos_sf$Ii_2017 <- lisa_2017_df$Ii
datos_sf$p_value_2017 <- lisa_2017_df$`Pr(z != E(Ii))`
datos_sf$Ii_2021 <- lisa_2021_df$Ii
datos_sf$p_value_2021 <- lisa_2021_df$`Pr(z != E(Ii))`
# Visualizar las primeras filas con los resultados
head(datos_sf[, c("Municipio", "Ii_2017", "p_value_2017", "Ii_2021", "p_value_2021")])
## Simple feature collection with 6 features and 5 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -76.0643 ymin: 5.789315 xmax: -75.0775 ymax: 6.909655
## Geodetic CRS: WGS 84
## # A tibble: 6 × 6
## Municipio Ii_2017 p_value_2017 Ii_2021 p_value_2021 geometry
## <chr> <dbl> <dbl> <dbl> <dbl> <POINT [°]>
## 1 Medellín 0.367 0.465 0.294 0.484 (-75.58177 6.246631)
## 2 Abejorral 0.357 0.678 0.151 0.793 (-75.42874 5.789315)
## 3 Abriaquí -0.0705 0.827 0.0585 0.953 (-76.0643 6.632282)
## 4 Alejandría 0.177 0.583 0.342 0.703 (-75.14135 6.376061)
## 5 Amagá 0.0462 0.886 0.0347 0.733 (-75.70219 6.038708)
## 6 Amalfi -0.428 0.395 0.760 0.273 (-75.0775 6.909655)
Ii_vecinos_2017 <- lag.listw(pesos, datos_sf$Ii_2017) # Ii promedio de vecinos en 2017
Ii_vecinos_2021 <- lag.listw(pesos, datos_sf$Ii_2021) # Ii promedio de vecinos en 2021
# Ajustar la clasificación de los clústeres intercambiando Alto-Alto con Bajo-Bajo
datos_sf$Cluster_2017 <- NA
datos_sf$Cluster_2021 <- NA
# Nueva clasificación de 2017
datos_sf$Cluster_2017[datos_sf$Ii_2017 > 0 & Ii_vecinos_2017 > 0] <- "Bajo-Bajo"
datos_sf$Cluster_2017[datos_sf$Ii_2017 < 0 & Ii_vecinos_2017 < 0] <- "Alto-Alto"
datos_sf$Cluster_2017[datos_sf$Ii_2017 > 0 & Ii_vecinos_2017 < 0] <- "Bajo-Alto"
datos_sf$Cluster_2017[datos_sf$Ii_2017 < 0 & Ii_vecinos_2017 > 0] <- "Alto-Bajo"
# Nueva clasificación de 2021
datos_sf$Cluster_2021[datos_sf$Ii_2021 > 0 & Ii_vecinos_2021 > 0] <- "Bajo-Bajo"
datos_sf$Cluster_2021[datos_sf$Ii_2021 < 0 & Ii_vecinos_2021 < 0] <- "Alto-Alto"
datos_sf$Cluster_2021[datos_sf$Ii_2021 > 0 & Ii_vecinos_2021 < 0] <- "Bajo-Alto"
datos_sf$Cluster_2021[datos_sf$Ii_2021 < 0 & Ii_vecinos_2021 > 0] <- "Alto-Bajo"
# Verificar resultados corregidos
table(datos_sf$Cluster_2017)
##
## Alto-Alto Alto-Bajo Bajo-Alto Bajo-Bajo
## 113 117 65 808
table(datos_sf$Cluster_2021)
##
## Alto-Alto Alto-Bajo Bajo-Alto Bajo-Bajo
## 59 115 44 885
La cantidad de municipios que tenían alta incidencia del conflicto y estaban rodeados por otros con alta incidencia disminuyó de 113 a 59.
Hay más municipios con baja incidencia del conflicto y rodeados de municipios con baja incidencia
Se puede concluir que, hay una tendencia clara de reducción del conflicto en algunas regiones, pero aún hay núcleos de persistencia. Los municipios Alto-Alto han disminuido, pero algunos han pasado a categorías intermedias en lugar de Bajo-Bajo.
Continuamos con la visualización para poder dar mas claridad a la interpretación y llegar a un comparativo de los ańos
paleta_cluster <- colorFactor(
palette = c("red", "orange", "yellow", "blue"),
domain = datos_sf$Cluster_2017
)
# Mapa interactivo de Clústeres LISA 2017
mapa_lisa_2017 <- leaflet(datos_sf) %>%
addTiles() %>%
addCircleMarkers(
lng = ~st_coordinates(geometry)[,1],
lat = ~st_coordinates(geometry)[,2],
fillColor = ~paleta_cluster(Cluster_2017),
fillOpacity = 1,
radius = 6,
stroke = TRUE,
color = ifelse(datos_sf$PDET == "Sí", "black", "transparent"), # Borde negro solo para PDET
weight = 5,
popup = ~paste(
"<b>Municipio:</b>", Municipio, "(", Departamento, ")", "<br>",
"<b>Cluster:</b>", Cluster_2017, "<br>",
"<b>LISA I:</b>", round(Ii_2017, 3), "<br>",
"<b>P-valor:</b>", round(p_value_2017, 3)
)
) %>%
addLegend(
"bottomright",
pal = paleta_cluster,
values = ~Cluster_2017,
title = "Clústeres LISA 2017",
opacity = 1
)
# Mostrar el mapa de 2017
mapa_lisa_2017
Distribución de clústeres LISA en 2017 según el IICA (Índice de Incidencia del Conflicto Armado)
Alto-Alto: Se observan agrupaciones de municipios con alta incidencia del conflicto en regiones del noroccidente del país.
Bajo-Bajo: Hay una gran concentración de municipios con baja incidencia del conflicto en la zona central y oriente del país.
Alto-Bajo: Se identifican algunos municipios con alta incidencia rodeados de municipios con baja incidencia, principalmente en zonas de transición.
Bajo-Alto: Se pueden ver municipios con baja incidencia rodeados por municipios con alta incidencia, lo que podría representar zonas de frontera del conflicto.
Municipios PDET
Se resaltan con borde negro los municipios PDET.
Se distribuyen en diferentes categorías, lo que sugiere una mezcla de municipios en contextos distintos de conflicto.
paleta_cluster_2021 <- colorFactor(
palette = c("red", "orange", "yellow", "blue"),
domain = datos_sf$Cluster_2021
)
# Mapa interactivo de Clústeres LISA 2021
mapa_lisa_2021 <- leaflet(datos_sf) %>%
addTiles() %>%
addCircleMarkers(
lng = ~st_coordinates(geometry)[,1],
lat = ~st_coordinates(geometry)[,2],
fillColor = ~paleta_cluster_2021(Cluster_2021),
fillOpacity = 1,
radius = 6,
stroke = TRUE,
color = ifelse(datos_sf$PDET == "Sí", "black", "transparent"), # Borde negro solo para PDET
weight = 5,
popup = ~paste(
"<b>Municipio:</b>", Municipio, "(", Departamento, ")", "<br>",
"<b>Cluster:</b>", Cluster_2021, "<br>",
"<b>LISA I:</b>", round(Ii_2021, 3), "<br>",
"<b>P-valor:</b>", round(p_value_2021, 3)
)
) %>%
addLegend(
"bottomright",
pal = paleta_cluster_2021,
values = ~Cluster_2021,
title = "Clústeres LISA 2021",
opacity = 1
)
# Mostrar el mapa de 2021
mapa_lisa_2021
Mayor estabilidad en zonas de Bajo-Bajo, lo que indica reducción del conflicto en algunas regiones.
Persistencia del conflicto en ciertas zonas, aunque con menor intensidad en términos de número de municipios en Alto-Alto.
La geografía sigue influyendo, ya que municipios con antecedentes de conflicto siguen relacionados con sus vecinos cercanos.
Los PDET muestran cambios mixtos, algunos con mejoras y otros manteniendo altos niveles de conflicto.
# Crear una columna vacía para almacenar el tipo de cambio de clúster
datos_sf$Cambio_Cluster <- NA
# Clasificación de cambios de clúster con nombres en minúscula
for (i in 1:nrow(datos_sf)) {
cluster_antes <- tolower(datos_sf$Cluster_2017[i])
cluster_despues <- tolower(datos_sf$Cluster_2021[i])
if (cluster_antes == cluster_despues) {
datos_sf$Cambio_Cluster[i] <- "se mantuvo"
# 🔹 SUBE 2 NIVELES
} else if (cluster_antes == "bajo-bajo" & cluster_despues == "alto-alto") {
datos_sf$Cambio_Cluster[i] <- "subió 2 niveles"
} else if (cluster_antes == "bajo-bajo" & cluster_despues == "alto-bajo") {
datos_sf$Cambio_Cluster[i] <- "subió 2 niveles"
} else if (cluster_antes == "bajo-alto" & cluster_despues == "alto-alto") {
datos_sf$Cambio_Cluster[i] <- "subió 2 niveles"
# 🔹 SUBE 1 NIVEL
} else if (cluster_antes == "bajo-bajo" & cluster_despues == "bajo-alto") {
datos_sf$Cambio_Cluster[i] <- "subió 1 nivel"
} else if (cluster_antes == "bajo-alto" & cluster_despues == "alto-bajo") {
datos_sf$Cambio_Cluster[i] <- "subió 1 nivel"
} else if (cluster_antes == "alto-bajo" & cluster_despues == "alto-alto") {
datos_sf$Cambio_Cluster[i] <- "subió 1 nivel"
# 🔹 BAJA 1 NIVEL
} else if (cluster_antes == "alto-alto" & cluster_despues == "alto-bajo") {
datos_sf$Cambio_Cluster[i] <- "bajó 1 nivel"
} else if (cluster_antes == "alto-bajo" & cluster_despues == "bajo-alto") {
datos_sf$Cambio_Cluster[i] <- "bajó 1 nivel"
} else if (cluster_antes == "bajo-alto" & cluster_despues == "bajo-bajo") {
datos_sf$Cambio_Cluster[i] <- "bajó 1 nivel"
# 🔹 BAJA 2 NIVELES
} else if (cluster_antes == "alto-alto" & cluster_despues == "bajo-alto") {
datos_sf$Cambio_Cluster[i] <- "bajó 2 niveles"
} else if (cluster_antes == "alto-bajo" & cluster_despues == "bajo-bajo") {
datos_sf$Cambio_Cluster[i] <- "bajó 2 niveles"
} else if (cluster_antes == "alto-alto" & cluster_despues == "bajo-bajo") {
datos_sf$Cambio_Cluster[i] <- "bajó 2 niveles"
}
}
# Revisar la tabla de cambios
table(datos_sf$Cambio_Cluster, useNA = "ifany")
##
## bajó 1 nivel bajó 2 niveles se mantuvo subió 1 nivel subió 2 niveles
## 76 142 758 39 88
El siguiente objetivo es analizar la evolución de los clústeres de conflicto entre 2017 y 2021, determinando cómo cambiaron los municipios en términos de su nivel de conflicto en relación con sus vecinos.
La tabla generada nos indica: - 758 municipios se mantuvieron sin cambios.
127 municipios empeoraron, de los cuales: - 88 subieron 2 niveles, lo que puede representar un deterioro grave. - 39 subieron 1 nivel, mostrando un deterioro moderado.
218 municipios mejoraron, de los cuales: - 142 bajaron 2 niveles, indicando una mejora significativa. - 76 bajaron 1 nivel, mostrando una mejora parcial.
# Definir paleta de colores para los cambios de clúster
paleta_cambios <- colorFactor(
palette = c("lightgreen", "darkgreen", "gray", "orange", "red"),
domain = datos_sf$Cambio_Cluster
)
# Crear el mapa interactivo
mapa_cambios <- leaflet(datos_sf) %>%
addTiles() %>% # Añadir mapa base
addCircleMarkers(
lng = ~st_coordinates(geometry)[,1],
lat = ~st_coordinates(geometry)[,2],
fillColor = ~paleta_cambios(Cambio_Cluster), # Colores según el cambio de clúster
fillOpacity = 0.9, # Opacidad del relleno
radius = 6, # Tamaño de los puntos
stroke = TRUE, # Borde habilitado
color = ifelse(datos_sf$PDET == "Sí", "black", NA), # Bordes negros para municipios PDET
weight = 5, # Grosor del borde
popup = ~paste(
"<b>Municipio:</b>", Municipio, "(", Departamento, ")", "<br>",
"<b>Cambio de Clúster:</b>", Cambio_Cluster
) # Información emergente al hacer clic
) %>%
addLegend(
"bottomright",
pal = paleta_cambios,
values = ~Cambio_Cluster,
title = "Cambio de Clúster (2017-2021)",
opacity = 1
)
# Mostrar el mapa
mapa_cambios
El mapa muestra los cambios de todos los municipios en Colombia de los clusters como comparativo.
# Crear el gráfico de barras con etiquetas
grafico_cambios <- ggplot(datos_sf, aes(x = Cambio_Cluster, fill = Cambio_Cluster)) +
geom_bar() +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.5, size = 5) +
scale_fill_brewer(palette = "Set2") +
labs(
title = "Cambio de Clúster entre 2017 y 2021",
x = "Tipo de Cambio",
y = "Cantidad de Municipios"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Mostrar el gráfico
print(grafico_cambios)
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
142 municipios bajaron 2 niveles ➝ Mejoraron mucho, lo que sugiere una fuerte reducción del conflicto.
76 municipios bajaron 1 nivel ➝ Mejoraron moderadamente, aún una señal positiva.
39 municipios subieron 1 nivel ➝ Empeoraron moderadamente, el conflicto aumentó un poco.
88 municipios subieron 2 niveles ➝ Empeoraron significativamente, lo cual es preocupante.
758 municipios se mantuvieron ➝ La estabilidad puede ser buena o mala dependiendo de su nivel original.
Continua la grafica de barras para los municipios PDET.
# Filtrar solo los municipios PDET
datos_pdet <- datos_sf %>% filter(PDET == "Sí")
# Crear el gráfico de barras para municipios PDET
grafico_cambios_pdet <- ggplot(datos_pdet, aes(x = Cambio_Cluster, fill = Cambio_Cluster)) +
geom_bar() +
geom_text(stat = 'count', aes(label = ..count..), vjust = -0.5, size = 5) +
scale_fill_brewer(palette = "Set2") +
labs(
title = "Cambio de Clúster entre 2017 y 2021 (Municipios PDET)",
x = "Tipo de Cambio",
y = "Cantidad de Municipios"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Mostrar el gráfico
print(grafico_cambios_pdet)
Como conslusión
El impacto de la geografía en el conflicto armado se observa a través de los cambios en los clústeres LISA
✔️ Los municipios cercanos tienden a influenciarse mutuamente, lo que sugiere propagación del conflicto o de la estabilidad.
✔️ Las regiones con alta persistencia del conflicto pueden indicar fallas estructurales en las estrategias de intervención.
Sin embargo, para entender qué factores explican estos cambios, necesitamos aplicar una regresión espacial.
# Definir vecinos con K=4
vecinos_k4 <- knn2nb(knearneigh(st_coordinates(datos_sf), k = 4))
# Convertir en matriz de pesos binarios (1 si es vecino, 0 si no)
pesos_k4 <- nb2listw(vecinos_k4, style = "B", zero.policy = TRUE)
# Ajustar modelo SLM con lag espacial
modelo_slm <- lagsarlm(Ii_2021 ~ Ii_2017, data = datos_sf, listw = pesos_k4, method = "eigen")
# Resumen del modelo
summary(modelo_slm)
##
## Call:lagsarlm(formula = Ii_2021 ~ Ii_2017, data = datos_sf, listw = pesos_k4,
## method = "eigen")
##
## Residuals:
## Min 1Q Median 3Q Max
## -43.532986 -0.242043 -0.129119 -0.032382 87.076191
##
## Type: lag
## Coefficients: (asymptotic standard errors)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.146998 0.150403 0.9774 0.3284
## Ii_2017 0.218661 0.017867 12.2380 <2e-16
##
## Rho: 0.17724, LR test value: 493.24, p-value: < 2.22e-16
## Asymptotic standard error: 0.0048202
## z-value: 36.77, p-value: < 2.22e-16
## Wald statistic: 1352, p-value: < 2.22e-16
##
## Log likelihood: -3380.069 for lag model
## ML residual variance (sigma squared): 23.42, (sigma: 4.8394)
## Number of observations: 1103
## Number of parameters estimated: 4
## AIC: 6768.1, (AIC for lm: 7259.4)
## LM test for residual autocorrelation
## test value: 10.896, p-value: 0.00096391
🔹 Conclusión - El conflicto armado en los municipios no es solo un fenómeno aislado, sino que se propaga espacialmente. - La geografía influye en la persistencia del conflicto, lo que refuerza la hipótesis de que la violencia no ocurre al azar, sino que responde a patrones espaciales. - El SLM es un mejor predictor del IICA 2021 que la regresión lineal simple, ya que considera la estructura espacial.
# Definir umbrales para clasificar la persistencia del conflicto
datos_sf <- datos_sf %>%
mutate(
Persistencia_Conflicto = case_when(
Ii_2021 > Ii_2017 ~ "Aumentó",
Ii_2021 < Ii_2017 ~ "Disminuyó",
Ii_2021 == Ii_2017 ~ "Se mantuvo",
TRUE ~ NA_character_
)
)
# Verificar que la nueva variable se creó correctamente
table(datos_sf$Persistencia_Conflicto, useNA = "ifany")
##
## Aumentó Disminuyó
## 423 680
De acuerdo con la clasificación de persistencia del conflicto basada en el Índice de Incidencia del Conflicto Armado (IICA), obtenemos los siguientes resultados: - 423 municipios registran un aumento en el nivel de conflicto armado. - 680 municipios muestran una disminución en el nivel de conflicto armado.
La mayoría de los municipios (61.6%) han experimentado una reducción en el nivel de conflicto entre 2017 y 2021, sin embargo, un 38.4% de los municipios han visto un aumento en la incidencia del conflicto, lo que sugiere que el conflicto no ha sido erradicado por completo y persisten dinámicas territoriales de violencia.
# Crear una tabla con el cambio en IICA para todos los municipios
tabla_cambio_todos <- datos_sf %>%
select(Municipio, Departamento, Ii_2017, Ii_2021, Persistencia_Conflicto) %>%
arrange(desc(Persistencia_Conflicto))
# Filtrar municipios PDET y generar una tabla solo para ellos
tabla_cambio_pdet <- datos_sf %>%
filter(PDET == "Sí") %>%
select(Municipio, Departamento, Ii_2017, Ii_2021, Persistencia_Conflicto) %>%
arrange(desc(Persistencia_Conflicto))
Tabla municipios totales
# Mostrar las tablas
datatable(tabla_cambio_todos, options = list(pageLength = 10), caption = "Cambio en el Conflicto - Todos los municipios")
Tabla municipios PDET
datatable(tabla_cambio_pdet, options = list(pageLength = 10), caption = "Cambio en el Conflicto - Municipios PDET")
El análisis de la persistencia del conflicto armado en Colombia entre 2017 y 2021 mediante técnicas espaciales como LISA y modelos de regresión espacial revela que la violencia no se distribuye aleatoriamente en el territorio, sino que sigue patrones espaciales donde los municipios con alta incidencia del conflicto en 2017 tienden a seguir siendo conflictivos en 2021 y donde los municipios vecinos influyen entre sí, lo que confirma la existencia de dependencia geográfica, la evaluación de los municipios PDET muestra que aunque algunos han mejorado, otros no hanvisto cambios del conflicto, lo que sugiere que las estrategias implementadas han tenido impactos mixtos y no homogéneos, lo que indica que las políticas de intervención deben considerar el efecto regional del conflicto y no solo tratar cada municipio de manera aislada.
los modelos espaciales utilizados confirman que la variable Ii_2017 es un predictor significativo del nivel de conflicto en 2021, lo que refuerza la hipótesis de que la violencia persiste en territorios específicos y que las intervenciones deben ser diseñadas con una visión a largo plazo para lograr una transformación estructural, finalmente el trabajo resalta que aunque se observa una tendencia general de reducción del conflicto en algunas regiones, la violencia sigue siendo un problema persistente en otras, lo que indica que es necesario reforzar las estrategias de intervención en los municipios con altos niveles de conflicto para evitar la perpetuación de la violencia y garantizar una paz sostenible.