Introducción Este documento presenta el análisis de atenciones por VIH en la región Pacífico colombiana durante el período 2009-2019, utilizando datos del cubo RIPS de SISPRO. El análisis se centra en tres preguntas específicas sobre patrones por sexo, distribución geográfica y tendencias temporales.

# Estructura básica de los datos
glimpse(base_final_long)
## Rows: 3,894
## Columns: 6
## $ codigo_municipio <chr> "19001", "19001", "19001", "19001", "19001", "19001",…
## $ nombre_municipio <chr> "Popayán", "Popayán", "Popayán", "Popayán", "Popayán"…
## $ Sexo             <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F"…
## $ Fuente           <chr> "RIPS", "RIPS", "RIPS", "RIPS", "RIPS", "RIPS", "RIPS…
## $ anio             <int> 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,…
## $ casos            <dbl> 248, 493, 1174, 2230, 3394, 4667, 6774, 8722, 11429, …
head(base_final_long)
summary(base_final_long)
##  codigo_municipio   nombre_municipio       Sexo              Fuente         
##  Length:3894        Length:3894        Length:3894        Length:3894       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       anio          casos       
##  Min.   :2009   Min.   :     1  
##  1st Qu.:2011   1st Qu.:    27  
##  Median :2014   Median :   116  
##  Mean   :2014   Mean   :  1542  
##  3rd Qu.:2017   3rd Qu.:   381  
##  Max.   :2019   Max.   :339004  
##                 NA's   :1233
# Verificar las variables principales
cat("Variables disponibles:", names(base_final_long), "\n")
## Variables disponibles: codigo_municipio nombre_municipio Sexo Fuente anio casos
cat("Años únicos:", sort(unique(base_final_long$anio)), "\n")
## Años únicos: 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
cat("Sexos únicos:", unique(base_final_long$Sexo), "\n")
## Sexos únicos: F M
cat("Total de municipios únicos:", length(unique(base_final_long$nombre_municipio)), "\n")
## Total de municipios únicos: 173

Análisis de la estructura de datos

Con base en los resultados obtenidos del análisis exploratorio, observo características fundamentales de la base de datos que me permiten comprender la dimensión del problema epidemiológico estudiado.

Características temporales y geográficas: La base de datos abarca un período de seguimiento de 11 años (2009-2019), lo que constituye una ventana temporal robusta para identificar tendencias epidemiológicas. Se registran datos de 173 municipios únicos de la región Pacífico, representando una cobertura geográfica amplia que incluye tanto centros urbanos principales como municipios de menor tamaño poblacional.

Distribución y variabilidad de casos: La variable casos presenta una distribución altamente asimétrica, con una mediana de 116 casos pero una media considerablemente superior (1.542 casos), indicando la presencia de valores extremos que sesgan la distribución hacia la derecha. Esta asimetría me sugiere que existe una marcada concentración de casos en ciertos municipios o períodos específicos, mientras que la mayoría de observaciones registran valores relativamente bajos. El valor máximo de 339.004 casos contrasta notablemente con el mínimo de 1 caso, evidenciando una heterogeneidad sustancial en la carga de atenciones por VIH entre diferentes contextos municipales y temporales.

Implicaciones epidemiológicas: La presencia de 1.233 valores perdidos (NA’s) representa un 31.7% del total de observaciones, lo cual considero que requiere atención metodológica en los análisis posteriores. Esta proporción de datos faltantes podría reflejar limitaciones en los sistemas de información o diferencias en la capacidad de registro entre municipios, aspecto que debo considerar en la interpretación de resultados.

La estructura de los datos me confirma que se trata de un panel longitudinal desbalanceado, donde no todos los municipios tienen registros completos para todos los años del período de estudio, patrón típico en bases de datos administrativas del sector salud.

# procedo a crear código de departamento y variable departamento
base_final_long <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca", 
      Codigo == "27" ~ "Choco",
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Desconocido"
    )
  )

# Verificar la creación de departamentos
tabla_departamentos <- base_final_long %>% 
  count(Departamento, sort = TRUE)

tabla_departamentos
# Estadísticas por departamento
base_final_long %>%
  group_by(Departamento) %>%
  summarise(
    municipios = n_distinct(nombre_municipio),
    total_casos = sum(casos, na.rm = TRUE),
    promedio_casos = round(mean(casos, na.rm = TRUE), 1),
    .groups = "drop"
  )

Análisis de la distribución departamental

Los resultados revelan patrones epidemiológicos y de servicios de salud claramente diferenciados entre los departamentos de la región Pacífico, con implicaciones significativas para la planificación sanitaria.

Concentración de la carga de enfermedad: Valle del Cauca emerge como el epicentro de las atenciones por VIH en la región, concentrando 3.198.179 casos (71.8% del total regional) con un promedio extraordinariamente alto de 3.933.8 casos por observación. Esta cifra refleja tanto el mayor tamaño poblacional del departamento como la posible concentración de servicios especializados que atraen pacientes de otros territorios, fenómeno conocido como “efecto referencia”.

Disparidades inter-departamentales: Se evidencia una marcada heterogeneidad en la distribución de casos. Nariño, con el mayor número de municipios incluidos (64), registra 443.753 casos totales pero un promedio considerablemente menor (479.2 casos), sugiriendo una distribución más homogénea entre sus municipios. Cauca presenta un patrón intermedio con 403.052 casos distribuidos en 42 municipios (promedio: 604.3 casos), mientras que Chocó muestra la menor carga absoluta (59.223 casos en 29 municipios, promedio: 232.2 casos).

Consideraciones metodológicas: La diferencia sustancial entre el número de observaciones por departamento (Nariño: 1.408 vs. Chocó: 638) considero que podría reflejar tanto diferencias en la cobertura territorial como en la calidad y completitud de los sistemas de información, por lo que esta variabilidad en la representación debe considerarse en análisis comparativos posteriores.

Implicaciones para la política pública: Los hallazgos me sugieren la necesidad de estrategias diferenciadas por departamento, con Valle del Cauca requiriendo enfoques de alto volumen y posible fortalecimiento de la red de referencia, mientras que Chocó podría beneficiarse de intervenciones focalizadas en acceso y detección temprana.

# Análisis de tendencia temporal general
tendencia_anual <- base_final_long %>%
  group_by(anio) %>%
  summarise(
    total_casos = sum(casos, na.rm = TRUE),
    promedio_casos = round(mean(casos, na.rm = TRUE), 1),
    municipios_activos = n_distinct(nombre_municipio[!is.na(casos)]),
    .groups = "drop"
  ) %>%
  arrange(anio)

tendencia_anual
# procedo a calcular tasa de crecimiento anual
tendencia_anual <- tendencia_anual %>%
  mutate(
    crecimiento_absoluto = total_casos - lag(total_casos),
    crecimiento_relativo = round(((total_casos / lag(total_casos)) - 1) * 100, 1)
  )

# Ver los años con mayor crecimiento
tendencia_anual %>%
  filter(!is.na(crecimiento_relativo)) %>%
  arrange(desc(crecimiento_relativo)) %>%
  head()

Análisis de la evolución temporal: Los resultados muestran una tendencia epidemiológica alarmante por el crecimiento exponencial sostenido, donde la serie temporal muestra un incremento continuo, con los casos totales en ascenso desde 18.099 en 2009 hasta 766.539 en 2018, representando un crecimiento acumulado del 4.137%. Esta progresión me sugiere que no se trata de fluctuaciones aleatorias sino de una tendencia estructural que amerita investigación profunda sobre sus determinantes. Aceleración del crecimiento: Los incrementos anuales muestran una tendencia acelerada, especialmente notable entre 2011-2012 (incremento de 92.725 casos) y 2012-2013 (73.547 casos). El promedio de casos por observación se multiplicó por 18.5 durante el período, pasando de 140.3 a 2.598.4 casos, indicando no solo mayor volumen sino también mayor intensidad en la utilización de servicios. Expansión de la cobertura territorial: El número de municipios activos creció progresivamente de 85 en 2009 a 158 en 2018, sugiriendo tanto una mejora en los sistemas de información como una posible extensión geográfica del fenómeno epidemiológico. Esta expansión territorial plantea desafíos importantes para la coordinación de respuestas de salud pública. Considero que el crecimiento observado podría reflejar múltiples factores concurrentes como mejora en la detección y registro de casos, cambios en las definiciones operativas, expansión de la oferta de servicios, modificaciones en los flujos de atención, o un aumento real en la incidencia de la condición. Además La magnitud del incremento sugiere que factores metodológicos y administrativos podrían estar influyendo significativamente en las cifras observadas.

¿La tendencia es creciente o decreciente?## La tendencia es creciente

Agrupo por año y calculo el total de casos Grafico la tendencia para visualizarla.

# Paso 1: Agrupo por año y calculo total de casos
tendencia <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca",
      Codigo == "27" ~ "Chocó",
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Otro"
    )
  ) %>%
  filter(Departamento != "Otro") %>%
  group_by(anio) %>%
  summarise(total_casos = sum(casos, na.rm = TRUE), .groups = "drop") %>%
  arrange(anio)

# Mostrar los datos
tendencia
# Paso 2: Comparo primer y último año
primer_año <- tendencia$anio[1]
ultimo_año <- tendencia$anio[nrow(tendencia)]
casos_inicial <- tendencia$total_casos[1]
casos_final <- tendencia$total_casos[nrow(tendencia)]

cat("Primer año:", primer_año, "con", format(casos_inicial, big.mark = ","), "casos\n")
## Primer año: 2009 con 18,099 casos
cat("Último año:", ultimo_año, "con", format(casos_final, big.mark = ","), "casos\n")
## Último año: 2019 con 835,642 casos
cat("Diferencia absoluta:", format(casos_final - casos_inicial, big.mark = ","), "casos\n")
## Diferencia absoluta: 817,543 casos
cat("Crecimiento porcentual:", round(((casos_final/casos_inicial) - 1) * 100, 1), "%\n")
## Crecimiento porcentual: 4517.1 %
# Paso 3: Determino tendencia
if (casos_final > casos_inicial) {
  cat("CONCLUSIÓN: La tendencia es CRECIENTE\n")
} else if (casos_final < casos_inicial) {
  cat("CONCLUSIÓN: La tendencia es DECRECIENTE\n") 
} else {
  cat("CONCLUSIÓN: No hay cambio en la tendencia\n")
}
## CONCLUSIÓN: La tendencia es CRECIENTE
# Paso 4: Gráfico de tendencia
ggplot(tendencia, aes(x = anio, y = total_casos)) +
  geom_line(size = 1.2, color = "darkblue") +
  geom_point(size = 2.5, color = "darkred") +
  scale_y_continuous(labels = scales::comma_format()) +
  scale_x_continuous(breaks = seq(2009, 2019, 1)) +
  labs(
    title = "Tendencia anual de casos por VIH",
    subtitle = "Región Pacífico, 2009-2018",
    x = "Año",
    y = "Total de casos"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

## Análisis integral de la tendencia temporal

La evaluación sistemática de la serie temporal me muestra un patrón epidemiológico alarmante, ya que los datos evidencian un crecimiento exponencial sostenido desde 18,099 casos en 2009 hasta 766,539 casos en 2018, representando un incremento absoluto de 748,440 casos y un crecimiento relativo del 4,137%, además la progresión trasciende patrones lineales típicos, manifestando aceleración exponencial con tres fases identificables: crecimiento inicial moderado (2009-2011), aceleración intermedia (2012-2015), y expansión explosiva (2016-2018). Esta periodización me sugiere factores estructurales acumulativos más que eventos puntuales.

Magnitud epidemiológica: El incremento promedio anual supera el 42%, con aceleraciones particularmente notables en 2012 (+106%) y 2014 (+40%). Estos saltos cuantitativos pueden indicar posibles cambios en metodologías de registro, expansión de servicios, o modificaciones en definiciones operativas que requieren investigación específica.En salud pública esta consistencia del crecimiento exponencial durante una década completa trasciende las fluctuaciones administrativas típicas, sugiriendo fenómenos epidemiológicos reales que demandan respuestas coordinadas, sostenidas y basadas en evidencia para interrumpir la trayectoria ascendente observada.

# Análisis por sexo a nivel general
distribucion_sexo <- base_final_long %>%
  group_by(Sexo) %>%
  summarise(
    casos_totales = sum(casos, na.rm = TRUE),
    promedio_casos = round(mean(casos, na.rm = TRUE), 1),
    mediana_casos = median(casos, na.rm = TRUE),
    desv_estandar = round(sd(casos, na.rm = TRUE), 1),
    .groups = "drop"
  ) %>%
  mutate(porcentaje = round(casos_totales / sum(casos_totales) * 100, 1))

distribucion_sexo
# Tendencia por sexo y año
tendencia_sexo_anio <- base_final_long %>%
  group_by(anio, Sexo) %>%
  summarise(
    total_casos = sum(casos, na.rm = TRUE),
    promedio = round(mean(casos, na.rm = TRUE), 1),
    .groups = "drop"
  ) %>%
  arrange(anio, Sexo)

# Procedo a ver algunos años clave
tendencia_sexo_anio %>%
  filter(anio %in% c(2009, 2014, 2018))
# Prueba t-test para diferencias significativas
t_test_resultado <- t.test(casos ~ Sexo, data = base_final_long)
t_test_resultado
## 
##  Welch Two Sample t-test
## 
## data:  casos by Sexo
## t = -2.3492, df = 1719.2, p-value = 0.01893
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
##  -2122.7466  -191.0124
## sample estimates:
## mean in group F mean in group M 
##        950.6554       2107.5349

Este análisis por sexo revela una disparidad significativa en los patrones de atención en salud asociados al VIH, ddo que la prueba t de Student me muestra que los hombres presentan un promedio mucho mayor de casos por observación (2.107,5) en comparación con las mujeres (950,7), con una diferencia estadísticamente significativa (p = 0,0189). Esta brecha no solo es amplia (1.156,8 casos más en hombres por observación), sino también constante en el tiempo, con una razón de masculinidad promedio de 2,32:1. Además, la mayor desviación estándar en hombres puede sugerir que sus patrones de atención son más heterogéneos, posiblemente por diferencias regionales, culturales o de acceso. Aunque ambos sexos muestran crecimiento exponencial en atenciones, los hombres presentan una mayor tasa de crecimiento absoluto y una aceleración más pronunciada post-2012, lo cual indica una tendencia a ampliar la brecha, tanto en términos absolutos como relativos.

Estos hallazgos refuerzan la necesidad de políticas de salud pública más sensibles al género, que integren tanto la epidemiología del VIH como las barreras estructurales en el acceso a diagnóstico y tratamiento, especialmente considerando que los hombres presentan la mayor carga de casos y el crecimiento más acelerado.

# Gráfico de tendencia por sexo para toda la región
tend_region_sexo <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca",
      Codigo == "27" ~ "Chocó",
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Otro"
    )
  ) %>%
  filter(Departamento != "Otro") %>%
  group_by(anio, Sexo) %>%
  summarise(total_anual = sum(casos, na.rm = TRUE), .groups = "drop")

ggplot(tend_region_sexo, aes(x = anio, y = total_anual, color = Sexo)) +
  geom_line(size = 1.2) +
  geom_point(size = 2) +
  scale_y_continuous(labels = scales::comma_format()) +
  scale_x_continuous(breaks = seq(2009, 2019, 2)) +
  labs(
    title = "Región Pacífico: Evolución temporal por sexo",
    subtitle = "Total de atenciones por VIH, 2009-2019", 
    x = "Año",
    y = "Total de atenciones",
    color = "Sexo"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

Interpretación estadística y epidemiológica de las diferencias por sexo: En el gráfico encuentro una tendencia creciente sostenida en el total de atenciones por VIH en la Región Pacífico, pero lo que me llama la atención es la divergencia marcada entre sexos. Mientras que en 2009 la diferencia entre hombres y mujeres era relativamente baja (alrededor de 10.000 casos), para 2018 esta brecha se amplía dramáticamente a más de 340.000 atenciones, con los hombres alcanzando cerca de 580.000 casos frente a 240.000 en mujeres, por lo que esta evolución refleja no solo un crecimiento absoluto en ambos grupos sino también un patrón epidemiológico que profundiza la desigualdad entre sexos.

Desde el punto de vista estadístico, la prueba t de Student arrojó un valor t = -2.3492 con un valor p = 0.0189, lo cual me permite rechazar la hipótesis nula de igualdad de medias entre sexos, bajo un nivel de significancia del 5% (α = 0.05). Es decir, esta diferencia no es producto del azar, ya que existe una evidencia estadística de que los hombres están siendo atendidos en mayor proporción. Sin embargo, más allá de la significancia estadística, lo importante es la magnitud del fenómeno, puesto que Una razón de atención de aproximadamente 2,4:1 a favor del sexo masculino implica que, por cada mujer atendida, hay casi dos hombres en la misma situación.

Este hallazgo tiene implicaciones importante pues no se trata solo de cifras, sino de vidas, contextos sociales y barreras estructurales. La persistencia y ampliación de esta brecha a lo largo de la década sugiere que las estrategias de prevención y atención no han logrado equilibrar el acceso ni el impacto por sexo. Por ejemplo, en la línea azul aguamarina del gráfico esta representando a los hombres, y muestra una pendiente más pronunciada desde 2012, lo que indica un incremento acelerado en este grupo, en contraste las mujeres presentan un crecimiento más pausado y constante, lo que podría reflejar tanto diferencias en la exposición como en el acceso a los servicios.

Desde una perspectiva epidemiológica, este patrón exige una respuesta diferenciada en salud pública, pues no basta con intervenciones generalizadas, ya que creo que se requieren enfoques específicos que reconozcan el peso desproporcionado que el VIH sigue teniendo en poblaciones masculinas, sin descuidar las particularidades del contexto femenino, donde factores como el diagnóstico tardío, el estigma o la violencia pueden jugar roles invisibilizados. Así que esta gráfica no solo muestra una tendencia sino que me hace pensar en la efectividad de nuestras políticas actuales y la necesidad urgente de enfoques más sensibles al género, sostenidos en la evidencia y orientados a cerrar una brecha que, lejos de reducirse,parece que se sigue profundizando.

# PREGUNTA 1: Análisis para Nariño
# Filtrar solo Nariño y calcular por sexo y año
datos_narino <- base_final_long %>%
  filter(Departamento == "Nariño") %>%
  group_by(anio, Sexo) %>%
  summarise(total_casos = sum(casos, na.rm = TRUE), .groups = "drop")

# Estadísticas descriptivas por sexo para Nariño
stats_narino <- datos_narino %>%
  group_by(Sexo) %>%
  summarise(
    media = round(mean(total_casos, na.rm = TRUE), 1),
    desviacion = round(sd(total_casos, na.rm = TRUE), 1),
    n_observaciones = n(),
    .groups = "drop"
  )

stats_narino
# Prueba t-test para Nariño
t_test_narino <- t.test(total_casos ~ Sexo, data = datos_narino)
t_test_narino
## 
##  Welch Two Sample t-test
## 
## data:  total_casos by Sexo
## t = -1.6014, df = 16.299, p-value = 0.1285
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
##  -26583.425   3684.697
## sample estimates:
## mean in group F mean in group M 
##        14445.91        25895.27
# Guardar tabla para mi reporte
save_tab(stats_narino, "pregunta1_estadisticas_narino", c("xlsx", "csv"))

Análisis por sexo en el departamento de Nariño: En el departamento de Nariño, los hombres presentan en promedio 25.895,3 atenciones anuales por VIH, mientras que las mujeres alcanzan 14.445,9. Considero que esto representa una diferencia absoluta de más de 11.400 casos en promedio por año, pero para saber si esa diferencia observada es real o si es producto del azar o de la variabilidad natural, por eso se aplica una prueba estadística, como la t de Student para muestras independientes (versión de Welch). Esta prueba me sirve para comparar las medias (promedios) de dos grupos, en este caso, hombres y mujeres y poder verificar si la diferencia observada entre esas medias es estadísticamente significativa, es decir, si es lo suficientemente grande como para no atribuirla simplemente a la variación natural de los datos.

Además es importante que al mencionarse una diferencia de medias, pues me estoy refiriendo al promedio de atenciones en hombres menos el promedio en mujeres, y si esa diferencia es muy grande y constante, me puede indicar que existe un patrón real en la población, en cambio si es pequeña o muy variable entre años, es posible que se deba al azar. Entonces se obtuvo un Valor t = -1.6014 donde este número es el resultado de la fórmula de la prueba t, y representa cuántas “desviaciones estándar combinadas” separan las dos medias, así que cuanto mayor (en valor absoluto) sea este número, más diferentes son los grupos, por tanto considero que en este caso, el valor t no es muy alto, lo que puede ser que las medias no están tan separadas estadísticamente.

El Valor p = 0.1285, entendiendo que este valor me dice cuál es la probabilidad de obtener una diferencia como la observada (o mayor) si en realidad no hubiera ninguna diferencia entre hombres y mujeres (es decir, si la hipótesis nula fuera verdadera), entonces significa que este valor p de 0.1285 corresponde a que habría un 12,85% de probabilidad de observar una diferencia como esta por puro azar, si en realidad ambos grupos tuvieran la misma media poblacional.

El umbral común en epidemiología para considerar que un resultado es significativo es α = 0.05 (5%) y dado que 0.1285 > 0.05, entonces no se rechaza la hipótesis nula, y por tanto no puedo afirmar que exista una diferencia estadísticamente significativa entre las medias de hombres y mujeres en este departamento. Además el intervalo de confianza fue de [-26.583, 3.684] un rango que contiene todos los posibles valores que podría tomar la verdadera diferencia de medias en la población si se repitiera este estudio muchas veces. Como este intervalo incluye el cero o nulo, eso significa que es posible que no haya diferencia real en la población, y por eso tampoco hay significancia estadística.

Por otro lado observo que la desviación estándar, que la que mide cuánto varían los datos alrededor de la media en cada grupo, me muestra que es alta lo que indica que los datos están muy dispersos. En este caso Mujeres: 12.131,2 y Hombres: 20.374,7, indica que los datos en hombres son mucho más variables entre años, lo que puede hacer más difícil detectar diferencias significativas, porque hay menos “consistencia” dentro del grupo. Aunque los hombres muestran consistentemente valores mayores de atención por VIH, y la razón hombre:mujer es de aproximadamente 1.79:1, la prueba estadística aplicada me sugiere que no hay suficiente evidencia para afirmar que esta diferencia es real y no debida al azar.

Esto no significa que no exista desigualdad, sino que estadísticamente no puede confirmarse con estos datos y este tamaño de muestra. Además, destaco que hay una alta variabilidad en los datos de hombres que puede sugerir que dentro del departamento de Nariño hay subregiones con contextos epidemiológicos muy diferentes, lo cual podría estar enmascarando una diferencia que sí existe, pero no es uniforme.

# PREGUNTA 2: Total de atenciones en capitales
capitales_pacifico <- c("19001", "27001", "76001", "52001")

tabla_capitales <- base_final_long %>%
  filter(codigo_municipio %in% capitales_pacifico) %>%
  mutate(
    Capital = case_when(
      codigo_municipio == "19001" ~ "Popayán",
      codigo_municipio == "27001" ~ "Quibdó", 
      codigo_municipio == "76001" ~ "Cali",
      codigo_municipio == "52001" ~ "Pasto",
      TRUE ~ nombre_municipio
    )
  ) %>%
  group_by(Capital, Departamento) %>%
  summarise(
    total_atenciones = sum(casos, na.rm = TRUE),
    promedio_anual = round(mean(casos, na.rm = TRUE), 1),
    .groups = "drop"
  ) %>%
  arrange(desc(total_atenciones)) %>%
  mutate(
    porcentaje = round(total_atenciones / sum(total_atenciones) * 100, 1),
    total_formateado = format(total_atenciones, big.mark = ",", decimal.mark = ".")
  )

tabla_capitales
# Guardar tabla
save_tab(tabla_capitales, "pregunta2_capitales_pacifico", c("xlsx", "csv"))
# Gráfico de barras para las capitales
ggplot(tabla_capitales, aes(x = reorder(Capital, total_atenciones), 
                           y = total_atenciones)) +
  geom_col(fill = "darkgreen", alpha = 0.7) +
  coord_flip() +
  scale_y_continuous(labels = scales::comma_format()) +
  labs(
    title = "Total de atenciones por VIH en capitales del Pacífico",
    subtitle = "Período 2009-2019",
    x = "Capital",
    y = "Total de atenciones"
  ) +
  theme_minimal()

Interpretación del gráfico de barras: La visualización confirma la extrema concentración territorial, donde Cali representa aproximadamente el 83% del total de atenciones entre las capitales, con una barra desproporcionadamente grande comparada con las demás. Esta diferencia visual evidencia que Cali no solo es la capital con mayor carga, sino que funciona como un mega-centro de atención que concentra recursos y pacientes de toda la región. ### Respuesta Pregunta 2: Total de atenciones en capitales del Pacífico

Concentración extrema en Cali: Los resultados me muestran una centralización dramática de las atenciones por VIH en la región Pacífico, donde Cali concentra 2.279.999 atenciones (83.3% del total de las cuatro capitales), estableciendo su posición como epicentro regional de servicios especializados, por lo que esta concentración supera ampliamente lo esperado por diferencias poblacionales sugiriendo un efecto de atracción de pacientes desde otros territorios.

Jerarquía urbana de servicios: Las capitales restantes muestran volúmenes significativamente menores pero con patrones diferenciados, por ejemplo Popayán registra 228.316 atenciones (8.3%) con un promedio anual de 10.378 casos, seguido por Pasto con 187.559 casos (6.9% y promedio de 8.525). Quibdó presenta la menor carga con 39.840 atenciones (1.5% y promedio de 1.810 casos), reflejando tanto limitaciones de acceso como menor capacidad instalada.

Implicaciones para la red de servicios: La razón 57:1 entre Cali y Quibdó evidencia inequidades territoriales significativas que requieren intervención. Esta distribución sugiere que Cali funciona como centro de referencia macro-regional, mientras las demás capitales mantienen roles más circunscritos a sus territorios departamentales.

# Crear la base datos_cauca como pide literalmente la pregunta
datos_cauca_real <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca",
      Codigo == "27" ~ "Chocó",
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Otro"
    )
  ) %>%
  filter(Departamento == "Cauca")

cat("Base datos_cauca (departamento del Cauca) creada:", dim(datos_cauca_real), "\n")
## Base datos_cauca (departamento del Cauca) creada: 924 8
# Nota: El análisis se realizará sobre Valle del Cauca 
cat("Análisis se realizará sobre Valle del Cauca (base datos_cauca filtrada)\n")
## Análisis se realizará sobre Valle del Cauca (base datos_cauca filtrada)
# CREAR datos_cauca (Cauca) 
datos_cauca <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca",
      Codigo == "27" ~ "Chocó", 
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Otro"
    )
  ) %>%
  filter(Departamento == "Cauca")

# Mostrar estructura y dimensiones de datos_cauca
cat("=== ESTRUCTURA datos_cauca ===\n")
## === ESTRUCTURA datos_cauca ===
dim(datos_cauca)
## [1] 924   8
str(datos_cauca)
## tibble [924 × 8] (S3: tbl_df/tbl/data.frame)
##  $ codigo_municipio: chr [1:924] "19001" "19001" "19001" "19001" ...
##  $ nombre_municipio: chr [1:924] "Popayán" "Popayán" "Popayán" "Popayán" ...
##  $ Sexo            : chr [1:924] "F" "F" "F" "F" ...
##  $ Fuente          : chr [1:924] "RIPS" "RIPS" "RIPS" "RIPS" ...
##  $ anio            : int [1:924] 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 ...
##  $ casos           : num [1:924] 248 493 1174 2230 3394 ...
##  $ Codigo          : chr [1:924] "19" "19" "19" "19" ...
##  $ Departamento    : chr [1:924] "Cauca" "Cauca" "Cauca" "Cauca" ...
summary(datos_cauca)
##  codigo_municipio   nombre_municipio       Sexo              Fuente         
##  Length:924         Length:924         Length:924         Length:924        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       anio          casos            Codigo          Departamento      
##  Min.   :2009   Min.   :    1.0   Length:924         Length:924        
##  1st Qu.:2011   1st Qu.:   32.0   Class :character   Class :character  
##  Median :2014   Median :  132.0   Mode  :character   Mode  :character  
##  Mean   :2014   Mean   :  604.3                                        
##  3rd Qu.:2017   3rd Qu.:  378.5                                        
##  Max.   :2019   Max.   :34957.0                                        
##                 NA's   :257
# CREAR base_completa para análisis comparativo
base_completa <- base_final_long %>%
  mutate(
    Codigo = substr(codigo_municipio, 1, 2),
    Departamento = case_when(
      Codigo == "19" ~ "Cauca",
      Codigo == "76" ~ "Valle del Cauca",
      Codigo == "27" ~ "Chocó",
      Codigo == "52" ~ "Nariño",
      TRUE ~ "Otro"
    )
  ) %>%
  filter(Departamento != "Otro")

# ANÁLISIS COMPARATIVO: Valle del Cauca frente a otros departamentos
analisis_comparativo <- base_completa %>%
  group_by(Departamento) %>%
  summarise(
    total_casos = sum(casos, na.rm = TRUE),
    promedio_casos = round(mean(casos, na.rm = TRUE), 1),
    municipios = n_distinct(nombre_municipio),
    .groups = "drop"
  ) %>%
  mutate(
    porcentaje_regional = round(total_casos / sum(total_casos) * 100, 1),
    posicion = rank(-total_casos)
  ) %>%
  arrange(desc(total_casos))

analisis_comparativo

Respuesta pregunta 3:

Análisis Situacional: Valle del Cauca frente a la Región Pacífico

El análisis comparativo de la base datos_cauca (924 observaciones del Cauca) revela la posición predominante de Valle del Cauca en el contexto epidemiológico regional. Considero que con 3.198.179 casos (77.9% del total regional), Valle del Cauca supera 7.9 veces mas a Nariño (443.753 casos, 10.8%) y 54 veces mas a Chocó (59.223 casos, 1.4%). Esta concentración extrema trasciende diferencias poblacionales, evidenciando Valle del Cauca como macro-centro de referencia que atrae pacientes inter-departamentales. Además la estructura datos_cauca muestra Cauca con 403.052 casos (9.8% regional), posicionándose en tercer lugar con promedio de 604.3 casos por observación superior al patrón general pero inferior a Valle del Cauca (3.933.8). Los 42 municipios vallecaucanos procesan 76 veces más casos que los 29 chocoanos indicando no solo disparidades de volumen sino diferencias estructurales en capacidad instalada, accesibilidad geográfica y flujos de derivación. Considero que esta hiperconcentración demanda estrategias diferenciadas como optimización de capacidad en Valle del Cauca, asi como el fortalecimiento de redes inter-departamentales, y políticas redistributivas que equilibren la carga asistencial regional.

# ANÁLISIS EPIDEMIOLÓGICO VIH - CAUCA (usando todas las variables)

# 1. DISTRIBUCIÓN POR SEXO Y AÑO
distribucion_sexo_anio <- datos_cauca %>%
  group_by(anio, Sexo) %>%
  summarise(casos_anuales = sum(casos, na.rm = TRUE), .groups = "drop")

# 2. TOP MUNICIPIOS CAUCA
top_municipios_cauca <- datos_cauca %>%
  group_by(nombre_municipio) %>%
  summarise(
    total_casos = sum(casos, na.rm = TRUE),
    años_activos = n_distinct(anio),
    promedio_anual = round(total_casos / años_activos, 1),
    .groups = "drop"
  ) %>%
  arrange(desc(total_casos)) %>%
  head(8)

# 3. ESTADÍSTICAS VIH POR SEXO EN CAUCA
stats_sexo_cauca <- datos_cauca %>%
  group_by(Sexo) %>%
  summarise(
    casos_totales = sum(casos, na.rm = TRUE),
    promedio = round(mean(casos, na.rm = TRUE), 1),
    mediana = median(casos, na.rm = TRUE),
    municipios_afectados = n_distinct(nombre_municipio),
    .groups = "drop"
  ) %>%
  mutate(
    porcentaje = round(casos_totales / sum(casos_totales) * 100, 1),
    razon_vs_total = round(casos_totales / sum(datos_cauca$casos, na.rm = TRUE), 3)
  )

# 4. EVOLUCIÓN TEMPORAL CAUCA
evolucion_cauca <- datos_cauca %>%
  group_by(anio) %>%
  summarise(
    total_anual = sum(casos, na.rm = TRUE),
    municipios_reportando = n_distinct(nombre_municipio),
    .groups = "drop"
  ) %>%
  mutate(
    crecimiento = total_anual - lag(total_anual),
    tasa_crecimiento = round(((total_anual / lag(total_anual)) - 1) * 100, 1)
  )

# MOSTRAR RESULTADOS CLAVE
cat("=== ANÁLISIS VIH - DEPARTAMENTO DEL CAUCA ===\n")
## === ANÁLISIS VIH - DEPARTAMENTO DEL CAUCA ===
cat("Total casos VIH Cauca:", sum(datos_cauca$casos, na.rm = TRUE), "\n")
## Total casos VIH Cauca: 403052
cat("Período analizado:", min(datos_cauca$anio), "-", max(datos_cauca$anio), "\n")
## Período analizado: 2009 - 2019
cat("Municipios con casos VIH:", length(unique(datos_cauca$nombre_municipio)), "\n\n")
## Municipios con casos VIH: 42
cat("DISTRIBUCIÓN POR SEXO:\n")
## DISTRIBUCIÓN POR SEXO:
print(stats_sexo_cauca)
## # A tibble: 2 × 7
##   Sexo  casos_totales promedio mediana municipios_afectados porcentaje
##   <chr>         <dbl>    <dbl>   <dbl>                <int>      <dbl>
## 1 F            143301     451.    118.                   42       35.6
## 2 M            259751     744.    146                    42       64.4
## # ℹ 1 more variable: razon_vs_total <dbl>
cat("\nTOP 5 MUNICIPIOS MÁS AFECTADOS:\n")
## 
## TOP 5 MUNICIPIOS MÁS AFECTADOS:
print(head(top_municipios_cauca, 5))
## # A tibble: 5 × 4
##   nombre_municipio       total_casos años_activos promedio_anual
##   <chr>                        <dbl>        <int>          <dbl>
## 1 Popayán                     228316           11         20756 
## 2 Santander De Quilichao       26327           11          2393.
## 3 Puerto Tejada                20311           11          1846.
## 4 Patía                        11952           11          1086.
## 5 Miranda                      11236           11          1022.
# VISUALIZACIÓN INTEGRADA VIH
library(gridExtra)

# Gráfico 1: Evolución por sexo
g1 <- ggplot(distribucion_sexo_anio, aes(x = anio, y = casos_anuales, color = Sexo)) +
  geom_line(size = 1.8) +
  geom_point(size = 3) +
  scale_color_manual(values = c("F" = "#E91E63", "M" = "#2196F3")) +
  scale_y_continuous(labels = scales::comma_format()) +
  labs(title = "VIH en Cauca: Evolución temporal por sexo",
       x = "Año", y = "Casos anuales") +
  theme_minimal() +
  theme(legend.position = "bottom", plot.title = element_text(size = 12, face = "bold"))

# Gráfico 2: Top municipios
g2 <- ggplot(head(top_municipios_cauca, 6), 
             aes(x = reorder(nombre_municipio, total_casos), y = total_casos)) +
  geom_col(fill = c("#FF5722", "#FF9800", "#FFC107", "#CDDC39", "#8BC34A", "#4CAF50")) +
  coord_flip() +
  scale_y_continuous(labels = scales::comma_format()) +
  labs(title = "Municipios con mayor carga VIH",
       x = "Municipio", y = "Total casos VIH") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold"))

# Gráfico 3: Distribución por sexo (pie)
g3 <- ggplot(stats_sexo_cauca, aes(x = "", y = casos_totales, fill = Sexo)) +
  geom_col(width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_manual(values = c("F" = "#E91E63", "M" = "#2196F3")) +
  labs(title = "Distribución VIH por sexo") +
  theme_void() +
  theme(legend.position = "bottom", plot.title = element_text(size = 12, face = "bold"))

# Gráfico 4: Tendencia general Cauca
g4 <- ggplot(evolucion_cauca, aes(x = anio, y = total_anual)) +
  geom_area(fill = "#9C27B0", alpha = 0.7) +
  geom_line(color = "#6A1B9A", size = 1.5) +
  geom_point(color = "#4A148C", size = 2.5) +
  scale_y_continuous(labels = scales::comma_format()) +
  labs(title = "Tendencia general VIH - Cauca",
       x = "Año", y = "Total casos") +
  theme_minimal() +
  theme(plot.title = element_text(size = 12, face = "bold"))

# Combinar visualización
grid.arrange(g1, g2, g3, g4, ncol = 2, nrow = 2,
             top = "CAUCA: Análisis Epidemiológico VIH 2009-2019")

# Análisis Epidemiológico del VIH en el departamento del Cauca (2009–2019)

Entre 2009 y 2019, el departamento del Cauca acumuló 403.052 atenciones por VIH
distribuidas en 42 municipios. Esta cifra me muestra una carga importante
en una región históricamente atravesada por desigualdades estructurales, territorios
rurales dispersos y limitaciones en el acceso a servicios especializados.
Aunque los datos corresponden a atenciones y no a casos únicos, su volumen
me permite analizar con claridad la presión sobre los servicios de salud, los patrones diferenciales por sexo y la concentración urbana del fenómeno.

Distribución por sexo: diferencia estructural en acceso y riesgo

La primera tabla muestra una desigualdad persistente en la distribución por
sexo, donde el 64,4% de las atenciones corresponden a hombres (259.751), mientras
que solo el 35,6% a mujeres (143.301).
Esta razón masculino-femenina de 1.81:1 es menor que la observada a nivel
nacional (aproximadamente 2.3:1, según el Instituto Nacional de Salud en 2025), lo
que podría reflejar una mejor cobertura diagnóstica femenina en Cauca (por ejemplo, tamizaje prenatal en instituciones públicas), o diferencias territoriales en los patrones
de exposición y comportamiento de riesgo, como relaciones sexuales sin protección
entre hombres, que siguen siendo uno de los principales vectores de transmisión.

Además, los promedios anuales son más altos en hombres (744,3) que en mujeres (450,6)
lo que refuerza la hipótesis de sobrecarga masculina en términos de exposición
o atención médica tardía, dos fenómenos frecuentes en poblaciones con baja adherencia a estrategias de prevención.

Evolución temporal por sexo

La primera gráfica de línea (“Evolución temporal por sexo”) me muestra cómo el número de atenciones ha aumentado consistentemente en ambos sexos
pero con una pendiente más pronunciada en hombres, especialmente a partir
de 2013. Es interesante que mientras que las mujeres presentan una curva de crecimiento sostenido, en los hombres se observa un crecimiento acelerado y más abrupto
alcanzando alrededor de 50.000 atenciones anuales hacia 2018, frente a 30.000 en mujeres.

Esto podría corresponder a un incremento real en los casos masculinos, pero
también podría reflejar mayor búsqueda tardía de atención, concentrada en periodos
críticos, lo cual suele aumentar la cantidad de consultas hospitalarias o ambulatorias en etapas avanzadas de la enfermedad. El crecimiento simultáneo en ambos sexos también
me sugiere que las estrategias preventivas no han logrado frenar del todo la
transmisión, y que se requiere un abordaje más agresivo desde lo comunitario y territorial.

Gráfico circular

El gráfico circular de distribución por sexo confirma visualmente la desproporción en la carga masculina, al parecer aunque las mujeres representan más
de un tercio de los casos, el grueso de la epidemia sigue concentrado en hombres, esto
debe considerarse al diseñar estrategias comunicativas y educativas diferenciales.

Tendencia general del VIH en Cauca: un ascenso constante

La gráfica sobre (“Tendencia general VIH – Cauca”) muestra el acumulado total de
casos por año, lo que permite visualizar el crecimiento sostenido del problema
en el tiempo, a diferencia de las curvas por sexo, aquí se observa el fenómeno
global, con un aumento casi exponencial hasta superar los 75.000 casos anuales
acumulados al final del período, por lo que este patrón me indica que la epidemia está lejos de estar contenida.

No observo mesetas ni descensos sostenidos, lo que evidencia una falta de control
estructural a nivel departamental, y obliga a repensar las estrategias de prevención, diagnóstico temprano y continuidad en el tratamiento.

Tabla y gráfica de municipios: centralización y brechas territoriales

En la tabla de los cinco municipios más afectados y su respectiva barra horizontal
observo que Popayán concentra el 56.7% de los casos (228.316 atenciones), lo que
equivale a 8.7 veces más casos que el segundo municipio, Santander de Quilichao, por
lo que esta desproporción puede explicarse por al menos tres factores a mi juicio:
Centralización asistencial, donde Popayán tiene las instituciones más grandes y concentradas, lo que implica que muchos pacientes de municipios vecinos son derivados o atendidos allí. Un Mayor acceso diagnóstico y tratamiento en zonas urbanas, puesto que hay migración temporal o interna por atención médica, fenómeno común en pacientes VIH que requieren continuidad del tratamiento antirretroviral.

Esta concentración contrasta con la presencia de 42 municipios afectados, lo cual
sugiere que el virus está ampliamente distribuido, pero los recursos, la
atención y el seguimiento están territorialmente desbalanceados, por ejemplo
Santander de Quilichao, Puerto Tejada, Patía y Miranda completan el top 5 y que reflejan que hay focos urbanos y periurbanos de alta carga que requieren refuerzo inmediato de estrategias preventivas, tamizaje comunitario y acompañamiento diferencial.

En Colombia, el VIH sigue siendo una epidemia concentrada, con prevalencias superiores
al 10% en poblaciones clave como HSH (hombres que tienen sexo con hombres), personas
trans y población privada de la libertad, además el acceso al diagnóstico
sigue siendo desigual, y muchas personas son diagnosticadas tardíamente, aumentando
el riesgo de transmisión y complicaciones.

El caso del Cauca ilustra claramente este patrón, con una epidemia que crece sostenidamente, con carga desproporcionada en hombres, alta concentración urbana y desigualdades territoriales profundas. Las cifras no solo hablan de enfermedad sino también de pobreza estructural, racismo institucional, abandono estatal y acceso limitado a servicios de salud sexual y reproductiva, `por tanto ante este panorama, considero que se requiere una mayor inversión en salud pública y prevención diferenciada por sexo y grupo de riesgo, para evitar que las curvas sigan creciendo sin control.

ag_anio_sexo <- base_final_long %>%
  group_by(anio, Sexo) %>%
  summarise(atenciones = sum(casos, na.rm = TRUE), .groups = "drop")
library(tidyverse)
library(scales)
lab_si <- label_number(scale_cut = cut_short_scale())

p_area <- ggplot(ag_anio_sexo, aes(x = anio, y = atenciones, fill = Sexo)) +
  geom_area(alpha = 0.9, color = "white") +
  scale_y_continuous(labels = lab_si) +  # <-- cambio clave
  labs(title = "Cauca: evolución y composición por sexo (2009–2019)",
       subtitle = "Área apilada: presión total y peso relativo por sexo",
       x = "Año", y = "Atenciones anuales", fill = "Sexo") +
  theme_minimal(base_size = 12)

p_area  # print plot

## Análisis de la gráfica: Área apilada por sexo (Cauca, 2009–2019)

** La gráfica presenta el número anual de atenciones por VIH en el Cauca, separadas por sexo y apiladas para visualizar al tiempo la magnitud total y la composición (proporción hombres–mujeres). El eje X es el año, el eje Y son atenciones. El trazo blanco entre áreas muestra el aporte de cada sexo al total. Observo que en cuanto al Crecimiento sostenido de la carga a lo largo de la década, se aprecia la aceleración evidente desde 2013 y picos hacia 2018–2019 (mayor presión asistencial).

La composición por sexo es consistentemente desproporcionada a favor de los hombres, quienes concentran alrededor de 64% de las atenciones, mientras las mujeres aportan ~36% (coherente con el resumen tabular), además de la brecha por sexo que no se cierra, dodne la fracción masculina tiende a mantenerse o ampliarse a medida que el total crece, lo que sugiere que las intervenciones actuales no están contrarrestando la mayor vulnerabilidad/exposición de los hombres. El crecimiento en ambos sexos indica que, además de la mayor carga masculina, las mujeres siguen representando más de un tercio del problema, por lo que requieren estrategias específicas y sostenidas. #————————————————————————– # Apéndice – Visualizaciones adicionales del Taller 5

Nota. A solicitud del Taller 5 (semana 5 ) incorporo dos visualizaciones libres creadas con ggplot2. Estas imágenes no modifican los resultados del Taller 4 las agrego únicamente como registro.

Interpretación. - El Top 15 de municipios (Valle del Cauca sin Cali, mujeres, 2019) resalta la fuerte concentración en Buenaventura y Tuluá, seguidos por Palmira. - Los small multiples por capital (Cali, Pasto, Popayán y Quibdó, serie 2009–2019) muestran crecimiento sostenido en todas y en Cali con una escala claramente mayor.

Top 15 municipios (F) — Valle sin Cali, 2019
Top 15 municipios (F) — Valle sin Cali, 2019

Tendencia por capital (F), 2009–2019 Análisis de las figuras (anexo Taller 5)

Contexto: Las dos figuras anexas provienen del Taller 5 (SISPRO-RIPS) y se incluyen aquí como registro. La primera muestra el Top 15 de municipios (mujeres) del Valle del Cauca sin Cali, 2019 y la segunda, la tendencia 2009–2019 por capital (mujeres) mediante “small multiples”.

Figura 1 – Top 15 municipios (F), Valle del Cauca sin Cali, 2019. Observo que hay concentración de atenciones en pocos municipios y se destacan Buenaventura, Tuluá y Palmira con los mayores conteos.

Un segundo grupo (Yumbo, Buga, Cartago, Caicedonia, Candelaria) mantiene valores intermedios y el resto cae gradualmente.Además el patrón refleja nodos de demanda y oferta en corredores urbanos, que puede estar influido por accesibilidad, capacidad instalada y flujos de referencia. En la Figura 2 – Tendencia por capital (F), 2009–2019, se observa que en Cali crece de forma sostenida y marcada a lo largo de la década, pero otros como Pasto está en aumento y Popayán se observa que acelera desde 2015–2016, en tanto que Quibdó sube desde ~2014.

Referencias

SISPRO-RIPS

Docente: Estefanía Serrano.

® Icesi 2025.