Resumen

Este estudio analiza los factores asociados con la edad de los pacientes diagnosticados con VIH/SIDA en Bogotá mediante regresión lineal múltiple. Los datos provienen de la base de datos abiertos de Colombia sobre tasas de SIDA en Bogotá, conteniendo información de 72,076 pacientes registrados desde 2015.

Hallazgos principales: - Los pacientes con diagnóstico de VIH son significativamente más jóvenes (11.12 años menos) que aquellos con diagnóstico de “Muerto” - Las mujeres tienden a ser diagnosticadas a mayor edad (4.33 años más) que los hombres - El régimen de seguridad social muestra diferencias significativas en la edad de diagnóstico - El modelo explica un 7.1% de la varianza en la edad (R² = 0.071)


1. Introducción y Objetivos

1.1 Contexto del Problema

El VIH/SIDA continúa siendo un problema de salud pública significativo en Colombia. Understanding the demographic patterns and factors associated with age at diagnosis is crucial for targeted prevention and treatment strategies. Este análisis busca identificar los factores sociodemográficos que se asocian con la edad de los pacientes en el momento del registro en el sistema de salud.

1.2 Objetivos

Objetivo General: Identificar y cuantificar los factores asociados con la edad de los pacientes con VIH/SIDA en Bogotá mediante regresión lineal múltiple.

Objetivos Específicos: 1. Analizar la distribución de edad según estado clínico (VIH, SIDA, Muerto) 2. Evaluar las diferencias de edad por sexo y régimen de seguridad social 3. Construir un modelo de regresión lineal múltiple robusto 4. Interpretar los coeficientes y su significancia clínica


2. Metodología

2.1 Fuente de Datos

Los datos fueron obtenidos de la plataforma de Datos Abiertos de Colombia (datos.gov.co), específicamente del dataset “Tasa-sida-bogota.csv”. Esta base contiene registros administrativos de pacientes con VIH/SIDA en Bogotá.

2.2 Variables del Estudio

Variable Dependiente: - EDAD: Edad del paciente (años) - Variable cuantitativa continua

Variables Independientes: - EST_CLI: Estado clínico (VIH, SIDA, Muerto) - Variable categórica - SEXO: Sexo del paciente (Hombre, Mujer) - Variable categórica - REGIMEN_SEGURIDAD_SOCIAL: Tipo de afiliación (Contributivo, Subsidiado, Especial, No Asegurado) - Variable categórica

2.3 Preparación de los Datos

# Cargar los datos
datos <- read.csv2("Tasa-sida-bogota.csv", header = TRUE, stringsAsFactors = FALSE)

# Limpiar caracteres especiales que pueden causar errores en gráficos
datos[] <- lapply(datos, function(x) {
  if (is.character(x)) iconv(x, from = "UTF-8", to = "ASCII//TRANSLIT") else x
})

str(datos)
## 'data.frame':    72076 obs. of  10 variables:
##  $ ANO                     : int  2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 ...
##  $ EDAD                    : int  39 26 38 32 40 25 21 30 25 25 ...
##  $ CICLOVITAL              : chr  "Adultez" "Juventud" "Adultez" "Adultez" ...
##  $ SEXO                    : chr  "Hombre" "Hombre" "Hombre" "Hombre" ...
##  $ NACIONALIDAD            : chr  "Colombiano" "Colombiano" "Colombiano" "Colombiano" ...
##  $ REGIMEN_SEGURIDAD_SOCIAL: chr  "Especial" "Contributivo" "Contributivo" "Contributivo" ...
##  $ MEC_PRO_T               : chr  "Hetereosxual" "Bisexual" "Hetereosxual" "Homosexual" ...
##  $ EST_CLI                 : chr  "SIDA" "VIH" "Muerto" "VIH" ...
##  $ ENFOQUE_DIFERENCIAL     : chr  "Otro" "Otro" "Otro" "Otro" ...
##  $ LOCALIDAD               : chr  NA NA NA NA ...

Interpretación de la estructura de datos: La base de datos original contiene 72,076 observaciones con 10 variables. La variable de interés (EDAD) es de tipo entero, mientras que las variables explicativas son de tipo carácter que necesitan ser convertidas a factores para el análisis estadístico.

# Eliminar filas con NA en las variables de interés
datos <- datos %>%
  filter(!is.na(EDAD), !is.na(EST_CLI), !is.na(SEXO), !is.na(REGIMEN_SEGURIDAD_SOCIAL))

# Convertir variables categóricas a factor
datos$EST_CLI <- as.factor(datos$EST_CLI)
datos$SEXO <- as.factor(datos$SEXO)
datos$REGIMEN_SEGURIDAD_SOCIAL <- as.factor(datos$REGIMEN_SEGURIDAD_SOCIAL)

Justificación del tratamiento de datos: Se eliminaron las observaciones con valores faltantes en las variables clave para garantizar un análisis completo. La conversión a factores es esencial para que R trate correctamente las variables categóricas en el modelo de regresión.


3. Análisis Exploratorio de Datos

3.1 Distribución de Edad por Estado Clínico

# Comparación de edad promedio por estado clínico
ggplot(datos, aes(x = EST_CLI, y = EDAD, fill = EST_CLI)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Distribución de Edad según Estado Clínico", 
       x = "Estado Clínico", y = "Edad")

Interpretación del boxplot: El gráfico revela patrones importantes en la distribución de edad: - Los pacientes clasificados como “Muerto” muestran la mediana de edad más alta - Los pacientes con VIH tienden a ser más jóvenes que aquellos con SIDA - Existe variabilidad considerable en todas las categorías, con presencia de valores atípicos

Esta visualización sugiere que el estado clínico está relacionado con la edad, justificando su inclusión en el modelo de regresión.


4. Modelo de Regresión Lineal Múltiple

4.1 Especificación del Modelo Principal

# Modelo lineal múltiple
modelo <- lm(EDAD ~ EST_CLI + SEXO + REGIMEN_SEGURIDAD_SOCIAL, data = datos)
summary(modelo)
## 
## Call:
## lm(formula = EDAD ~ EST_CLI + SEXO + REGIMEN_SEGURIDAD_SOCIAL, 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.648  -7.403  -2.403   4.835  65.835 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           42.5246     0.2782 152.878  < 2e-16 ***
## EST_CLISIDA                           -4.5705     0.3113 -14.682  < 2e-16 ***
## EST_CLIVIH                           -11.1220     0.2783 -39.964  < 2e-16 ***
## SEXOMujer                              4.3342     0.1366  31.731  < 2e-16 ***
## REGIMEN_SEGURIDAD_SOCIALEspecial       2.4363     0.5324   4.576 4.74e-06 ***
## REGIMEN_SEGURIDAD_SOCIALNo Asegurado  -2.2372     0.1271 -17.596  < 2e-16 ***
## REGIMEN_SEGURIDAD_SOCIALSubsidiado     0.9115     0.1116   8.167 3.22e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.77 on 65063 degrees of freedom
## Multiple R-squared:  0.07109,    Adjusted R-squared:  0.07101 
## F-statistic: 829.9 on 6 and 65063 DF,  p-value: < 2.2e-16

Interpretación detallada de los resultados:

Ecuación del modelo: EDAD = 42.52 - 4.57(EST_CLI_SIDA) - 11.12(EST_CLI_VIH) + 4.33(SEXO_Mujer) + 2.44(Especial) - 2.24(No_Asegurado) + 0.91(Subsidiado)

Análisis de coeficientes:

  1. Intercepto (42.52): Representa la edad promedio estimada para un hombre con estado clínico “Muerto” y régimen contributivo (categorías de referencia).

  2. EST_CLI_SIDA (-4.57, p < 2e-16): Los pacientes con SIDA son, en promedio, 4.57 años menores que aquellos clasificados como “Muerto”, manteniendo constantes las demás variables. Este resultado es estadísticamente significativo.

  3. EST_CLI_VIH (-11.12, p < 2e-16): Los pacientes con VIH son significativamente más jóvenes (11.12 años menos) que los clasificados como “Muerto”. Este es el efecto más grande en el modelo, sugiriendo que el diagnóstico de VIH ocurre en edades más tempranas.

  4. SEXO_Mujer (4.33, p < 2e-16): Las mujeres tienden a ser diagnosticadas 4.33 años más tarde que los hombres, controlando por otros factores. Esto podría reflejar diferencias en patrones de búsqueda de atención médica o exposición al riesgo.

  5. Régimen de Seguridad Social:

    • Especial (2.44, p = 4.74e-06): Pacientes con régimen especial son 2.44 años mayores
    • No Asegurado (-2.24, p < 2e-16): Pacientes sin aseguramiento son 2.24 años menores
    • Subsidiado (0.91, p = 3.22e-16): Pacientes subsidiados son 0.91 años mayores

Bondad de ajuste: - R² = 0.071: El modelo explica el 7.1% de la varianza en la edad - F-statistic = 829.9 (p < 2.2e-16): El modelo es estadísticamente significativo - Error estándar residual = 10.77: La desviación típica de los residuos

4.2 Diagnósticos del Modelo

4.2.1 Análisis de Residuos

par(mfrow = c(1, 2))
hist(residuals(modelo), main = "Histograma de residuos", xlab = "Residuos")
qqnorm(residuals(modelo))
qqline(residuals(modelo), col = "red")

Interpretación de la normalidad: - El histograma de residuos muestra una distribución aproximadamente normal con ligera asimetría - El Q-Q plot revela desviaciones de la normalidad en las colas, indicando distribución más pesada que la normal - Estas desviaciones son comunes en muestras grandes y no invalidan necesariamente el modelo

plot(modelo$fitted.values, residuals(modelo),
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados", ylab = "Residuos")
abline(h = 0, col = "red")

Análisis de homocedasticidad: El gráfico de residuos vs valores ajustados muestra un patrón relativamente aleatorio alrededor de cero, aunque se observan algunas bandas que podrían indicar ligera heterocedasticidad.

4.2.2 Multicolinealidad

vif(modelo)
##                              GVIF Df GVIF^(1/(2*Df))
## EST_CLI                  1.010757  2        1.002678
## SEXO                     1.023578  1        1.011720
## REGIMEN_SEGURIDAD_SOCIAL 1.032893  3        1.005408

Interpretación del VIF: - EST_CLI: GVIF^(1/(2Df)) = 1.003 - SEXO: VIF = 1.024 - REGIMEN_SEGURIDAD_SOCIAL: GVIF^(1/(2Df)) = 1.005

Todos los valores están muy por debajo de 5, indicando ausencia de multicolinealidad problemática entre las variables predictoras.

4.2.3 Pruebas Formales de Supuestos

# Normalidad de residuos
shapiro.test(sample(residuals(modelo), 5000))
## 
##  Shapiro-Wilk normality test
## 
## data:  sample(residuals(modelo), 5000)
## W = 0.91815, p-value < 2.2e-16
# Prueba de Breusch-Pagan para homocedasticidad
library(lmtest)
bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 1281.2, df = 6, p-value < 2.2e-16

Interpretación de las pruebas: - Shapiro-Wilk (W = 0.925, p < 2.2e-16): Rechaza normalidad de residuos - Breusch-Pagan (BP = 1281.2, p < 2.2e-16): Rechaza homocedasticidad

Estas violaciones son comunes en muestras grandes y, aunque estadísticamente significativas, pueden no ser problemáticas para la inferencia debido al Teorema del Límite Central.


5. Comparación de Modelos

5.1 Modelo Reducido vs Modelo Completo

modelo_reducido <- lm(EDAD ~ EST_CLI + SEXO, data = datos)
anova(modelo_reducido, modelo)
## Analysis of Variance Table
## 
## Model 1: EDAD ~ EST_CLI + SEXO
## Model 2: EDAD ~ EST_CLI + SEXO + REGIMEN_SEGURIDAD_SOCIAL
##   Res.Df     RSS Df Sum of Sq     F    Pr(>F)    
## 1  65066 7606719                                 
## 2  65063 7551567  3     55153 158.4 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación del test F: - F = 158.4 (p < 2.2e-16) - La inclusión de REGIMEN_SEGURIDAD_SOCIAL mejora significativamente el ajuste del modelo - La reducción en la suma de cuadrados del error justifica la complejidad adicional

5.2 Modelo con Interacciones

modelo_interaccion <- lm(EDAD ~ EST_CLI * SEXO + REGIMEN_SEGURIDAD_SOCIAL, data = datos)
summary(modelo_interaccion)
## 
## Call:
## lm(formula = EDAD ~ EST_CLI * SEXO + REGIMEN_SEGURIDAD_SOCIAL, 
##     data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -35.987  -7.364  -2.364   4.877  65.877 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           42.9698     0.3004 143.031  < 2e-16 ***
## EST_CLISIDA                           -4.6753     0.3370 -13.874  < 2e-16 ***
## EST_CLIVIH                           -11.6062     0.3015 -38.500  < 2e-16 ***
## SEXOMujer                              1.3942     0.7670   1.818   0.0691 .  
## REGIMEN_SEGURIDAD_SOCIALEspecial       2.4399     0.5322   4.585 4.55e-06 ***
## REGIMEN_SEGURIDAD_SOCIALNo Asegurado  -2.2407     0.1271 -17.629  < 2e-16 ***
## REGIMEN_SEGURIDAD_SOCIALSubsidiado     0.9013     0.1116   8.077 6.72e-16 ***
## EST_CLISIDA:SEXOMujer                  0.5008     0.8778   0.570   0.5684    
## EST_CLIVIH:SEXOMujer                   3.3277     0.7805   4.263 2.02e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.77 on 65061 degrees of freedom
## Multiple R-squared:  0.07187,    Adjusted R-squared:  0.07175 
## F-statistic: 629.7 on 8 and 65061 DF,  p-value: < 2.2e-16

Análisis de la interacción EST_CLI × SEXO: - EST_CLI_SIDA × SEXO_Mujer (0.50, p = 0.568): No significativa - EST_CLI_VIH × SEXO_Mujer (3.33, p = 2.02e-05): Significativa

La interacción significativa indica que el efecto del sexo en la edad difiere según el estado clínico. Específicamente, la diferencia de edad entre hombres y mujeres es mayor en pacientes con VIH que en otras categorías.


6. Visualización Adicional

ggplot(datos, aes(x = REGIMEN_SEGURIDAD_SOCIAL, y = EDAD, fill = SEXO)) +
  geom_boxplot() +
  facet_wrap(~EST_CLI) +
  theme_minimal() +
  labs(title = "Edad por Régimen, Sexo y Estado Clínico")

Esta visualización permite observar simultáneamente: - Diferencias de edad entre regímenes de seguridad social - Diferencias por sexo dentro de cada régimen - Patrones específicos para cada estado clínico


7. Distribución de la Variable Dependiente

hist(datos$EDAD, breaks = 30, main = "Distribución de Edad en la Muestra",
     xlab = "Edad (años)", ylab = "Frecuencia")

Características de la distribución: - Distribución aproximadamente normal con ligera asimetría positiva - Rango de edad amplio (probablemente de adolescentes a adultos mayores) - Mayor concentración en edades adultas jóvenes