SECCIÓN 0: CONFIGURACIÓN DEL ENTORNO

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.2.0
## ✔ forcats   1.0.0     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(scales)
## 
## Adjuntando el paquete: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
library(broom)
library(dplyr)

datos <- read_csv(
  "Base_TB_Colombia.csv",
  quote = "",
  show_col_types = FALSE
)
names(datos)
## [1] "\"Departamento"            "\"\"Year\"\""             
## [3] "\"\"IPM\"\""               "\"\"P_Ingpcug\"\""        
## [5] "\"\"Gini\"\""              "\"\"SPM\"\""              
## [7] "\"\"tasa_ajustada\"\""     "\"\"Poblacion_Total\"\"\""
names(datos) <- gsub('"', '', names(datos))
View (datos)

año_analisis <- 2017

datos_2017 <- datos %>%
  dplyr::filter(Year == 2017) %>%
  dplyr::arrange(P_Ingpcug)

n_deptos <- nrow(datos_2017)

En el primer apartado realizamos descarga de las librerias necesarias para efectuar los códigos y se realiza descarga de la base de datos con corrección de la visualización de las variables.

#SECCIÓN 1: CURVA DE CONCENTRACIÓN

datos_conc <- datos_2017 %>%
  mutate(
    carga_enfermedad = tasa_ajustada * Poblacion_Total / 100000,
    prop_poblacion = Poblacion_Total / sum(Poblacion_Total),
    prop_acum_pob = cumsum(prop_poblacion),
    prop_acum_carga = cumsum(carga_enfermedad) / sum(carga_enfermedad)
  )

datos_conc_plot <- bind_rows(
  tibble(prop_acum_pob = 0, prop_acum_carga = 0, Departamento = "Origen"),
  datos_conc %>% select(Departamento, prop_acum_pob, prop_acum_carga)
)

print(datos_conc %>% 
        select(Departamento, P_Ingpcug, Poblacion_Total, tasa_ajustada, 
               carga_enfermedad, prop_acum_pob, prop_acum_carga) %>% 
        head(5))
## # A tibble: 5 × 7
##   Departamento P_Ingpcug Poblacion_Total tasa_ajustada carga_enfermedad
##   <chr>            <dbl>           <dbl>         <dbl>            <dbl>
## 1 Chocó           306827           56568          35.7             20.2
## 2 Cauca           336687          125257           9.8             12.3
## 3 Córdoba         354526          215854          12.4             26.8
## 4 La Guajira      364225           93934          24.6             23.1
## 5 Magdalena       380404          213555           9               19.2
## # ℹ 2 more variables: prop_acum_pob <dbl>, prop_acum_carga <dbl>
knitr::kable(datos_conc_plot)
prop_acum_pob prop_acum_carga Departamento
0.0000000 0.0000000 Origen
0.0068372 0.0182460 Chocó
0.0219767 0.0293367 Cauca
0.0480663 0.0535197 Córdoba
0.0594199 0.0743976 La Guajira
0.0852317 0.0917629 Magdalena
0.1009324 0.0984527 Sucre
0.1209180 0.1159319 Nariño
0.1284556 0.1346385 Caquetá
0.1604894 0.1729517 Norte de Santander
0.1853606 0.2186871 Cesar
0.2039282 0.2571336 Huila
0.2468892 0.2799346 Bolívar
0.2722348 0.3261634 Tolima
0.2770297 0.3326508 Arauca
0.2852043 0.3390670 Casanare
0.2902335 0.3437287 Putumayo
0.2913986 0.3437287 San Andrés y Providencia
0.2924195 0.3464457 Amazonas
0.2930013 0.3464457 Guainía
0.2943687 0.3473452 Guaviare
0.2947413 0.3506571 Vaupés
0.2954949 0.3506571 Vichada
0.3148714 0.3550024 Boyacá
0.3279342 0.3621306 Quindío
0.3481687 0.3863316 Caldas
0.3701029 0.4045314 Meta
0.4351123 0.5036663 Atlántico
0.4552124 0.5409287 Risaralda
0.5107997 0.5691843 Cundinamarca
0.5556436 0.6301935 Santander
0.6582755 0.7583141 Valle del Cauca
0.7950215 0.9065329 Antioquia
1.0000000 1.0000000 Bogotá

La curva de concentración ordena las unidades por su posición socioeconómica. Para que tenga sentido epidemiológico debe ponderarse por población. Se realiza un proxy del número de muertes por tasa ajustada de población

#Gráfico de concentración

grafico_concentracion <- ggplot(datos_conc_plot, aes(x = prop_acum_pob, y = prop_acum_carga)) +
  geom_line(color = "#C0392B", linewidth = 1.2) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "#2C3E50", linewidth = 0.8) +
  geom_ribbon(aes(ymin = pmin(prop_acum_pob, prop_acum_carga), 
                  ymax = pmax(prop_acum_pob, prop_acum_carga)), 
              fill = "#E74C3C", alpha = 0.2) +
  labs(
    title = paste("Curva de concentración - mortalidad por TB, Colombia", año_analisis),
    subtitle = "Población ordenada por ingreso per cápita (más pobre → más rico)",
    x = "Proporción acumulada de población\n(ordenada por ingreso, de menor a mayor)",
    y = "Proporción acumulada de muertes por TB",
    caption = "Fuente: Datos DANE. Ponderado por población departamental.\nCurva sobre la diagonal = concentración en grupos de menores ingresos"
  ) +
  scale_x_continuous(labels = scales::percent, limits = c(0, 1)) +
  scale_y_continuous(labels = scales::percent, limits = c(0, 1)) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 11, color = "#666666"),
    axis.title = element_text(size = 10)
  )

ggsave("curva_concentracion.png", grafico_concentracion, width = 8, height = 6, dpi = 150)

La gráfica muestra una curva de concentración de la mortalidad por tuberculosis (TB) en Colombia en 2017. La interpretación principal es que las muertes por TB están ligeramente concentradas en los grupos de menores ingresos, aunque la desigualdad no es extremadamente grande. La curva de concentración muestra que la mortalidad por tuberculosis en Colombia en 2017 se encuentra ligeramente concentrada en los grupos de menor ingreso, evidenciando una desigualdad socioeconómica desfavorable para las poblaciones más pobres

#SECCIÓN 2: ÍNDICE DE CONCENTRACIÓN RELATIVO (ICR / RCI)

datos_icr <- datos_2017 %>%
  mutate(
    # Peso de cada departamento (proporción de población)
    peso = Poblacion_Total / sum(Poblacion_Total),
    # Proporción acumulada de población
    peso_acum = cumsum(peso),
    # Rango fraccional: punto medio del rango de cada unidad
    rango_fraccional = peso_acum - (peso / 2)
  )
media_rango <- weighted.mean(datos_icr$rango_fraccional, datos_icr$Poblacion_Total)
media_ponderada <- weighted.mean(datos_icr$tasa_ajustada, datos_icr$Poblacion_Total)

cov_ponderada <- sum(datos_icr$peso * 
                     (datos_icr$tasa_ajustada - media_ponderada) * 
                     (datos_icr$rango_fraccional - media_rango))

ICR <- (2 / media_ponderada) * cov_ponderada

ICR_check <- 2 * sum(datos_icr$peso * datos_icr$tasa_ajustada * datos_icr$rango_fraccional) / media_ponderada - 1

print(datos_icr %>% 
        select(Departamento, P_Ingpcug, Poblacion_Total, peso, rango_fraccional, tasa_ajustada) %>% 
        head(5))
## # A tibble: 5 × 6
##   Departamento P_Ingpcug Poblacion_Total    peso rango_fraccional tasa_ajustada
##   <chr>            <dbl>           <dbl>   <dbl>            <dbl>         <dbl>
## 1 Chocó           306827           56568 0.00684          0.00342          35.7
## 2 Cauca           336687          125257 0.0151           0.0144            9.8
## 3 Córdoba         354526          215854 0.0261           0.0350           12.4
## 4 La Guajira      364225           93934 0.0114           0.0537           24.6
## 5 Magdalena       380404          213555 0.0258           0.0723            9

SECCIÓN 3: MEDIDAS BASADAS EN REGRESIÓN (SII Y RII)

modelo_sii <- lm(tasa_ajustada ~ rango_fraccional, 
                 data = datos_icr, 
                 weights = Poblacion_Total)

resumen_modelo <- summary(modelo_sii)

print(resumen_modelo)
## 
## Call:
## lm(formula = tasa_ajustada ~ rango_fraccional, data = datos_icr, 
##     weights = Poblacion_Total)
## 
## Weighted Residuals:
##     Min      1Q  Median      3Q     Max 
## -5240.8 -2431.2  -595.7  3732.9  5754.7 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        17.953      2.397   7.489 1.94e-08 ***
## rango_fraccional   -9.151      4.159  -2.200   0.0354 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3431 on 31 degrees of freedom
## Multiple R-squared:  0.1351, Adjusted R-squared:  0.1072 
## F-statistic: 4.841 on 1 and 31 DF,  p-value: 0.03537

El índice de desigualdad absoluta (SII) fue de −9.15, lo que indica que el indicador de salud presenta valores aproximadamente 9 unidades mayores en el grupo socioeconómico más bajo en comparación con el grupo de mayor nivel socioeconómico. El coeficiente fue estadísticamente significativo (p = 0.035), lo que evidencia la presencia de desigualdades socioeconómicas en el indicador analizado. Sin emabrgo, los reisudos muestran una dispersión amplia lo que indica que el modelo no implica la variabilidad del indicador de salud, puesto que tiende a sobreestimar el valor observado.

#modelos

modelo_sii <- lm(tasa_ajustada ~ rango_fraccional, data = datos_icr)

intercepto <- coef(modelo_sii)[1]
pendiente <- coef(modelo_sii)[2]

pred_rango_0 <- predict(modelo_sii, newdata = data.frame(rango_fraccional = 0))
pred_rango_1 <- predict(modelo_sii, newdata = data.frame(rango_fraccional = 1))

SII <- pendiente
RII <- pred_rango_1 / pred_rango_0

SII
## rango_fraccional 
##        -9.063934
RII
##        1 
## 0.558471

El índice relativo de desigualdad (RII) fue de 0.55, lo que indica que la tasa predicha de mortalidad por tuberculosis en los grupos de mayor ingreso corresponde aproximadamente al 55 % de la observada en los grupos de menor ingreso. Dado que el RII es menor que 1, se confirma la existencia de un gradiente social desfavorable para los grupos más pobres, evidenciando una desigualdad relativa en la mortalidad por tuberculosis.

Gráfico de regresión SII (con tamaño de punto proporcional a población)

grafico_sii <- ggplot(datos_icr, aes(x = rango_fraccional, y = tasa_ajustada)) +
  geom_point(aes(color = IPM, size = Poblacion_Total/1000), alpha = 0.7) +
  geom_smooth(method = "lm", se = TRUE, color = "#E74C3C", fill = "#FADBD8",
              mapping = aes(weight = Poblacion_Total)) +
  geom_text(aes(label = ifelse(rango_fraccional < 0.1 | rango_fraccional > 0.9, 
                                Departamento, "")),
            hjust = -0.1, vjust = 0.5, size = 3) +
  scale_color_gradient(low = "#27AE60", high = "#C0392B", name = "Pobreza\nmonetaria (%)") +
  scale_size_continuous(name = "Población\n(miles)", range = c(2, 10)) +
  labs(
    title = paste("Slope index of inequality (SII) - Colombia", año_analisis),
    subtitle = paste0("SII = ", round(SII, 2), " | RII = ", round(RII, 3), 
                      " | Regresión ponderada por población"),
    x = "Rango fraccional\n(0 = más pobre, 1 = más rico)",
    y = "Tasa de mortalidad por TB (por 100,000 hab)",
    caption = "Fuente: Datos DANE. Tamaño del punto proporcional a población.\nLínea de regresión ponderada por población."
  ) +
  annotate("point", x = 0, y = pred_rango_0, color = "#C0392B", size = 4, shape = 17) +
  annotate("point", x = 1, y = pred_rango_1, color = "#27AE60", size = 4, shape = 17) +
  annotate("text", x = 0.05, y = pred_rango_0 + 3, 
           label = paste("Predicho\nrango=0:", round(pred_rango_0, 1)), size = 3) +
  annotate("text", x = 0.95, y = pred_rango_1 + 3, 
           label = paste("Predicho\nrango=1:", round(pred_rango_1, 1)), size = 3) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12, color = "#666666")
  )

ggsave("sii_regresion.png", grafico_sii, width = 10, height = 7, dpi = 150)
## `geom_smooth()` using formula = 'y ~ x'

Con el fin de evaluar la presencia de desigualdades socioeconómicas en la mortalidad por tuberculosis (TB) en Colombia durante 2017, se estimó un modelo de regresión lineal ponderada por población, utilizando el rango fraccional socioeconómico como variable independiente y la tasa de mortalidad por TB (por 100000 habitantes) como variable dependiente. En este enfoque, los departamentos fueron ordenados de acuerdo con su posición socioeconómica, donde valores cercanos a 0 representan los grupos más desfavorecidos y valores cercanos a 1 corresponden a los grupos de mayor nivel socioeconómico.

SECCIÓN 4: COMPARACIÓN DE MEDIDAS Y ANÁLISIS TEMPORAL

calcular_indices <- function(datos, year) {
  df <- datos %>%
    filter(Year == year) %>%
    arrange(P_Ingpcug) %>%
    mutate(
      peso = Poblacion_Total / sum(Poblacion_Total),
      peso_acum = cumsum(peso),
      rango_fraccional = peso_acum - (peso / 2)
)
 
media <- weighted.mean(df$tasa_ajustada, df$Poblacion_Total)

media_rango <- weighted.mean(df$rango_fraccional, df$Poblacion_Total)
  cov_pond <- sum(df$peso * (df$tasa_ajustada - media) * 
                    (df$rango_fraccional - media_rango))
  icr <- (2 / media) * cov_pond
  
 modelo <- lm(tasa_ajustada ~ rango_fraccional, data = df, weights = Poblacion_Total)
  pred_0 <- predict(modelo, newdata = data.frame(rango_fraccional = 0))
  pred_1 <- predict(modelo, newdata = data.frame(rango_fraccional = 1))
  
sii <- coef(modelo)[2]
  rii <- pred_1 / pred_0
  
  tibble(
    Year = year,
    Media_ponderada = media,
    ICR = icr,
    SII = sii,
    RII = rii
  )
}

años <- unique(datos$Year)
indices_temporales <- map_dfr(años, ~calcular_indices(datos, .x))

print(indices_temporales %>% mutate(across(where(is.numeric), ~round(., 3))))
## # A tibble: 11 × 5
##     Year Media_ponderada    ICR    SII   RII
##    <dbl>           <dbl>  <dbl>  <dbl> <dbl>
##  1  2012            14.0 -0.117 -10.0  0.474
##  2  2013            14.7 -0.084  -7.46 0.594
##  3  2014            16.2 -0.114 -11.2  0.486
##  4  2015            15.3 -0.11  -10.2  0.5  
##  5  2016            13.9 -0.102  -8.63 0.525
##  6  2017            13.4 -0.113  -9.15 0.49 
##  7  2018            15.6 -0.133 -12.6  0.423
##  8  2019            14.2 -0.093  -8.04 0.558
##  9  2020            12.2 -0.126  -9.37 0.446
## 10  2021            13.5 -0.081  -6.64 0.604
## 11  2022            16.2 -0.104 -10.2  0.521

La tabla presenta la evolución temporal entre 2012 y 2022 de tres indicadores de desigualdad socioeconómica en la mortalidad por tuberculosis (TB): el índice de concentración relativo (ICR), el Slope Index of Inequality (SII) y el Relative Index of Inequality (RII). Sin emabrgo, lo primero que podemos apreciar es que la tasa promedio de mortalidad mostró fluctuaciones durante el período 2012–2022, con valores entre 12.2 y 16.2 muertes por 100.000 habitantes, observándose una disminución marcada en 2020 y un incremento posterior hacia 2022.

En conjunto, los tres indicadores evidencian un comportamiento consistente durante el periodo estudiado, lo que sugiere la persistencia de desigualdades socioeconómicas en la mortalidad por tuberculosis en Colombia. Los resultados indican que los departamentos con menores niveles de ingreso concentran una mayor carga de mortalidad por esta enfermedad. Si bien la magnitud de estas desigualdades presenta algunas fluctuaciones entre años, no se identifica una tendencia hacia la disminución sostenida de dichas brechas entre 2012 y 2022.

Gráfico de evolución temporal del ICR

grafico_icr_temporal <- ggplot(indices_temporales, aes(x = Year, y = ICR)) +
  geom_line(color = "#2C3E50", linewidth = 1) +
  geom_point(color = "#C0392B", size = 3) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "#666666") +
  scale_x_continuous(breaks = años) +
  labs(
    title = "Evolución del índice de concentración relativo (ICR)",
    subtitle = "Mortalidad por TB en Colombia, 2012-2022",
    x = "Año",
    y = "ICR",
    caption = "Valores negativos indican concentración en departamentos de menores ingresos"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

ggsave("icr_temporal.png", grafico_icr_temporal, width = 10, height = 6, dpi = 150)

Decuardo con lo descrito anteriormente , la figura nos muestra la evolución del índice de concentración relativo (ICR) de la mortalidad por tuberculosis en Colombia entre 2012 y 2022. Durante todo el periodo, el ICR presenta valores negativos, lo que indica que la mortalidad por TB se concentra sistemáticamente en los departamentos con menores niveles de ingreso, sin evidenciar una tendencia clara hacia la reducción de la desigualdad.

#Gráfico de evolución temporal del SII

grafico_sii_temporal <- ggplot(indices_temporales, aes(x = Year, y = SII)) +
  geom_line(color = "#2C3E50", linewidth = 1) +
  geom_point(color = "#E74C3C", size = 3) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "#666666") +
  scale_x_continuous(breaks = años) +
  labs(
    title = "Evolución del slope index of inequality (SII)",
    subtitle = "Mortalidad por TB en Colombia, 2012-2022",
    x = "Año",
    y = "SII (diferencia absoluta por 100,000 hab)",
    caption = "Valores negativos indican menores tasas en departamentos de mayores ingresos"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

ggsave("sii_temporal.png", grafico_sii_temporal, width = 10, height = 6, dpi = 150)

La siguiente figura representa la evolución del Slope Index of Inequality (SII) de la mortalidad por tuberculosis en Colombia entre 2012 y 2022. Durante todo el periodo analizado, el SII mantiene valores negativos, en concordancia con lo anteriormente mencionado indica tasas de mortalidad por tuberculosis más altas en los departamentos con menor nivel socioeconómico en comparación con aquellos de mayor ingreso. La notable permanencia en negativo a lo largo de todo el periodo sugiere la persistencia de una brecha socioeconómica en la mortalidad por tuberculosis .

#SECCIÓN 5: COMPARACIÓN ÍNDICES DE DESIGUALDAD 2017

library(dplyr)
library(ineq)
library(tibble)

datos_2017 <- datos%>%
  filter(Year == 2017) %>%
  arrange(P_Ingpcug) %>%
  mutate(
    peso = Poblacion_Total / sum(Poblacion_Total),
    peso_acum = cumsum(peso),
    rango_fraccional = peso_acum - peso/2
  )

 media_pond <- weighted.mean(datos_2017$tasa_ajustada,datos_2017$Poblacion_Total)
 
 tasa_pobre <- datos_2017$tasa_ajustada[1]
tasa_rico  <- datos_2017$tasa_ajustada[nrow(datos_2017)]

diferencia_tasas <- tasa_pobre - tasa_rico
razon_tasas <- tasa_pobre / tasa_rico

BGV <- sum(datos_2017$peso *
             (datos_2017$tasa_ajustada - media_pond)^2)

BGSD <- sqrt(BGV)

coef_variacion <- BGSD / media_pond

datos_lorenz <- datos_2017 %>%
  arrange(tasa_ajustada) %>%
  mutate(
    prop_acum_deptos = cumsum(rep(1/n(), n())),
    prop_acum_tasa = cumsum(tasa_ajustada) / sum(tasa_ajustada)
  )

gini_salud <- Gini(datos_2017$tasa_ajustada)
cat("Índice de Gini:", round(gini_salud, 4))
## Índice de Gini: 0.4613
datos_lorenz <- datos_2017 %>%
  arrange(tasa_ajustada) %>%
  mutate(
    prop_acum_deptos = cumsum(rep(1/n(), n())),
    prop_acum_tasa = cumsum(tasa_ajustada) / sum(tasa_ajustada)
  )
gini_salud <- Gini(datos_2017$tasa_ajustada)
cat("Índice de Gini:", round(gini_salud, 4))
## Índice de Gini: 0.4613
media_rango <- weighted.mean(datos_2017$rango_fraccional,
                             datos_2017$Poblacion_Total)

cov_pond <- sum(datos_2017$peso *
                  (datos_2017$tasa_ajustada - media_pond) *
                  (datos_2017$rango_fraccional - media_rango))

ICR <- (2 / media_pond) * cov_pond



modelo <- lm(tasa_ajustada ~ rango_fraccional,
             data = datos_2017,
             weights = Poblacion_Total)

pred_0 <- predict(modelo,
                  newdata = data.frame(rango_fraccional = 0))

pred_1 <- predict(modelo,
                  newdata = data.frame(rango_fraccional = 1))

SII <- coef(modelo)[2]
RII <- pred_1 / pred_0

tabla_resumen <- tibble(
  Medida = c(
    "Media ponderada",
    "Diferencia de tasas",
    "Razón de tasas",
    "BGV",
    "BGSD",
    "Coeficiente de variación",
    "Índice de Gini",
    "Índice de concentración relativo (ICR)",
    "Slope Index of Inequality (SII)",
    "Relative Index of Inequality (RII)"
  ),
  
  Valor = round(c(
    media_pond,
    diferencia_tasas,
    razon_tasas,
    BGV,
    BGSD,
    coef_variacion,
    gini_salud,
    ICR,
    SII,
    RII
  ),3)
)

tabla_resumen
## # A tibble: 10 × 2
##    Medida                                  Valor
##    <chr>                                   <dbl>
##  1 Media ponderada                        13.4  
##  2 Diferencia de tasas                    29.6  
##  3 Razón de tasas                          5.85 
##  4 BGV                                    51.0  
##  5 BGSD                                    7.14 
##  6 Coeficiente de variación                0.534
##  7 Índice de Gini                          0.461
##  8 Índice de concentración relativo (ICR) -0.113
##  9 Slope Index of Inequality (SII)        -9.15 
## 10 Relative Index of Inequality (RII)      0.49

La tabla resumen muestra la presencia de desigualdades socioeconómicas en la mortalidad por tuberculosis en Colombia para el año 2017. La media ponderada de la tasa fue de 13.4 muertes por 100000 habitantes. Las medidas pareadas indican una diferencia de tasas de 29.6 y razón de extremos de 5.85, lo que sugiere una marcada brecha entre los departamentos con menor y mayor nivel socioeconómico. Las medidas de dispersión entre grupos (BGV = 51.0 y BGSD = 7.14) junto con un coeficiente de variación de 0.53 evidencian una variabilidad considerable en las tasas entre departamentos. Por su parte, los índices de desigualdad relativa confirman un gradiente socioeconómico desfavorable para los grupos más pobres, con un índice de Gini de 0.461, un índice de concentración relativo (ICR) de −0.113 y un Slope Index of Inequality (SII) de −9.15. Finalmente, el Relative Index of Inequality (RII) de 0.49 indica que la tasa de mortalidad por tuberculosis en los departamentos de mayor ingreso es aproximadamente la mitad de la observada en los de menor ingreso, lo que confirma la persistencia de desigualdades socioeconómicas en la distribución de este evento en salud.