“Sara Bolívar · Oscar Martínez · Juan Pablo Toro · Francisco Mena”
Proyecto de Análisis Estadístico en R
Edad de Inicio de Consumo de Alcohol en Colombia (ENCSPA 2019)
Autores: Sara Bolívar · Oscar Martínez · Juan Pablo Toro · Francisco
Mena
Curso: Gestión de Datos – Universidad del Valle
Profesor: Orlando Joaqui Barandica
Fecha: Octubre de 2025
Este informe presenta el análisis descriptivo y el modelo de
regresión lineal múltiple desarrollado con microdatos del DANE (Encuesta
Nacional de Consumo de Sustancias Psicoactivas – Capítulo F:
Alcohol).
El objetivo es identificar factores asociados con la edad de inicio del
consumo de alcohol, considerando las preferencias por tipo de bebida y
los antecedentes de personas heridas por consumo.
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 empleados provienen de la Encuesta Nacional de Consumo de
Sustancias Psicoactivas (ENCSPA‑2019), fuente oficial del DANE.
Se utiliza el capítulo F (Alcohol) del archivo f_capitulos.
La encuesta tiene cobertura nacional en Colombia y fue recolectada en
2019.
Variable dependiente (Y):
- edad_inicio (f_04): Edad en que la persona inició el consumo de
alcohol.
Variables independientes (X) — cuantitativas (escala 1–5):
- 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.
Variable cualitativa:
- heridos (f_20): Indica si alguna vez alguien ha resultado herido
debido al consumo de alcohol. Variable binaria (1 = Sí, 2 = No).
Las variables elegidas reflejan dos dimensiones relevantes: las preferencias personales de consumo y las consecuencias sociales asociadas. La variable dependiente mide directamente el fenómeno de interés. Las preferencias se tratan como cuantitativas continuas, siguiendo las prácticas del curso, y la variable heridos aporta una dimensión cualitativa que permite analizar diferencias en función de experiencias negativas vinculadas al consumo.
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.
library(tidyverse)
library(janitor)
library(lmtest)
library(car)
library(knitr)
library(kableExtra)
library(plotly)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)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)
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.
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"))## Warning: Removed 167430 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
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 bastante 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.
modelo <- lm(edad_inicio ~ cerveza + aguardiente + ron + whisky +
brandy_vodka + vino + heridos, data = datos_modelo)
summary_modelo <- summary(modelo)
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
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")
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.
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"
}## Warning in ks.test.default(residuals(modelo), "pnorm", mean(residuals(modelo)),
## : ties should not be present for the one-sample Kolmogorov-Smirnov test
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.
El modelo respondió parcialmente al objetivo planteado. Se estimaron efectos de las preferencias y de la variable heridos, pero la capacidad explicativa del modelo es bastante limitada.
El estudio permitió aplicar los conocimientos del curso en un caso real y reflejar las etapas clave del análisis: limpieza de datos, modelado y diagnóstico. Aunque las variables seleccionadas ofrecieron información limitada sobre la edad de inicio, el ejercicio refuerza la importancia de construir modelos con variables más completas y de interpretar resultados con cautela. Este informe sirve como base para investigaciones futuras que incorporen una mirada más amplia sobre los determinantes del inicio en el consumo de alcohol.
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