library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_NalY.xlsx"
library(readxl)
tasa_NalY <- read_excel("tasa_NalY.xlsx")
View(tasa_NalY)
tasa_NalY <- read_excel(ruta, sheet = "Sheet1")
View(tasa_NalY)
Al analizar el comportamiento de las tasas de mortalidad por desnutrición en menores de cinco años periodo 1979-2023, se evidencia una marcada disminución hasta 1997, entre 1998 y el año 2001 la tendencia es de incremento, no obstante a partir de este año la tendencia sigue en descenso de una forma mas sostenida.
La tendencia muestra que existe una disminución de tasas a lo largo del tiempo (-0.825). El tiempo explica en el 52% la variabilidad en la disminución de las tasas (R cuadrado). Dicha tendencia es estadísticamente significativa (p <0.05).
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
# Reducir a un decimal la variable tasa_DNT_5a
tasa_NalY$tasa_DNT_5a <- round(tasa_NalY$tasa_DNT_5a, 1)
# Calcular la ecuación de la línea de tendencia
modelo <- lm(tasa_DNT_5a ~ year, data = tasa_NalY)
pendiente <- round(coef(modelo)[2], 3)
intercepto <- round(coef(modelo)[1], 2)
r_cuadrado <- round(summary(modelo)$r.squared, 3)
p_valor <- round(summary(modelo)$coefficients[2,4], 4)
# Crear etiqueta con la ecuación de tendencia
ecuacion <- paste0("y = ", intercepto, " + ", pendiente, "x")
estadisticos <- paste0("R² = ", r_cuadrado, ", p = ", p_valor)
# Gráfica de tendencia nacional con ecuación
ggplot(tasa_NalY, aes(x = year, y = tasa_DNT_5a)) +
geom_point(size = 3, color = "#2E86AB", alpha = 0.7) +
geom_line(size = 1, color = "#2E86AB", alpha = 0.7) +
geom_smooth(method = "lm", se = TRUE, color = "#A23B72", fill = "#F8C0C8", alpha = 0.3) +
labs(
title = "Tasa de mortalidad por Desnutrición en menores de cinco años",
subtitle = "Tendencia de las tasas de mortalidad",
x = "Año",
y = "Tasa de mortalidad por Desnutrición",
caption = paste("Línea de tendencia:", ecuacion, "|", estadisticos,
"\nDatos nacionales")
) +
scale_x_continuous(breaks = unique(tasa_NalY$year)) +
scale_y_continuous(labels = function(x) format(x, nsmall = 1)) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0.5, size = 11),
plot.caption = element_text(hjust = 0.5, face = "italic", size = 10),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()
)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'
library(readxl)
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_NalSex.xlsx"
tasa_NalSex <- read_excel(ruta, sheet = "Sheet1")
View(tasa_NalSex)
# Cargar librerías necesarias
library(ggplot2)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
library(broom)
# Reducir a dos decimales la variable tasa_DNT_5a
tasa_NalSex$tasa_DNT_5a <- round(tasa_NalSex$tasa_DNT_5a, 2)
ggplot(tasa_NalSex, aes(x = year, y = tasa_DNT_5a, color = sex, group = sex)) +
geom_point(size = 3, alpha = 0.7) +
geom_line(size = 1, alpha = 0.7) +
labs(
title = "Tasa mortalidad por desnutrición en menores de cinco años",
subtitle = "Análisis de cambios significativos en el tiempo por sexo",
x = "Año",
y = "Tasa de mortalidad por Desnutrición",
color = "Sexo",
fill = "Sexo"
) +
scale_x_continuous(breaks = unique(tasa_NalSex$year)) +
scale_color_manual(values = c("Hombres" = "#1f77b4", "Mujeres" = "#F8C0C8")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5),
legend.position = "top",
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 8),
plot.margin = margin(10, 10, 20, 10), # Aumenta margen inferior para etiquetas
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
En la gráfica se evidencian cambios significativos sostenidos de disminución en las tasas de desnutrición en menores de 5 años a lo largo del tiempo, con un ligero incremento entre 1998 y 2002, luego se recupera la tendencia a la disminución, este patron es similar en ambos sexos.
AL realizar un analisis por ANOVA se evidencia que las tasas DNT muestran cambios significativos a través del tiempo (p < 0.001), no hay diferencias significativas entre sexos (p = 0.428) y el modelo explica aproximadamente 52.6 % de la variabilidad en las tasas.
# 1. Análisis estadístico: Modelo para evaluar cambios por tiempo y sexo
modelo <- lm(tasa_DNT_5a ~ year * sex, data = tasa_NalSex)
# Resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = tasa_DNT_5a ~ year * sex, data = tasa_NalSex)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.2718 -5.7694 -0.4246 4.7514 27.7284
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1774.7886 240.2562 7.387 9.03e-11 ***
## year -0.8775 0.1201 -7.308 1.30e-10 ***
## sexMujeres -212.5922 339.7736 -0.626 0.533
## year:sexMujeres 0.1054 0.1698 0.621 0.537
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.46 on 86 degrees of freedom
## Multiple R-squared: 0.5259, Adjusted R-squared: 0.5094
## F-statistic: 31.8 on 3 and 86 DF, p-value: 6.305e-14
# Análisis de varianza (ANOVA) para ver efectos principales e interacción
anova_result <- anova(modelo)
print(anova_result)
## Analysis of Variance Table
##
## Response: tasa_DNT_5a
## Df Sum Sq Mean Sq F value Pr(>F)
## year 1 10326.8 10326.8 94.3816 1.725e-15 ***
## sex 1 69.4 69.4 0.6347 0.4278
## year:sex 1 42.1 42.1 0.3851 0.5365
## Residuals 86 9409.7 109.4
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(readxl)
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_dptoY.xlsx"
tasa_dptoY <- read_excel(ruta, sheet = "Sheet1")
View(tasa_dptoY)
En la gráfica se encuentra el comportamiento de las tasas promedio de mortalidad por Desnutrición en el periodo evaluado por cada departamento.
# Ordenar departamentos por tasa promedio para mejor visualización
tasa_dptoY_ordenado <- tasa_dptoY %>%
group_by(departamento) %>%
mutate(tasa_promedio = mean(tasa_DNT_5a, na.rm = TRUE)) %>%
ungroup() %>%
mutate(departamento = reorder(departamento, -tasa_promedio))
# Gráfica con todos los departamentos ordenados
ggplot(tasa_dptoY_ordenado, aes(x = year, y = tasa_DNT_5a)) +
geom_line(aes(group = departamento), color = "steelblue", alpha = 0.7) +
geom_point(size = 1, color = "steelblue", alpha = 0.7) +
facet_wrap(~ departamento, scales = "free_y") +
labs(
title = "Tasa de mortalidad por Desnutrición según Departamento",
subtitle = "Departamentos ordenados por tasa promedio (de mayor a menor)",
x = "Año",
y = "Tasa mortalidad por Desnutrición"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 6),
axis.text.y = element_text(size = 6),
strip.text = element_text(size = 8),
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
Al analizar la variación de las tasas de mortalidad por Desnutrición en menores de cinco años por Departamento se encuentra que en el top 5 de los Departamentos con tasas promedio superiores son: Vichada (48.3), Guainía (44.9), Chocó (38.8), Amazonas (37.6) y La Guajira (35.9). Mientras que en el top 5 de los departamentos con tasa promedio inferior son: Boyacá (7.1), Cundinamarca (6), Casanare (4.8), San Andrés, Providencia y Santa Catalina (4.8) y Bogotá DC (2.6).
library(tidyr)
## Warning: package 'tidyr' was built under R version 4.3.3
# 1. Identificar departamentos con mayores y menores tasas promedio
resumen_dptos <- tasa_dptoY %>%
group_by(departamento) %>%
summarise(
tasa_promedio = mean(tasa_DNT_5a, na.rm = TRUE),
tasa_maxima = max(tasa_DNT_5a, na.rm = TRUE),
tasa_minima = min(tasa_DNT_5a, na.rm = TRUE),
n_anios = n()
) %>%
arrange(desc(tasa_promedio))
# Mostrar los 5 departamentos con mayores y menores tasas
cat("=== DEPARTAMENTOS CON MAYORES TASAS ===\n")
## === DEPARTAMENTOS CON MAYORES TASAS ===
print(head(resumen_dptos, 5))
## # A tibble: 5 × 5
## departamento tasa_promedio tasa_maxima tasa_minima n_anios
## <chr> <dbl> <dbl> <dbl> <int>
## 1 Vichada 48.4 141. 0 39
## 2 Guainía 44.9 134. 0 39
## 3 Chocó 38.8 87.4 10.6 39
## 4 Amazonas 37.6 103. 0 39
## 5 La Guajira 36.0 97.6 2.48 39
cat("\n=== DEPARTAMENTOS CON MENORES TASAS ===\n")
##
## === DEPARTAMENTOS CON MENORES TASAS ===
print(tail(resumen_dptos, 5))
## # A tibble: 5 × 5
## departamento tasa_promedio tasa_maxima tasa_minima n_anios
## <chr> <dbl> <dbl> <dbl> <int>
## 1 Boyacá 7.09 17.1 0 39
## 2 Cundinamarca 5.99 18.9 0 39
## 3 Casanare 4.83 13.3 0 39
## 4 San Andrés, Providencia y Santa… 4.80 57.1 0 39
## 5 Bogotá, D.C. 2.58 7.61 0 39
# 2. Seleccionar los 6 departamentos más extremos (3 altos y 3 bajos)
dptos_extremos <- bind_rows(
head(resumen_dptos, 3), # 3 con mayores tasas
tail(resumen_dptos, 3) # 3 con menores tasas
)
# 3. Filtrar el dataset original para estos departamentos
datos_extremos <- tasa_dptoY %>%
filter(departamento %in% dptos_extremos$departamento) %>%
mutate(grupo = ifelse(departamento %in% head(resumen_dptos, 3)$departamento,
"Tasa alta", "Tasa baja"))
# 4. Gráfica con facet_wrap
ggplot(datos_extremos, aes(x = year, y = tasa_DNT_5a, group = departamento)) +
geom_line(aes(color = grupo), size = 1.2, alpha = 0.8) +
geom_point(aes(color = grupo), size = 2) +
facet_wrap(~ departamento, scales = "free_y", ncol = 2) +
labs(
title = "Tasas de Mortalidad por Desnutrición en menores de cinco años",
subtitle = "Comparativo departamentos con tasas más altas y más bajas",
x = "Año",
y = "Tasa de Mortalidad por Desnutrición",
color = "Tasas"
) +
scale_color_manual(values = c("Tasa alta" = "#F44336", "Tasa baja" = "#4CAF50")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 12), # Reducido de 14 a 12
plot.subtitle = element_text(hjust = 0.5, size = 10), # Reducido de 11 a 10
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
strip.background = element_rect(fill = "gray90"),
strip.text = element_text(face = "bold"),
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
library(readxl)
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_dptoSex.xlsx"
tasa_dptoSex <- read_excel(ruta, sheet = "Sheet1")
View(tasa_dptoSex)
En cuanto a la distribución por Sexo, la tasa de mortalidad en los Departamentos con tasas mas altas y bajas se evidencia que no hay un patrón marcado. La mortalidad por desnutrición se presenta independientemente del sexo.
# 1. Calcular tasas promedio por departamento (promediando ambos sexos)
resumen_dptos <- tasa_dptoSex %>%
group_by(departamento) %>%
summarise(
tasa_promedio = mean(tasa_DNT_5a, na.rm = TRUE),
n_observaciones = n()
) %>%
arrange(desc(tasa_promedio))
# 2. Identificar los 3 departamentos con mayores y menores tasas
dptos_altos <- head(resumen_dptos, 3)$departamento
dptos_bajos <- tail(resumen_dptos, 3)$departamento
cat("=== 3 DEPARTAMENTOS CON MAYORES TASAS ===\n")
## === 3 DEPARTAMENTOS CON MAYORES TASAS ===
print(dptos_altos)
## [1] "Vichada" "Guainía" "Chocó"
cat("\n=== 3 DEPARTAMENTOS CON MENORES TASAS ===\n")
##
## === 3 DEPARTAMENTOS CON MENORES TASAS ===
print(dptos_bajos)
## [1] "Casanare"
## [2] "San Andrés, Providencia y Santa Catalina"
## [3] "Bogotá, D.C."
# 3. Filtrar el dataset para estos departamentos
datos_seleccionados <- tasa_dptoSex %>%
filter(departamento %in% c(dptos_altos, dptos_bajos)) %>%
mutate(grupo_tasa = ifelse(departamento %in% dptos_altos,
"Alta tasa", "Baja tasa"),
departamento_grupo = paste0(departamento, " (", grupo_tasa, ")"))
# Ordenar los datos para que muestre primero tasas altas y luego bajas
datos_seleccionados <- datos_seleccionados %>%
mutate(
# Crear variable de ordenamiento
orden_grupo = ifelse(grepl("Alta", departamento_grupo), 1, 2),
# Ordenar los departamentos dentro de cada grupo
departamento_ordenado = reorder(departamento_grupo, orden_grupo)
)
# 4. Gráfica comparativa por sexo con facet_wrap
ggplot(datos_seleccionados, aes(x = year, y = tasa_DNT_5a, color = sex, group = sex)) +
geom_line(size = 1.2, alpha = 0.8) +
geom_point(size = 2, alpha = 0.8) +
facet_wrap(~ departamento_ordenado, scales = "free_y", ncol = 2) +
labs(
title = "Tasas de Mortalidad por Desnutrición en Departamentos Extremos",
subtitle = "Evolución de las tasas más altas y más bajas por sexo",
x = "Año",
y = "Tasa de Mortalidad por Desnutrición",
color = "Sexo"
) +
scale_color_manual(values = c("Hombres" = "steelblue", "Mujeres" = "salmon")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 10), # Reducido de 14 a 12
plot.subtitle = element_text(hjust = 0.5, size = 10), # Reducido de 11 a 10
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 8), # Reducido tamaño
axis.text.y = element_text(size = 8), # Reducir eje Y también
axis.title = element_text(size = 10), # Títulos de ejes más pequeños
strip.background = element_rect(fill = "gray90"),
strip.text = element_text(face = "bold", size = 7), # Reducido de 10 a 9
legend.position = "top",
legend.text = element_text(size = 9), # Texto de leyenda
legend.title = element_text(size = 10), # Título de leyenda
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
library(readxl)
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_mcpioY.xlsx"
tasa_mcpioY <- read_excel(ruta, sheet = "Sheet1")
View(tasa_mcpioY)
Al analizar el comportamiento de las tasas de mortalidad por municipio se evidencia que los municipios que muestran un promedio alto en las tasas de mortalidad son Pueblo Rico (Risaralda) con 143.3, Puerto Carreño (Vichada) con 94.5, Curillo (Caquetá) con 93.7 y Carmen de Atrato (Chocó) con 91.8.
Los municipios con alta variación de tasa de mortalidad son: Betéitiva (Boyacá) con una tasa promedio 9.9 y una desviación estándar de 62, seguido de Casabianca (Tolima) con una tasa promedio 2.8 y una desviación estándar de 17.4, en tercer lugar se encuentra El Peñón (Cundinamarca) con una tasa promedio 2.1 y una desviación estándar de 13.2 y por último, Enciso (Santander) con una tasa promedio 4.1 y una desviación estándar de 25.8.
# 1. Calcular métricas por municipio
resumen_municipios <- tasa_mcpioY %>%
group_by(municipio) %>%
summarise(
tasa_promedio = mean(tasa_DNT_5a, na.rm = TRUE),
desviacion_estandar = sd(tasa_DNT_5a, na.rm = TRUE),
coef_variacion = (sd(tasa_DNT_5a, na.rm = TRUE) / mean(tasa_DNT_5a, na.rm = TRUE)) * 100,
n_anios_alta_tasa = sum(tasa_DNT_5a > quantile(tasa_DNT_5a, 0.75, na.rm = TRUE), na.rm = TRUE),
prop_anios_alta = n_anios_alta_tasa / n(),
n_anios = n()
) %>%
filter(n_anios >= 3)
# 2. Identificar municipios con tasas sostenidamente altas (top 4)
municipios_altos_sostenidos <- resumen_municipios %>%
arrange(desc(tasa_promedio), desc(prop_anios_alta)) %>%
head(4)
# 3. Filtrar SOLO los municipios con altas tasas sostenidas
datos_seleccionados <- tasa_mcpioY %>%
filter(municipio %in% municipios_altos_sostenidos$municipio) %>%
left_join(resumen_municipios %>% select(municipio, tasa_promedio, coef_variacion),
by = "municipio") %>%
mutate(
grupo = "Alta tasa sostenida",
# Ordenar municipios por tasa promedio (de mayor a menor)
municipio_ordenado = reorder(municipio, -tasa_promedio)
)
# 4. Gráfica SOLO con municipios de alta tasa sostenida
ggplot(datos_seleccionados, aes(x = year, y = tasa_DNT_5a, group = municipio)) +
geom_line(color = "#e74c3c", size = 1.2, alpha = 0.8) +
geom_point(color = "#e74c3c", size = 2, alpha = 0.8) +
geom_hline(aes(yintercept = tasa_promedio), linetype = "dashed", alpha = 0.5, color = "#e74c3c") +
facet_wrap(~ municipio_ordenado, scales = "free_y", ncol = 2) +
labs(
title = "Municipios con Tasas altas sostenidas de Mortalidad por Desnutrición",
subtitle = "Evolución temporal en los municipios más críticos",
x = "Año",
y = "Tasa de Mortalidad por Desnutrición",
color = NULL
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
plot.subtitle = element_text(hjust = 0.5, size = 10),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
strip.background = element_rect(fill = "gray90"),
strip.text = element_text(face = "bold", size = 10),
legend.position = "none", # Quitamos la leyenda ya que solo hay un grupo
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
# Calcular tendencias sin librerías adicionales
tendencias_altas <- datos_seleccionados %>%
filter(grupo == "Alta tasa sostenida") %>%
group_by(municipio) %>%
summarise(
# Calcular la pendiente manualmente si hay error con lm()
n = n(),
sum_x = sum(year),
sum_y = sum(tasa_DNT_5a),
sum_xy = sum(year * tasa_DNT_5a),
sum_x2 = sum(year^2),
tendencia = round((n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x^2), 2),
.groups = 'drop'
)
# Continuar con el mismo código...
datos_altas_sostenidas <- datos_seleccionados %>%
filter(grupo == "Alta tasa sostenida") %>%
left_join(tendencias_altas, by = "municipio") %>%
mutate(
etiqueta = paste0(municipio, "\nProm: ", round(tasa_promedio, 1), " | Tend: ", tendencia),
etiqueta_ordenada = reorder(etiqueta, -tasa_promedio)
)
ggplot(datos_altas_sostenidas, aes(x = year, y = tasa_DNT_5a)) +
geom_line(color = "#e74c3c", size = 1.2) +
geom_point(color = "#e74c3c", size = 2) +
facet_wrap(~ etiqueta_ordenada, scales = "free_y", ncol = 2) +
labs(
title = "Municipios con Tasas altas de mortalidad por Desnutrición",
x = "Año",
y = "Tasa de mortalidad"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)
En cuanto al comportamiento del sexo en los municipios con altas tasas de mortalidad se encuentra que la tasa promedio para mujeres en Curillo (Caquetá) es ligeramente mayor (101.4 vs 86.6), en El Carmen de Atrato (Chocó) también es mayor (99.4 y 84.6) al igual que en Puerto Carreño (Vichada) (111.9 vs 78.8), mientras que en Pueblo Rico (Risaralda) la tasa promedio es mayor en hombres (148.2 vs 137.4).
library(readxl)
ruta <- "E:/One_Drive_PUJ/OneDrive - PUJ Cali/PERSONAL/ASESORIAS/CLAU/tasa_mcpioSex.xlsx"
tasa_mcpioSex <- read_excel(ruta, sheet = "Sheet1")
View(tasa_mcpioSex)
# 1. Filtrar los municipios específicos
municipios_objetivo <- c("Pueblo Rico (Risaralda)", "Puerto Carreño (Vichada)",
"Curillo (Caquetá)", "El Carmen de Atrato (Chocó)")
datos_filtrados <- tasa_mcpioSex %>%
filter(municipio %in% municipios_objetivo)
# Verificar que los municipios existen en el dataset
cat("=== MUNICIPIOS ENCONTRADOS EN EL DATASET ===\n")
## === MUNICIPIOS ENCONTRADOS EN EL DATASET ===
print(unique(datos_filtrados$municipio))
## [1] "Curillo (Caquetá)" "El Carmen de Atrato (Chocó)"
## [3] "Pueblo Rico (Risaralda)" "Puerto Carreño (Vichada)"
# 2. Calcular resumen estadístico por municipio y sexo
resumen_municipios <- datos_filtrados %>%
group_by(municipio, sex) %>%
summarise(
tasa_promedio = mean(tasa_DNT_5a, na.rm = TRUE),
tasa_maxima = max(tasa_DNT_5a, na.rm = TRUE),
tasa_minima = min(tasa_DNT_5a, na.rm = TRUE),
n_anios = n(),
.groups = 'drop'
)
cat("\n=== RESUMEN POR MUNICIPIO Y SEXO ===\n")
##
## === RESUMEN POR MUNICIPIO Y SEXO ===
print(resumen_municipios)
## # A tibble: 8 × 6
## municipio sex tasa_promedio tasa_maxima tasa_minima n_anios
## <chr> <chr> <dbl> <dbl> <dbl> <int>
## 1 Curillo (Caquetá) Homb… 86.9 661. 0 39
## 2 Curillo (Caquetá) Muje… 101. 539. 0 39
## 3 El Carmen de Atrato (Choc… Homb… 84.6 744. 0 39
## 4 El Carmen de Atrato (Choc… Muje… 99.4 554. 0 39
## 5 Pueblo Rico (Risaralda) Homb… 148. 591. 0 39
## 6 Pueblo Rico (Risaralda) Muje… 137. 683. 0 39
## 7 Puerto Carreño (Vichada) Homb… 78.8 489. 0 39
## 8 Puerto Carreño (Vichada) Muje… 112. 562. 0 39
# 3. Gráfica comparativa con facet_wrap
ggplot(datos_filtrados, aes(x = year, y = tasa_DNT_5a, color = sex, group = sex)) +
geom_line(size = 1.2, alpha = 0.8) +
geom_point(size = 2, alpha = 0.8) +
facet_wrap(~ municipio, scales = "free_y", ncol = 2) +
labs(
title = "Tasas de Mortalidad por Desnutrición en menores de cinco años",
subtitle = "Análisis comparativo por sexo en municipios con tasas altas sostenidas",
x = "Año",
y = "Tasa de Mortalidad por Desnutrición",
color = "Sexo"
) +
scale_color_manual(values = c("Hombres" = "#3498db", "Mujeres" = "#e74c3c",
"Hombre" = "#3498db", "Mujer" = "#e74c3c",
"Masculino" = "#3498db", "Femenino" = "#e74c3c")) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
plot.subtitle = element_text(hjust = 0.5, size = 10),
axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
strip.background = element_rect(fill = "gray90"),
strip.text = element_text(face = "bold", size = 10),
legend.position = "top",
panel.grid.major = element_blank(), # Eliminar cuadrículas principales
panel.grid.minor = element_blank() # Eliminar cuadrículas menores
)