# Cargar librerías necesarias
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(tidyr)
# Ruta al archivo Excel
file_path <- "C:/Users/Daniel Restrepo/Desktop/DICIEMBRE DAP final/base_datos_unificada.xlsx"
# Leer los datos
data <- read_excel(file_path)
# Convertir columnas a formato numérico y manejar valores faltantes
data <- data %>%
mutate(
Inseguridad_Alimentaria = as.numeric(Inseguridad_Alimentaria),
Incidencia_Pobreza = as.numeric(Incidencia_Pobreza)
) %>%
drop_na(Incidencia_Pobreza, Inseguridad_Alimentaria)
# Verificar los datos
summary(data)
## Comunas Vigencia Inseguridad_Alimentaria Incidencia_Pobreza
## Length:63 Min. :2021 Min. :15.50 Min. : 6.20
## Class :character 1st Qu.:2021 1st Qu.:52.75 1st Qu.:21.25
## Mode :character Median :2022 Median :61.40 Median :31.10
## Mean :2022 Mean :58.35 Mean :29.30
## 3rd Qu.:2023 3rd Qu.:68.65 3rd Qu.:38.05
## Max. :2023 Max. :82.20 Max. :57.10
# Resumen estadístico por comuna y vigencia
summary_stats <- data %>%
group_by(Comunas, Vigencia) %>%
summarise(
Promedio_Pobreza = mean(Incidencia_Pobreza, na.rm = TRUE),
Promedio_Inseguridad = mean(Inseguridad_Alimentaria, na.rm = TRUE),
.groups = 'drop'
)
# Gráfico de dispersión
ggplot(data, aes(x = Incidencia_Pobreza, y = Inseguridad_Alimentaria)) +
geom_point(aes(color = Comunas), alpha = 0.7) +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
title = "Relación entre Pobreza e Inseguridad Alimentaria",
x = "Incidencia de Pobreza Monetaria (%)",
y = "Inseguridad Alimentaria (%)"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

# Gráfico de barras del promedio de pobreza
ggplot(summary_stats, aes(x = reorder(Comunas, -Promedio_Pobreza), y = Promedio_Pobreza)) +
geom_bar(stat = "identity", fill = "steelblue") +
coord_flip() +
labs(
title = "Promedio de Pobreza por Comuna",
x = "Comunas",
y = "Promedio de Pobreza Monetaria (%)"
) +
theme_minimal()

# Cargar shapefile
shapefile_path <- "C:/Users/Daniel Restrepo/Desktop/DICIEMBRE DAP final/LimiteComunaCorregimiento_2014.shp"
medellin_map <- st_read(shapefile_path)
## Reading layer `LimiteComunaCorregimiento_2014' from data source
## `C:\Users\Daniel Restrepo\Desktop\DICIEMBRE DAP final\LimiteComunaCorregimiento_2014.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 23 features and 7 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -75.71931 ymin: 6.162904 xmax: -75.47185 ymax: 6.374872
## Geodetic CRS: WGS 84
# Limpiar nombres en los datos y unir con el shapefile
data <- data %>%
mutate(Comunas = gsub("^\\d+-", "", Comunas)) %>%
mutate(Comunas = case_when(
Comunas == "Doce De Octubre" ~ "Doce de Octubre",
Comunas == "Laureles - Estadio" ~ "Laureles Estadio",
Comunas == "La América" ~ "La América",
Comunas == "Belén" ~ "Belén",
Comunas == "San Cristóbal" ~ "Corregimiento de San Cristóbal",
Comunas == "Palmitas" ~ "Corregimiento de San Sebastián de Palmitas",
Comunas == "Altavista" ~ "Corregimiento de Altavista",
Comunas == "San Antonio de Prado" ~ "Corregimiento de San Antonio de Prado",
Comunas == "Santa Elena" ~ "Corregimiento de Santa Elena",
TRUE ~ Comunas
))
data_map <- medellin_map %>%
left_join(data, by = c("NOMBRE" = "Comunas"))
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.3.3
# Mapa de pobreza
leaflet(data_map) %>%
addProviderTiles("OpenStreetMap") %>%
addPolygons(
fillColor = ~colorQuantile("YlOrRd", Incidencia_Pobreza)(Incidencia_Pobreza),
weight = 2,
color = "black",
fillOpacity = 0.7,
label = ~paste("Comuna: ", NOMBRE, "<br>Pobreza: ", Incidencia_Pobreza, "%")
) %>%
addLegend(
pal = colorQuantile("YlOrRd", domain = data_map$Incidencia_Pobreza),
values = data_map$Incidencia_Pobreza,
title = "Incidencia de Pobreza (%)"
)