El consumo de alcohol es un problema de salud pública a nivel mundial. Según la Organización Mundial de la Salud (OMS), el consumo nocivo de alcohol causa aproximadamente 2.6 millones de muertes cada año en el mundo.
Un aspecto crítico en el estudio del consumo de alcohol es la edad en que se empieza a consumir. Diversos estudios epidemiológicos han demostrado que las personas que comienzan a consumir alcohol a edades más tempranas tienen mayor probabilidad de desarrollar trastornos por consumo de sustancias, problemas de salud física y mental, y dificultades sociales en la edad adulta. Por esta razón, comprender qué factores están asociados con la edad de inicio es fundamental para diseñar políticas públicas de prevención efectivas.
El presente estudio tiene como objetivo identificar y cuantificar los factores asociados con la edad de inicio de consumo de alcohol en la población colombiana, utilizando datos de una encuesta nacional del DANE.
Específicamente, nos interesa determinar si las preferencias actuales de consumo por diferentes tipos de bebidas alcohólicas (cerveza, aguardiente, ron, whisky, brandy/vodka, vino) y los antecedentes de personas heridas relacionadas con el consumo pueden predecir o estar asociados con la edad a la que una persona inició su consumo de alcohol.
Para ello nos planteamos la siguiente pregunta: ¿Las preferencias de consumo por diferentes tipos de bebidas alcohólicas y los antecedentes de personas heridas por consumo de alcohol están asociadas con la edad de inicio de consumo?
Los datos utilizados provienen de una encuesta sobre consumo de alcohol en Colombia, obtenida de los microdatos del DANE. La encuesta incluye información sobre patrones de consumo, tipos de bebidas preferidas, edad de inicio, y consecuencias asociadas al consumo de alcohol.
Variable dependiente (Y): - : Edad en que inició el consumo de alcohol.
Variables independientes (X):
Variables cuantitativas (escala 1-5, donde 1 indica menor preferencia y 5 mayor preferencia):
cerveza (f_10_a): Nivel de preferencia por el consumo de cerveza
aguardiente (f_10_b): Nivel de preferencia por el consumo de aguardiente
ron (f_10_c): Nivel de preferencia por el consumo de ron
whisky (f_10_d): Nivel de preferencia por el consumo de whisky
brandy_vodka (f_10_e): Nivel de preferencia por el consumo de brandy o vodka
vino (f_10_f): Nivel de preferencia por el consumo de vino
heridos (f_20): Indica si alguna vez alguien ha resultado herido debido al consumo de alcohol. Es una variable categórica binaria donde 1 = Sí hubo heridos y 2 = No hubo heridos.
Para analizar la relación entre la edad de inicio y las variables predictoras, utilizamos un modelo que evaluar el efecto simultáneo de múltiples variables independientes sobre una variable dependiente cuantitativa.
La ecuación general del modelo es:
\[ \text{edad\_inicio}_i = \beta_0 + \beta_1 \cdot \text{cerveza}_i + \beta_2 \cdot \text{aguardiente}_i + \beta_3 \cdot \text{ron}_i + \beta_4 \cdot \text{whisky}_i + \beta_5 \cdot \text{brandy\_vodka}_i + \beta_6 \cdot \text{vino}_i + \beta_7 \cdot \text{heridos}_i + \epsilon_i \]
Donde:
Como en todo modelo estadístico, hay ciertas condiciones que deben cumplirse para que los resultados sean confiables. Estas son:
Estos supuestos serán evaluados en la sección de diagnóstico del modelo.
datos <- read.csv("f_capitulos.csv", stringsAsFactors = FALSE) %>%
clean_names()
datos_modelo <- datos %>%
select(edad_inicio = f_04, cerveza = f_10_a, aguardiente = f_10_b,
ron = f_10_c, whisky = f_10_d, brandy_vodka = f_10_e,
vino = f_10_f, heridos = f_20) %>%
mutate(edad_inicio = as.numeric(as.character(edad_inicio)),
across(cerveza:vino, ~ as.numeric(as.character(.))),
heridos = as.factor(heridos)) %>%
filter(!is.na(edad_inicio) & edad_inicio > 0 & edad_inicio < 70)# Estadísticas descriptivas
media_edad <- mean(datos_modelo$edad_inicio, na.rm=TRUE)
mediana_edad <- median(datos_modelo$edad_inicio, na.rm=TRUE)
sd_edad <- sd(datos_modelo$edad_inicio, na.rm=TRUE)
q25_edad <- quantile(datos_modelo$edad_inicio, 0.25, na.rm=TRUE)
q75_edad <- quantile(datos_modelo$edad_inicio, 0.75, na.rm=TRUE)
# Crear tabla
tabla_edad <- data.frame(
Estadístico = c("Media", "Mediana", "Desviación estándar",
"Cuartil 25%", "Cuartil 75%", "Mínimo", "Máximo"),
Valor = c(round(media_edad, 2), mediana_edad, round(sd_edad, 2),
q25_edad, q75_edad,
min(datos_modelo$edad_inicio), max(datos_modelo$edad_inicio))
)
kable(tabla_edad, caption = "Tabla 1. Estadísticas descriptivas de la edad de inicio de consumo de alcohol") %>%
kable_styling(bootstrap_options = c("striped", "hover"))| Estadístico | Valor |
|---|---|
| Media | 18.12 |
| Mediana | 18.00 |
| Desviación estándar | 4.64 |
| Cuartil 25% | 15.00 |
| Cuartil 75% | 20.00 |
| Mínimo | 1.00 |
| Máximo | 61.00 |
Interpretación:La edad promedio de inicio de consumo de alcohol en la muestra es de 18.1 años, con una desviación estándar de 4.6 años. La mediana es de 18 años, lo que indica que el 50% de las personas iniciaron el consumo antes de esta edad y el 50% después.
El hecho de que la media (18.1) y la mediana (18) sean muy cercanas quiere decir que la distribución es relativamente simétrica, sin presencia significativa de valores extremos que distorsionen el promedio.
El rango (entre 15 y 20 años) muestra que el 50% central de la población inició el consumo en un periodo de 5 años, lo que indica una concentración moderada de las edades de inicio durante la adolescencia y juventud temprana.
ggplot(datos_modelo, aes(x = edad_inicio)) +
geom_histogram(aes(y = after_stat(density)), fill = "#2E7D32", color = "white", bins = 30) +
geom_density(color = "darkred", linewidth = 1.2) +
geom_vline(xintercept = media_edad, color = "red", linetype = "dashed", linewidth = 1) +
geom_vline(xintercept = mediana_edad, color = "blue", linetype = "dashed", linewidth = 1) +
annotate("text", x = media_edad + 3, y = 0.08, label = paste("Media:", round(media_edad, 1)),
color = "red", size = 4) +
annotate("text", x = mediana_edad - 3, y = 0.08, label = paste("Mediana:", mediana_edad),
color = "blue", size = 4) +
labs(title = "Distribución de la Edad de Inicio de Consumo de Alcohol",
x = "Edad de inicio (años)",
y = "Densidad") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"))Figura 1. Distribución de la edad de inicio de consumo de alcohol
Análisis del gráfico: La distribución muestra una concentración importante de inicios de consumo entre los 15 y 20 años, coincidiendo con la etapa de adolescencia tardía. Se observa un pico pronunciado alrededor de los 18 años, que corresponde con la mayoría de edad legal. La distribución presenta una cola derecha más larga, indicando que algunas personas inician el consumo a edades más avanzadas, aunque en menor proporción.
# Estadísticas de preferencias
vars_predictoras <- c("cerveza", "aguardiente", "ron", "whisky", "brandy_vodka", "vino")
desc_bebidas <- datos_modelo %>%
select(all_of(vars_predictoras)) %>%
summarise(across(everything(), list(
Media = ~mean(., na.rm = TRUE),
DE = ~sd(., na.rm = TRUE),
Mediana = ~median(., na.rm = TRUE)
))) %>%
pivot_longer(everything(), names_to = "Variable", values_to = "Valor") %>%
separate(Variable, into = c("Bebida", "Estadistico"), sep = "_(?=[^_]+$)") %>%
pivot_wider(names_from = Estadistico, values_from = Valor)
kable(desc_bebidas, digits = 2,
caption = "Tabla 2. Estadísticas descriptivas de preferencias por tipo de bebida (escala 1-5)") %>%
kable_styling(bootstrap_options = c("striped", "hover"))| Bebida | Media | DE | Mediana |
|---|---|---|---|
| cerveza | 2.59 | 0.91 | 2 |
| aguardiente | 3.77 | 1.09 | 4 |
| ron | 3.99 | 1.00 | 4 |
| whisky | 4.18 | 0.88 | 4 |
| brandy_vodka | 4.45 | 0.67 | 5 |
| vino | 4.28 | 0.78 | 4 |
Interpretación: Las preferencias promedio por tipo de bebida muestran que todas las bebidas tienen valores medianos similares, concentrándose entre 2 y 3 en la escala de 1 a 5. Esto sugiere que, en general, la población tiene preferencias moderadas por los diferentes tipos de bebidas, sin una marcada inclinación hacia alguna en particular.
datos_modelo %>%
select(all_of(vars_predictoras)) %>%
pivot_longer(everything(), names_to = "Bebida", values_to = "Preferencia") %>%
ggplot(aes(x = reorder(Bebida, Preferencia, FUN = median), y = Preferencia, fill = Bebida)) +
geom_boxplot(alpha = 0.7) +
coord_flip() +
scale_fill_brewer(palette = "Set3") +
labs(title = "Distribución de Preferencias por Tipo de Bebida",
x = "Tipo de bebida",
y = "Nivel de preferencia (1-5)") +
theme_minimal() +
theme(legend.position = "none",
plot.title = element_text(hjust = 0.5, face = "bold"))Figura 2. Distribución de preferencias por tipo de bebida
Análisis del gráfico: Los boxplots muestran que la mayoría de las bebidas tienen distribuciones similares, con medianas cercanas. Se observan algunos valores atípicos en todas las categorías, pero la concentración principal está entre los valores 2 y 4. Esto indica que hay poca variabilidad entre las preferencias de diferentes tipos de bebidas en la muestra.
tabla_heridos <- datos_modelo %>%
count(heridos) %>%
mutate(Porcentaje = round(n / sum(n) * 100, 2))
kable(tabla_heridos,
col.names = c("Heridos", "Frecuencia", "Porcentaje (%)"),
caption = "Tabla 3. Frecuencia de antecedentes de personas heridas por consumo de alcohol") %>%
kable_styling(bootstrap_options = c("striped", "hover"))| Heridos | Frecuencia | Porcentaje (%) |
|---|---|---|
| 1 | 990 | 2.33 |
| 2 | 25373 | 59.78 |
| NA | 16078 | 37.88 |
Interpretación: La distribución de la variable heridos muestra la proporción de personas que reportaron antecedentes de personas heridas relacionadas con el consumo de alcohol vs quienes no reportaron estos antecedentes.
# Ajustar modelo de regresión múltiple
modelo <- lm(edad_inicio ~ cerveza + aguardiente + ron + whisky +
brandy_vodka + vino + heridos, data = datos_modelo)
# Crear objeto summary
summary_modelo <- summary(modelo)
# Mostrar resumen completo
print(summary_modelo)##
## Call:
## lm(formula = edad_inicio ~ cerveza + aguardiente + ron + whisky +
## brandy_vodka + vino + heridos, data = datos_modelo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.151 -1.980 -0.214 1.327 42.989
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 12.19073 0.28584 42.649 < 2e-16 ***
## cerveza 0.29249 0.03442 8.497 < 2e-16 ***
## aguardiente 0.20428 0.03049 6.700 2.16e-11 ***
## ron 0.27201 0.03434 7.922 2.51e-15 ***
## whisky 0.05125 0.04028 1.272 0.2033
## brandy_vodka 0.26491 0.05681 4.663 3.14e-06 ***
## vino -0.08414 0.04565 -1.843 0.0653 .
## heridos2 1.30991 0.14591 8.977 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.782 on 14528 degrees of freedom
## (27905 observations deleted due to missingness)
## Multiple R-squared: 0.02866, Adjusted R-squared: 0.02819
## F-statistic: 61.23 on 7 and 14528 DF, p-value: < 2.2e-16
# Crear tabla de coeficientes
coef_tabla <- as.data.frame(summary_modelo$coefficients)
coef_tabla$Variable <- rownames(coef_tabla)
coef_tabla <- coef_tabla[, c("Variable", "Estimate", "Std. Error", "t value", "Pr(>|t|)")]
colnames(coef_tabla) <- c("Variable", "Estimación", "Error Estándar", "Valor t", "p-valor")
# Agregar significancia
coef_tabla$Significancia <- ifelse(coef_tabla$`p-valor` < 0.001, "***",
ifelse(coef_tabla$`p-valor` < 0.01, "**",
ifelse(coef_tabla$`p-valor` < 0.05, "*", "")))
kable(coef_tabla, digits = 4, row.names = FALSE,
caption = "Tabla 4. Coeficientes estimados del modelo de regresión. Significancia: *** p<0.001, ** p<0.01, * p<0.05") %>%
kable_styling(bootstrap_options = c("striped", "hover"))| Variable | Estimación | Error Estándar | Valor t | p-valor | Significancia |
|---|---|---|---|---|---|
| (Intercept) | 12.1907 | 0.2858 | 42.6487 | 0.0000 | *** |
| cerveza | 0.2925 | 0.0344 | 8.4968 | 0.0000 | *** |
| aguardiente | 0.2043 | 0.0305 | 6.7000 | 0.0000 | *** |
| ron | 0.2720 | 0.0343 | 7.9219 | 0.0000 | *** |
| whisky | 0.0512 | 0.0403 | 1.2723 | 0.2033 | |
| brandy_vodka | 0.2649 | 0.0568 | 4.6630 | 0.0000 | *** |
| vino | -0.0841 | 0.0457 | -1.8431 | 0.0653 | |
| heridos2 | 1.3099 | 0.1459 | 8.9773 | 0.0000 | *** |
Interpretación de coeficientes:
Los coeficientes del modelo representan el cambio estimado en la edad de inicio (en años) por cada unidad de aumento en la variable predictora correspondiente, manteniendo todas las demás variables constantes.
Ecuación ajustada:
La ecuación del modelo ajustado con los coeficientes estimados es:
Edad_inicio = 12.191 + 0.292×cerveza + 0.204×aguardiente + 0.272×ron + 0.051×whisky + 0.265×brandy_vodka + -0.084×vino + 1.31×heridos2
Esta ecuación nos permite predecir la edad de inicio de consumo de una persona dados sus niveles de preferencia por cada tipo de bebida y el antecedente de personas heridas.
# Test de normalidad
if(length(residuals(modelo)) > 5000) {
test_norm <- ks.test(residuals(modelo), "pnorm",
mean(residuals(modelo)), sd(residuals(modelo)))
test_nombre <- "Kolmogorov-Smirnov"
} else {
test_norm <- shapiro.test(residuals(modelo))
test_nombre <- "Shapiro-Wilk"
}Test de Kolmogorov-Smirnov:
Interpretación: El p-valor < 0.05 indica que los residuos no siguen perfectamente una distribución normal. Sin embargo, debido al tamaño grande de la muestra, la regresión lineal es robusta ante desviaciones moderadas de la normalidad gracias al Teorema del Límite Central.
qqnorm(residuals(modelo), main = "QQ Plot de Residuos",
pch = 20, col = alpha("steelblue", 0.5))
qqline(residuals(modelo), col = "red", lwd = 2)
grid()Figura 5. QQ Plot para evaluación de normalidad de residuos
Análisis del gráfico: El QQ plot compara los cuantiles de los residuos observados con los cuantiles teóricos de una distribución normal. Si los puntos siguen aproximadamente la línea roja, los residuos son normales. Observamos que hay algunas desviaciones en los extremos (colas), lo que es común en muestras grandes y no invalida necesariamente el modelo.
ggplot(data.frame(residuos = residuals(modelo)), aes(x = residuos)) +
geom_histogram(aes(y = after_stat(density)), fill = "gray70",
color = "black", bins = 40, alpha = 0.7) +
stat_function(fun = dnorm,
args = list(mean = mean(residuals(modelo)),
sd = sd(residuals(modelo))),
col = "red", linewidth = 1.2) +
labs(title = "Distribución de Residuos del Modelo",
x = "Residuos (años)",
y = "Densidad") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"))Figura 6. Distribución de residuos
Análisis del gráfico: La curva roja representa una distribución normal con la misma media y desviación estándar que los residuos. Observamos que la distribución empírica se aproxima razonablemente a la curva normal, aunque puede haber algunas diferencias menores.
vif_vals <- vif(modelo)
vif_tabla <- data.frame(
Variable = names(vif_vals),
VIF = round(vif_vals, 3),
Interpretación = ifelse(vif_vals > 10, "Alta multicolinealidad (problema serio)",
ifelse(vif_vals > 5, "Multicolinealidad moderada",
"✓ Sin problemas de multicolinealidad"))
)
kable(vif_tabla, caption = "Tabla 5. Factor de Inflación de la Varianza (VIF) para cada variable predictora") %>%
kable_styling(bootstrap_options = c("striped", "hover"))| Variable | VIF | Interpretación | |
|---|---|---|---|
| cerveza | cerveza | 1.008 | ✓ Sin problemas de multicolinealidad |
| aguardiente | aguardiente | 1.128 | ✓ Sin problemas de multicolinealidad |
| ron | ron | 1.199 | ✓ Sin problemas de multicolinealidad |
| whisky | whisky | 1.291 | ✓ Sin problemas de multicolinealidad |
| brandy_vodka | brandy_vodka | 1.482 | ✓ Sin problemas de multicolinealidad |
| vino | vino | 1.298 | ✓ Sin problemas de multicolinealidad |
| heridos | heridos | 1.007 | ✓ Sin problemas de multicolinealidad |
Interpretación del VIF:
El Factor de Inflación de la Varianza (VIF) mide cuánto se incrementa la varianza de los coeficientes estimados debido a la correlación entre las variables independientes.
Resultado: Todos los valores VIF en el modelo son menores a 5, lo que indica que no existen problemas de multicolinealidad. Esto significa que las variables independientes no están altamente correlacionadas entre sí, y por lo tanto, los coeficientes estimados son confiables y estables.
Modelo ajustado: Se construyó exitosamente un modelo de regresión lineal múltiple para predecir la edad de inicio de consumo de alcohol utilizando como predictores las preferencias por seis tipos de bebidas alcohólicas (cerveza, aguardiente, ron, whisky, brandy/vodka y vino) y una variable indicadora de antecedentes de personas heridas relacionadas con el consumo.
Edad promedio de inicio: La muestra estudiada presenta una edad promedio de inicio de 18.1 años (mediana = 18 años), con la mayor concentración de casos entre los 15 y 20 años, coincidiendo con la adolescencia tardía y el inicio de la adultez.
Respuesta: El modelo respondió PARCIALMENTE al objetivo planteado, pero con hallazgos importantes.
Se logró cuantificar la relación entre las preferencias de bebidas y la edad de inicio, identificando la dirección y magnitud de estos efectos.
Aprendimos que las preferencias actuales por tipos de bebidas NO son determinantes principales de cuándo se inicia el consumo.
Basándonos en la literatura científica sobre consumo de alcohol, los siguientes factores (no incluidos en nuestro modelo) probablemente tienen mucha mayor influencia en la edad de inicio:
En la investigación, a veces los resultados negativos o inesperados son tan valiosos como los positivos, pues nos redirigen hacia preguntas y variables más apropiadas. Este modelo nos indica claramente que necesitamos mirar más allá de las preferencias de bebidas y enfocarnos en los verdaderos determinantes sociales, familiares y contextuales de la edad de inicio.
Organización Mundial de la Salud. (2024, 25 de junio). Más de tres millones de muertes anuales debido al consumo de alcohol y drogas, la mayoría entre hombres. Organización Mundial de la Salud (OMS). https://www.who.int/es/news/item/25-06-2024-over-3-million-annual-deaths-due-to-alcohol-and-drug-use-majority-among-men
Departamento Administrativo Nacional de Estadística [DANE]. (2019). Encuesta Nacional de Consumo de Sustancias Psicoactivas en Población General – ENCSPA 2019. Microdatos DANE. https://microdatos.dane.gov.co/index.php/catalog/680/study-description
Ministerio de Justicia y del Derecho – Observatorio de Drogas de Colombia. (2019). Estudio Nacional de Consumo de Sustancias Psicoactivas Colombia 2019. Bogotá, Colombia: ODC. https://www.minjusticia.gov.co/programas-co/ODC/Documents/Publicaciones/Consumo/Estudios/estudio%20Nacional%20de%20consumo%202019v2.pdf
Ministerio de Justicia y del Derecho – Observatorio de Drogas de Colombia & Ministerio de Educación Nacional. (2022). Estudio Nacional de Consumo de Sustancias Psicoactivas en Población Escolar 2022. Bogotá, Colombia: ODC. https://www.minjusticia.gov.co/programas-co/ODC/Documents/Publicaciones/Estudio%20nacional%20escolares.pdf
Oficina de las Naciones Unidas contra la Droga y el Delito [UNODC] & Alcaldía Mayor de Bogotá – Secretaría Distrital de Salud. (2023). Estudio de consumo de sustancias psicoactivas en Bogotá, D.C. 2022. Bogotá, Colombia. https://www.unodc.org/documents/colombia/2023/septiembre-9/ESTUDIO_DE_CONSUMO_DE_SUSTANCIAS_PSICOACTIVAS_BOGOTA_2022.pdf
Gobernación de Antioquia – Secretaría de Salud & Observatorio de Drogas de Antioquia. (2021). Estudio de consumo de sustancias psicoactivas en Antioquia 2021. Medellín, Colombia. https://ecd.gov.co/wp-content/uploads/2023/01/Estudio-consumo-de-SPA-Antioquia-2021.pdf