Este proyecto utiliza el Análisis de Patrones Puntuales (APP) para estudiar la distribución espacial de eventos del conflicto armado en Colombia, centrándose en las áreas de influencia del Banco Agrario. El objetivo es identificar patrones de concentración y dispersión de la violencia para generar insumos clave para la gestión del riesgo y la toma de decisiones estratégicas en el desarrollo rural.
La metodología se aplica a tres categorías de eventos registrados entre 2023 y 2024:
Actos Letales: Homicidio y desaparición.
Dinámicas de Expulsión: Desplazamiento y despojo.
Estrategias de Control: Atentados, terrorismo y amenazas.
Se emplearán técnicas de conteo espacial, estimación de densidad y análisis de puntos calientes (Hot Spots) para analizar la intensidad y el alcance territorial de estos fenómenos en los municipios priorizados.
Como primera medida se cargan las librerias necesarias para el desarrollo del ejercicio.
library(readxl) # readxl: Para la carga de datos desde archivos Excel.
library(dplyr) # dplyr: Para la manipulación y transformación de datos.
library(lubridate) # lubridate: Para el manejo y procesamiento de fechas y tiempos.
library(leaflet) # leaflet: Para la creación de mapas interactivos.
library(sf) # sf: Para trabajar con datos geoespaciales.
library(mapview) # mapview: Para la visualización interactiva de mapas.
library(spatstat) # spatstat: Para el análisis de patrones espaciales y análisis de densidad.
library(terra) # terra: Para el manejo de datos raster y análisis espacial.
library(leaflet.extras) # leaflet.extras: Para añadir funciones adicionales a los mapas de leaflet
library(ggplot2) # ggplot2: Para la creación de gráficos y visualizaciones.
library(leafsync) # leafsync: Para la sincronización de múltiples mapas interactivos.)procedemos a cargar la base de datos utilizada en el análisis y a visualizar su estructura, con el fin de verificar la correcta importación de las variables y comprender la organización general de la información.
# BASE DE DATOS
base_datos <- read_excel("C:/Users/johan/Downloads/MAESTRIA - CIENCIA DE DATOS/SEGUNDO SEMESTRE/ANALISIS GROGRAFICO Y ESPACIAL/TALLER 4/Banco_Agrario_DG.xlsx")
print(base_datos)## # A tibble: 8,241 × 11
## Departamento ciudad Longitud Latitud id genero fecha_inicio_op
## <chr> <chr> <dbl> <dbl> <dbl> <chr> <dttm>
## 1 Nariño Tumaco -78.8 1.81 95 MASCU… 2024-03-08 00:00:00
## 2 Cauca Caloto -76.4 3.03 104 MASCU… 2023-12-07 00:00:00
## 3 Cauca Corinto -76.2 3.14 106 MASCU… 2024-01-10 00:00:00
## 4 Cauca Santand… -76.5 3.01 124 MASCU… 2024-04-09 00:00:00
## 5 Antioquia Tarazá -75.4 7.58 201 MASCU… 2023-10-05 00:00:00
## 6 Cauca Toribío -76.3 2.96 219 MASCU… 2023-09-18 00:00:00
## 7 Cauca Buenos … -76.6 3.02 249 MASCU… 2022-10-28 00:00:00
## 8 Putumayo Puerto … -76.4 0.964 274 MASCU… 2022-08-26 00:00:00
## 9 Valle del Cauca Cali -76.5 3.45 541 MASCU… 2022-06-06 00:00:00
## 10 Norte de Santander Tibú -72.7 8.64 542 MASCU… 2023-09-26 00:00:00
## # ℹ 8,231 more rows
## # ℹ 4 more variables: monto_desembolso <dbl>, hecho_victimizante <chr>,
## # COMPARATIVO_OCURRENCIA_HECHO <chr>, `Tipo Factor Externo` <chr>
El análisis temporal constituye una de las primeras aproximaciones en el estudio de datos relacionados con el conflicto armado, ya que permite identificar patrones en la ocurrencia de los hechos a lo largo del tiempo. Para ello, se extraen las horas y fechas de los registros utilizando la librería lubridate, lo que facilita el filtrado, la segmentación y la exploración de tendencias específicas.
En este apartado se analiza si existen concentraciones de eventos violentos —incluyendo desplazamientos, homicidios, atentados, amenazas y desapariciones— durante los 28 dias en los distintos meses y años del periodo 2023–2024. Este enfoque busca observar si la ocurrencia de estos hechos coincide con variaciones en los montos desembolsados por el Banco Agrario, considerando que dicho día corresponde al cierre operativo mensual para múltiples productos financieros.
Al vincular la temporalidad de los eventos del conflicto con los niveles de desembolso, es posible identificar si la intensidad de la violencia podría estar asociada a cambios en la ejecución crediticia o en la dinámica financiera territorial. Este tipo de análisis aporta evidencia relevante para comprender cómo los factores de seguridad y riesgo pueden intervenir en la actividad operativa y financiera del banco en diferentes regiones del país.
# Calcular la frecuencia de cada tipo de evento en Trama_Waze
frecuencia_eventos <- base_datos %>%
group_by(hecho_victimizante) %>%
summarise(Frecuencia = n()) %>%
arrange(desc(Frecuencia))
# Mostrar la tabla de frecuencia de tipos de eventos
table(base_datos$hecho_victimizante)##
## Abandono o Despojo Forzado de Tierras Atentados - terrorismo - amenazas
## 2 320
## Desplazamiento y despojo Homicidio - desaparicion
## 7294 615
## Violencia sexual - reclutamiento
## 10
# Crear un gráfico de barras con ggplot2 usando los datos de Trama_Waze
ggplot(frecuencia_eventos, aes(x = hecho_victimizante, y = Frecuencia, fill = hecho_victimizante)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = " Tipos de Eventos en el Conflicto Armado en colombia",
x = "Tipo de Evento", y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set2")El análisis de frecuencias revela que el evento Desplazamiento-Despojo afecta a la inmensa mayoría (96.4%) de los clientes del Banco Agrario (7,946 casos) antes de la originación de su crédito, indicando que la cartera del banco en las zonas de conflicto está compuesta mayoritariamente por población previamente victimizada en búsqueda de rehabilitación productiva. No obstante, los 280 casos que sufrieron el evento después del desembolso (3.4%) representan un riesgo crediticio directo y posterior a la inversión, subrayando la necesidad de aplicar el Análisis de Patrones Puntuales para mapear el riesgo de conflicto actualizado en las áreas de influencia del banco.
Este filtro se aplica para identificar y analizar los eventos de desplazamiento y despojo ocurridos específicamente el día 27 entre los años 2023 y 2024 reportados al banco.
El propósito de esta selección temporal es:
Detectar Patrones: Observar si esta fecha presenta patrones particulares de concentración o picos en la dinámica del conflicto armado.
Analizar Concentraciones: Facilitar el examen de la intensidad, las tendencias y las posibles relaciones temporales con otros factores (eventos institucionales, operativos de seguridad, o acciones de actores armados) en el territorio.
Este enfoque de corte temporal específico es útil para refinar tu Análisis de Patrones Puntuales (APP), permitiendo aislar un día de alto riesgo para su posterior georreferenciación.
Una vez filtrados los datos por el evento Desplazamiento y Despojo, estos se visualizan en un mapa interactivo mediante la librería leaflet. El mapa permite la exploración de las ubicaciones exactas (Longitud y Latitud) de los eventos reportados, los cuales son agrupados en clusters dinámicos para mejorar la legibilidad y manejar la alta densidad de casos.
La interactividad del mapa es crucial para el análisis exploratorio. Al permitir a los usuarios hacer zoom y desagrupar los clusters, facilita la identificación visual inmediata de los puntos de alta concentración y ayuda a detectar patrones espaciales y estructuras territoriales que serán verificados formalmente con el Análisis de Patrones Puntuales (APP).
En esta sección, se aplica el Análisis de Patrones Puntuales (APP) para estudiar la distribución geográfica de los eventos de Desplazamiento y Despojo ocurridos el día 28. El objetivo es generar un Mapa de Densidad Kernel (Mapa de Calor) para visualizar la intensidad continua del riesgo y determinar, mediante el análisis de Puntos Calientes (Hot Spots), las áreas de concentración estadísticamente significativa del conflicto en esta fecha.
# Crear un mapa interactivo con leaflet y addHeatmap
leaflet(violencia27) %>%
addProviderTiles("OpenStreetMap") %>%
addHeatmap(
lng = ~Longitud, lat = ~Latitud,
intensity = ~monto_desembolso,
blur = 20, max = 0.08, radius = 15
) %>%
addLegend("bottomright",
title = "Mapa de Calor de Desplazamiento y Despojo",
colors = c("#66C2FF", "#7FFF00", "#FFB600", "#FF006E"),
labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))Se aplica un filtro para aislar los eventos de Homicidio y Desaparición ocurridos específicamente el día 27 (del período en estudio). Esta selección temporal busca identificar patrones o picos en la dinámica del conflicto armado para esa fecha. El objetivo es facilitar la examinación de concentraciones espaciales y tendencias que puedan vincularse a factores territoriales o institucionales específicos, lo cual es fundamental para el posterior Análisis de Patrones Puntuales (APP) de los actos letales.
Una vez filtrados los datos por el evento Homicidio y Desaparición, se utiliza la librería leaflet para generar un mapa interactivo. Este mapa permite la exploración de las ubicaciones exactas (Longitud y Latitud) de los eventos reportados, presentados en clusters dinámicos para mantener la legibilidad. La interactividad es clave para el análisis exploratorio, ya que facilita la identificación visual de los puntos de alta concentración de violencia letal, ayudando a detectar patrones espaciales iniciales que serán verificados formalmente mediante el Análisis de Patrones Puntuales (APP).
# Obtenemos los valores maximos y minimos para tener el area de interes
# Longitud
zona <- owin(
xrange = range(base_datos$Longitud, na.rm = TRUE),
yrange = range(base_datos$Latitud, na.rm = TRUE)
)# Graficar el test de cuadrantes
patron_homi <- ppp(x = hd27$Longitud, y = hd27$Latitud, window = zona)## Warning: data contain duplicated points
plot(quadratcount(patron_homi), main = "Patrón de Puntos y Test de Cuadrantes")
points(patron_homi, col = "darkred")El gráfico representa el Conteo Espacial (Spatial Count) de los eventos de Homicidio y Desaparición dentro de una cuadrícula predefinida. La variación en el conteo por celda demuestra que los eventos letales no siguen un patrón uniforme, sino que exhiben una concentración significativa en ciertas zonas. Esta distribución heterogénea confirma la existencia de clusters espaciales que delimitan posibles áreas de mayor actividad del conflicto, sirviendo como un paso inicial para el análisis de Puntos Calientes (Hot Spots).
# Gráfico independiente: Función K-Estimación
plot(Kest(patron_homi), main = "Función K - Homicidio y Desaparición")El gráfico de la Función K de Ripley es la prueba formal de la existencia de un patrón espacial no aleatorio. La observación de que las curvas de estimación del patrón espacial se sitúan consistentemente por encima de la curva de referencia (Patrón de Poisson) confirma la existencia de un agrupamiento espacial (clustering) en los eventos analizados.
Esto indica que la probabilidad de encontrar un evento cerca de otro es significativamente mayor que la esperada bajo una distribución completamente aleatoria, lo cual valida el uso posterior de técnicas de enfoque como el análisis de Puntos Calientes (Hot Spots).
# Asegurarse de que el objeto patron_via_cerrada esté correctamente definido
# Crear un patrón de puntos espaciales utilizando los datos correctos (via_cerrada_26)
# Calcular la densidad espacial
im1 <- density(patron_homi, sigma = 0.01)
mapa_homidepa <- rast(im1)
df_homidepa <- as.data.frame(mapa_homidepa, xy = TRUE)
colnames(df_homidepa) <- c("Longitud", "Latitud", "intensity")
# Normalizar los valores de intensidad entre 0 y 1
df_homidepa$intensity <- (df_homidepa$intensity - min(df_homidepa$intensity)) /
(max(df_homidepa$intensity) - min(df_homidepa$intensity))
# Crear un mapa interactivo usando leaflet
leaflet(df_homidepa) %>%
addProviderTiles("OpenStreetMap") %>%
addHeatmap(lng = ~Longitud, lat = ~Latitud, intensity = ~intensity,
blur = 20, max = 1, radius = 15) %>%
addLegend("bottomright",
title = "Mapa de Calor de Homicidios y Desaparición",
colors = c("#66C2FF", "#7FFF00", "#FFB600", "#FF006E"),
labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))Se aplica un filtro para aislar los eventos de Atentados, Terrorismo y Amenazas ocurridos específicamente el día 27 (del período en estudio). Esta selección temporal busca identificar patrones o picos en la dinámica del conflicto armado para esa fecha. El objetivo es facilitar la examinación de concentraciones espaciales y tendencias que puedan vincularse a factores territoriales o institucionales específicos, lo cual es fundamental para el posterior Análisis de Patrones Puntuales (APP) de las estrategias de control e intimidación.
# Filtrar eventos de ATENTADOS - TERRORISMO - AMENAZAS del día 27
ata_27 <- base_datos %>% filter(hecho_victimizante == "Atentados - terrorismo - amenazas", dia == 27)# Obtenemos los valores maximos y minimos para tener el area de interes
# Longitud
patron_ata <- ppp(x = ata_27$Longitud, y = ata_27$Latitud, window = zona)# Graficar el test de cuadrantes
plot(quadratcount(patron_ata), main = "Patrón de Puntos y Test de Cuadrantes")
points(patron_ata, col = "#CC4C02")Aquí tienes el párrafo ajustado, conciso y con la terminología precisa para describir el Test de Cuadrantes (o Análisis de Varianza en Cuadrantes) en el contexto de tu APP:
🔪 Test de Cuadrantes (Análisis de Concentración) El gráfico presenta el resultado del Test de Cuadrantes, que evalúa la distribución de los puntos de eventos dentro de una cuadrícula espacial predefinida. La variación observada en el conteo por celda (algunos cuadrantes con múltiples puntos y otros vacíos) confirma visualmente la existencia de un patrón agrupado y no una distribución espacial uniforme (aleatoria). El valor estadístico derivado de este test permite determinar si esta concentración de puntos es estadísticamente significativa o si, por el contrario, es una simple fluctuación del azar, validando la necesidad de aplicar análisis más complejos como la Función K de Ripley o el análisis de Puntos Calientes (Hot Spots).
# Gráfico independiente: Función K-Estimación
plot(Kest(patron_ata), main = "Función K - Atentados/Amenazas")El gráfico compara las distintas estimaciones de la Función K que evalúan el patrón espacial de los eventos. La curva que representa el comportamiento esperado bajo un patrón completamente aleatorio (Kpois), sirve como referencia. El hecho de que todas las curvas estimadas (K_iso, K_trans y K_bord), que aplican diferentes correcciones de borde, se sitúen consistentemente por encima de la curva de referencia, evidencia que los eventos presentan un agrupamiento espacial (clustering). Esto confirma formalmente que los eventos ocurren más cerca unos de otros de lo que se esperaría aleatoriamente, validando la necesidad de aplicar análisis de concentración como los Puntos Calientes (Hot Spots).
# Asegurarse de que el objeto patron_via_cerrada esté correctamente definido
# Crear un patrón de puntos espaciales utilizando los datos correctos (via_cerrada_26)
im2 <- density(patron_ata, sigma = 0.01)
mapa_ata <- rast(im2)
df_ata <- as.data.frame(mapa_ata, xy = TRUE)
colnames(df_ata) <- c("Longitud", "Latitud", "intensity")
df_ata$intensity <- (df_ata$intensity - min(df_ata$intensity)) /
(max(df_ata$intensity) - min(df_ata$intensity))
# Crear un mapa interactivo usando leaflet
leaflet(df_ata) %>%
addProviderTiles("OpenStreetMap") %>%
addHeatmap(lng = ~Longitud, lat = ~Latitud, intensity = ~intensity,
blur = 20, max = 1, radius = 15) %>%
addLegend("bottomright",
title = "Mapa de Calor de Atentados y Terrorismo",
colors = c("#66C2FF", "#7FFF00", "#FFB600", "#FF006E"),
labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))Profe el presente estudio concluye que el análisis se ha segmentado estratégicamente en los municipios de Colombia con la más alta presencia histórica y actual de grupos armados, zonas que, a su vez, son cruciales para las operaciones y la cartera de clientes del Banco Agrario de Colombia.
Este enfoque geográfico riguroso fue implementado por Flavio Castillo y Johan Valencia como parte central de su proyecto de grado. Su trabajo correlaciona variables del conflicto armado (utilizando el Análisis de Patrones Puntuales) con la dinámica económica y de riesgo de la clientela de BancAgrario. La selección de estos municipios altamente sensibles garantiza que los hallazgos y las visualizaciones de Puntos Calientes (Hot Spots) generen un insumo de alto valor estratégico para la gestión del riesgo y la formulación de políticas de desarrollo rural en los territorios más afectados por la violencia.
Los datos aqui desarrollados son reales pues soy colaborar del banco.