La diabetes es una de las enfermedades crónicas más prevalentes en los Estados Unidos y representa un problema significativo de salud pública a nivel mundial. Se trata de una condición metabólica caracterizada por la incapacidad del organismo para regular adecuadamente los niveles de glucosa en sangre, ya sea por deficiencia en la producción de insulina o por resistencia a su acción. Esta alteración puede derivar en complicaciones graves como enfermedades cardiovasculares, insuficiencia renal, pérdida de visión y amputaciones, afectando considerablemente la calidad y esperanza de vida de los pacientes.
De acuerdo con los Centros para el Control y la Prevención de Enfermedades (CDC), millones de personas en Estados Unidos padecen diabetes o prediabetes, y una proporción significativa desconoce su condición. Esta situación incrementa el riesgo de complicaciones severas y genera una carga económica sustancial para el sistema de salud, con costos que ascienden a cientos de miles de millones de dólares anuales. La detección temprana y la identificación de factores de riesgo asociados son fundamentales para implementar estrategias preventivas y reducir el impacto clínico y económico de la enfermedad.
El presente analisis utiliza el conjunto de datos Behavioral Risk Factor Surveillance System (BRFSS) 2015, una encuesta telefónica anual realizada por el CDC que recopila información sobre condiciones crónicas, comportamientos de riesgo y acceso a servicios de salud en más de 400.000 individuos. Para este estudio se emplea una versión procesada del dataset que contiene 253.680 observaciones y 21 variables predictoras, donde la variable objetivo indica la presencia o ausencia de diabetes o prediabetes.
El análisis exploratorio de datos permitirá comprender la estructura del conjunto de datos, identificar patrones relevantes, evaluar posibles relaciones entre variables y detectar desequilibrios en la variable objetivo. Este proceso es fundamental para garantizar una modelación adecuada y para justificar el uso de técnicas avanzadas de validación y optimización de modelos en etapas posteriores del proyecto.
Explorar y analizar visualmente la relación entre variables demográficas, hábitos de vida y condiciones de salud con la presencia de diabetes en la población adulta de Estados Unidos, utilizando el conjunto de datos BRFSS 2015.
El propósito de este análisis exploratorio es comprender cómo diferentes factores relacionados con el estilo de vida, la salud general y las características sociodemográficas se distribuyen en la población y cómo se asocian con la presencia de diabetes. A través de técnicas de visualización de datos, se busca identificar patrones significativos, contrastes entre grupos y posibles factores relevantes que contribuyan a una mejor interpretación del problema desde una perspectiva descriptiva.
Para la realización del análisis exploratorio se emplea el lenguaje de programación Python junto con las librerías especializadas en análisis y visualización de datos. Inicialmente, se cargan las librerías necesarias para la manipulación, análisis estadístico y representación gráfica de la información.
Posteriormente, se importa el conjunto de datos BRFSS 2015 desde un archivo en formato CSV, permitiendo su almacenamiento en una estructura tipo DataFrame que facilita la exploración y análisis de las variables. Esta etapa permite verificar la correcta lectura del archivo, reconocer la organización de las columnas y preparar el entorno para las fases posteriores del análisis exploratorio.
#LIBRERÍAS IMPORTANTES
library(readr)
library(dplyr)
library(ggplot2)
library(tidyr)
library(forcats)
library(tibble)
library(knitr)
library(kableExtra)
library(e1071)
library(patchwork)
library(gridExtra)
library(reshape2)
library(purrr)
library(scales)
theme_set(theme_minimal())
df <- read_csv("C:/Users/danih/Documents/Dataviz_py/diabetes_binary_health_indicators_BRFSS2015.csv")
## # A tibble: 6 × 22
## Diabetes_binary HighBP HighChol CholCheck BMI Smoker Stroke
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 1 1 1 40 1 0
## 2 0 0 0 0 25 1 0
## 3 0 1 1 1 28 0 0
## 4 0 1 0 1 27 0 0
## 5 0 1 1 1 24 0 0
## 6 0 1 1 1 25 1 0
## # ℹ 15 more variables: HeartDiseaseorAttack <dbl>, PhysActivity <dbl>,
## # Fruits <dbl>, Veggies <dbl>, HvyAlcoholConsump <dbl>, AnyHealthcare <dbl>,
## # NoDocbcCost <dbl>, GenHlth <dbl>, MentHlth <dbl>, PhysHlth <dbl>,
## # DiffWalk <dbl>, Sex <dbl>, Age <dbl>, Education <dbl>, Income <dbl>
## [1] 253680 22
## [1] "Diabetes_binary" "HighBP" "HighChol"
## [4] "CholCheck" "BMI" "Smoker"
## [7] "Stroke" "HeartDiseaseorAttack" "PhysActivity"
## [10] "Fruits" "Veggies" "HvyAlcoholConsump"
## [13] "AnyHealthcare" "NoDocbcCost" "GenHlth"
## [16] "MentHlth" "PhysHlth" "DiffWalk"
## [19] "Sex" "Age" "Education"
## [22] "Income"
El conjunto de datos presenta un total de 253.680 observaciones (filas) y 22 variables (columnas). Cada fila representa un individuo encuestado dentro del sistema BRFSS 2015, mientras que las columnas corresponden a distintos indicadores relacionados con condiciones médicas, hábitos de vida, características sociodemográficas y estado general de salud.
El tamaño del dataset resulta considerablemente amplio, lo que permite realizar un análisis exploratorio robusto y facilita la identificación de patrones y tendencias dentro de la población estudiada. Asimismo, la cantidad de variables disponibles proporciona una visión multidimensional de los factores asociados a la salud, permitiendo analizar diferentes aspectos del bienestar físico y conductual de los individuos.
## Rows: 253,680
## Columns: 22
## $ Diabetes_binary <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0…
## $ HighBP <dbl> 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1…
## $ HighChol <dbl> 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1…
## $ CholCheck <dbl> 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ BMI <dbl> 40, 25, 28, 27, 24, 25, 30, 25, 30, 24, 25, 34, 2…
## $ Smoker <dbl> 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0…
## $ Stroke <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0…
## $ HeartDiseaseorAttack <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0…
## $ PhysActivity <dbl> 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1…
## $ Fruits <dbl> 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1…
## $ Veggies <dbl> 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1…
## $ HvyAlcoholConsump <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ AnyHealthcare <dbl> 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ NoDocbcCost <dbl> 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0…
## $ GenHlth <dbl> 5, 3, 5, 2, 2, 2, 3, 3, 5, 2, 3, 3, 3, 4, 4, 2, 3…
## $ MentHlth <dbl> 18, 0, 30, 0, 3, 0, 0, 0, 30, 0, 0, 0, 0, 0, 30, …
## $ PhysHlth <dbl> 15, 0, 30, 0, 0, 2, 14, 0, 30, 0, 0, 30, 15, 0, 2…
## $ DiffWalk <dbl> 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0…
## $ Sex <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0…
## $ Age <dbl> 9, 7, 9, 11, 11, 10, 9, 11, 9, 8, 13, 10, 7, 11, …
## $ Education <dbl> 4, 6, 4, 3, 5, 6, 6, 4, 5, 4, 6, 5, 5, 4, 6, 6, 4…
## $ Income <dbl> 3, 1, 8, 6, 4, 8, 7, 4, 1, 3, 8, 1, 7, 6, 2, 8, 3…
Aunque todas las variables se encuentran almacenadas como valores numéricos, es importante destacar que varias de ellas representan variables categóricas binarias u ordinales codificadas numéricamente. Esta codificación facilita el análisis estadístico y la visualización, pero requiere una interpretación adecuada según el significado conceptual de cada variable.
Aunque df.info() muestra que la mayoría de columnas
están almacenadas como valores numéricos, esto no significa que todas
deban interpretarse como variables numéricas continuas. En este conjunto
de datos, varias columnas representan respuestas categóricas binarias
codificadas como 0/1 (por ejemplo, Smoker, HighBP, Stroke), mientras que
otras representan escalas ordinales (por ejemplo, GenHlth, Education,
Income, Age), donde el orden de los valores tiene significado pero no
necesariamente una distancia numérica “real” entre categorías.
Para fines de visualización y análisis exploratorio, clasificamos las variables según su naturaleza conceptual y las convertimos a su tipo adecuado, esto para mejorar la interpretación de gráficos, facilitar cálculos descriptivos y evitar tratamientos incorrectos (por ejemplo, interpretar un 0/1 como una variable continua)Aunque muchas variables aparecen como numéricas (int64), varias de ellas representan categorías binarias (0/1), por lo que conceptualmente son variables categóricas.
Se realiza una clasificación conceptual en tres grupos: variables numéricas (magnitud), ordinales (escala ordenada) y binarias (presencia/ausencia). Esta distinción mejora la selección de gráficos y evita interpretaciones incorrectas.
## Objetivo: Diabetes_binary
## Numéricas: BMI MentHlth PhysHlth
## Ordinales: GenHlth Age Education Income
## Binarias: HighBP HighChol CholCheck Smoker Stroke HeartDiseaseorAttack PhysActivity Fruits Veggies HvyAlcoholConsump AnyHealthcare NoDocbcCost DiffWalk Sex
Con el fin de garantizar coherencia semántica y mejorar la
interpretabilidad de las visualizaciones, se realizó una reclasificación
conceptual de las variables en una copia del dataset
(df_viz). Las variables binarias fueron transformadas en
categorías con etiquetas descriptivas completas (por ejemplo, “Con
hipertensión” / “Sin hipertensión”), evitando el uso genérico de
“Sí/No”.
Las variables ordinales (GenHlth, Age, Education e Income) fueron convertidas a categorías ordenadas, preservando su jerarquía natural. Además, los códigos correspondientes a respuestas faltantes o no informadas (por ejemplo, 77 y 99 en Income, 99 en Age) fueron tratados explícitamente como valores perdidos (NA).
Esta transformación no altera la información original, sino que optimiza la claridad analítica y la calidad de las representaciones gráficas, facilitando una interpretación más precisa de los patrones observados en el análisis exploratorio.
## Rows: 253,680
## Columns: 22
## $ Diabetes_binary <fct> Sin diabetes, Sin diabetes, Sin diabetes, Sin dia…
## $ HighBP <fct> Con hipertensión, Sin hipertensión, Con hipertens…
## $ HighChol <fct> Con colesterol alto, Sin colesterol alto, Con col…
## $ CholCheck <fct> Con chequeo en 5 años, Sin chequeo en 5 años, Con…
## $ BMI <dbl> 40, 25, 28, 27, 24, 25, 30, 25, 30, 24, 25, 34, 2…
## $ Smoker <fct> Fumador, Fumador, No fumador, No fumador, No fuma…
## $ Stroke <fct> Sin ACV, Sin ACV, Sin ACV, Sin ACV, Sin ACV, Sin …
## $ HeartDiseaseorAttack <fct> Sin enfermedad cardíaca, Sin enfermedad cardíaca,…
## $ PhysActivity <fct> Sin actividad física, Con actividad física, Sin a…
## $ Fruits <fct> No consume frutas diario, No consume frutas diari…
## $ Veggies <fct> Consume verduras diario, No consume verduras diar…
## $ HvyAlcoholConsump <fct> No consumo alto alcohol, No consumo alto alcohol,…
## $ AnyHealthcare <fct> Con cobertura médica, Sin cobertura médica, Con c…
## $ NoDocbcCost <fct> Sin barrera económica, Con barrera económica, Con…
## $ GenHlth <ord> Mala, Buena, Mala, Muy buena, Muy buena, Muy buen…
## $ MentHlth <dbl> 18, 0, 30, 0, 3, 0, 0, 0, 30, 0, 0, 0, 0, 0, 30, …
## $ PhysHlth <dbl> 15, 0, 30, 0, 0, 2, 14, 0, 30, 0, 0, 30, 15, 0, 2…
## $ DiffWalk <fct> Con dificultad al caminar, Sin dificultad al cami…
## $ Sex <fct> Mujer, Mujer, Mujer, Mujer, Mujer, Hombre, Mujer,…
## $ Age <ord> 60–64, 50–54, 60–64, 70–74, 70–74, 65–69, 60–64, …
## $ Education <ord> Secundaria completa / GED, Universidad completa, …
## $ Income <ord> "$15,000–20,000", "< $10,000", "$75,000+", "$35,0…
## [1] "integer"
Con el fin de documentar el conjunto de datos y facilitar la interpretación de las visualizaciones, se construyó un diccionario de datos que resume para cada variable su rol (objetivo o característica), su tipo conceptual (binaria, numérica u ordinal), su codificación y una breve descripción basada en el codebook del BRFSS.
| Variable | Rol | Tipo | Codificación | Descripción |
|---|---|---|---|---|
| Diabetes_binary | Target | Binaria (categórica) | Sin diabetes / Prediabetes–Diabetes | Indicador de presencia de diabetes o prediabetes |
| HighBP | Feature | Binaria (categórica) | Sin hipertensión / Con hipertensión | Diagnóstico de hipertensión arterial |
| HighChol | Feature | Binaria (categórica) | Sin colesterol alto / Con colesterol alto | Diagnóstico de colesterol elevado |
| CholCheck | Feature | Binaria (categórica) | Sin chequeo en 5 años / Con chequeo en 5 años | Realizó chequeo de colesterol en los últimos 5 años |
| Smoker | Feature | Binaria (categórica) | No fumador / Fumador | Ha fumado al menos 100 cigarrillos en su vida |
| Stroke | Feature | Binaria (categórica) | Sin ACV / Con ACV | Antecedente de accidente cerebrovascular |
| HeartDiseaseorAttack | Feature | Binaria (categórica) | Sin enfermedad cardíaca / Con enfermedad cardíaca | Diagnóstico de enfermedad coronaria o infarto |
| PhysActivity | Feature | Binaria (categórica) | Sin actividad física / Con actividad física | Actividad física en los últimos 30 días (excluye trabajo) |
| Fruits | Feature | Binaria (categórica) | No consume frutas diario / Consume frutas diario | Consumo diario de frutas |
| Veggies | Feature | Binaria (categórica) | No consume verduras diario / Consume verduras diario | Consumo diario de verduras |
| HvyAlcoholConsump | Feature | Binaria (categórica) | No consumo alto alcohol / Consumo alto alcohol | Consumo elevado de alcohol según criterio BRFSS |
| AnyHealthcare | Feature | Binaria (categórica) | Sin cobertura médica / Con cobertura médica | Cuenta con seguro o cobertura médica |
| NoDocbcCost | Feature | Binaria (categórica) | Sin barrera económica / Con barrera económica | No pudo consultar médico por razones económicas |
| DiffWalk | Feature | Binaria (categórica) | Sin dificultad al caminar / Con dificultad al caminar | Dificultad para caminar o subir escaleras |
| Sex | Feature | Binaria (categórica) | Mujer / Hombre | Sexo biológico del encuestado |
| BMI | Feature | Numérica continua | Valor numérico | Índice de Masa Corporal |
| MentHlth | Feature | Numérica discreta | 0–30 días | Número de días con mala salud mental en los últimos 30 días |
| PhysHlth | Feature | Numérica discreta | 0–30 días | Número de días con mala salud física en los últimos 30 días |
| GenHlth | Feature | Ordinal (categórica ordenada) | Excelente / Muy buena / Buena / Regular / Mala | Autopercepción del estado general de salud |
| Age | Feature | Ordinal (categórica ordenada) | 18–24 … 80+ | Categoría de edad (13 grupos ordenados) |
| Education | Feature | Ordinal (categórica ordenada) | Nunca asistió … Universidad completa | Nivel educativo del encuestado |
| Income | Feature | Ordinal (categórica ordenada) | < $10,000 … $75,000+ | Categoría de ingresos anuales del hogar |
Antes de proceder con el análisis descriptivo y las visualizaciones, es fundamental verificar la calidad del conjunto de datos. Esta etapa permite identificar posibles inconsistencias, valores faltantes, duplicaciones o errores en los rangos de las variables, garantizando que los resultados posteriores sean confiables y correctamente interpretados.
colSums(is.na(df))
## Diabetes_binary HighBP HighChol
## 0 0 0
## CholCheck BMI Smoker
## 0 0 0
## Stroke HeartDiseaseorAttack PhysActivity
## 0 0 0
## Fruits Veggies HvyAlcoholConsump
## 0 0 0
## AnyHealthcare NoDocbcCost GenHlth
## 0 0 0
## MentHlth PhysHlth DiffWalk
## 0 0 0
## Sex Age Education
## 0 0 0
## Income
## 0
## Diabetes_binary HighBP HighChol
## 0 0 0
## CholCheck BMI Smoker
## 0 0 0
## Stroke HeartDiseaseorAttack PhysActivity
## 0 0 0
## Fruits Veggies HvyAlcoholConsump
## 0 0 0
## AnyHealthcare NoDocbcCost GenHlth
## 0 0 0
## MentHlth PhysHlth DiffWalk
## 0 0 0
## Sex Age Education
## 0 0 0
## Income
## 0
Se realizó una verificación de valores faltantes mediante el método
isnull(). Los resultados muestran que ninguna variable
presenta valores nulos, lo cual indica que el conjunto de datos se
encuentra completo y no requiere imputación ni eliminación de registros
por este motivo.
## [1] 24206
## # A tibble: 24,206 × 22
## Diabetes_binary HighBP HighChol CholCheck BMI Smoker Stroke
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 1 1 27 1 0
## 2 0 0 0 1 21 1 0
## 3 0 0 0 1 32 0 0
## 4 0 0 0 1 21 0 0
## 5 0 0 0 1 24 0 0
## 6 0 0 0 1 22 0 0
## 7 0 0 0 1 22 0 0
## 8 0 0 0 1 26 1 0
## 9 0 0 1 1 29 0 0
## 10 0 0 0 1 24 0 0
## # ℹ 24,196 more rows
## # ℹ 15 more variables: HeartDiseaseorAttack <dbl>, PhysActivity <dbl>,
## # Fruits <dbl>, Veggies <dbl>, HvyAlcoholConsump <dbl>, AnyHealthcare <dbl>,
## # NoDocbcCost <dbl>, GenHlth <dbl>, MentHlth <dbl>, PhysHlth <dbl>,
## # DiffWalk <dbl>, Sex <dbl>, Age <dbl>, Education <dbl>, Income <dbl>
## [1] 9.541943
NOTA: La verificación de registros duplicados identificó 24.206 observaciones completamente idénticas, lo que representa aproximadamente el 9.5% del total de registros. Sin embargo, dado que el dataset contiene un identificador único por individuo (ID), el cual fue excluido al importar los datos, y que se trata de datos provenientes de una encuesta poblacional con variables mayoritariamente categóricas y discretas, es plausible que múltiples individuos compartan exactamente el mismo patrón de respuestas. Por lo tanto, estos registros no se consideran errores estructurales y no fueron eliminados del análisis, ya que representan individuos distintos con características similares.
Estas deberían contener exclusivamente valores 0 y 1.
## Diabetes_binary 0 1
## HighBP 0 1
## HighChol 0 1
## CholCheck 0 1
## Smoker 0 1
## Stroke 0 1
## HeartDiseaseorAttack 0 1
## PhysActivity 0 1
## Fruits 0 1
## Veggies 0 1
## HvyAlcoholConsump 0 1
## AnyHealthcare 0 1
## NoDocbcCost 0 1
## DiffWalk 0 1
## Sex 0 1
Se verificó que las variables binarias únicamente contuvieran valores dentro del rango esperado {0, 1}. No se encontraron valores fuera de esta codificación, lo que confirma la consistencia de las variables dicotómicas.
## GenHlth min: 1 max: 5
## Education min: 1 max: 6
## Income min: 1 max: 8
## Age min: 1 max: 13
Las variables ordinales fueron verificadas para asegurar que sus valores se encuentren dentro de los rangos definidos por el instrumento BRFSS. Los valores mínimos y máximos observados coinciden con los límites esperados, por lo que no se detectaron inconsistencias.
## BMI MentHlth PhysHlth
## 28.382364 3.184772 4.242081
## BMI MentHlth PhysHlth
## Mínimo 12 0 0
## Máximo 98 30 30
## Rango 86 30 30
Se realizó una verificación de rangos esperados para las variables numéricas continuas y discretas. Se analizaron los valores mínimo y máximo, así como el rango observado. Los resultados confirman que las variables BMI, MentHlth y PhysHlth se encuentran dentro de los límites teóricamente esperados (BMI: 12–98; salud física y mental: 0–30 días), sin evidencia de valores fuera de dominio.
En conjunto, el dataset presenta una alta calidad estructural: no se identificaron valores faltantes, duplicados ni inconsistencias en los rangos esperados de las variables. Esto permite proceder con el análisis exploratorio con un alto grado de confianza en la integridad de la información.
resumen_outliers <- function(df_viz) {
numericas <- df_viz %>%
select(where(is.numeric)) %>%
names()
resultados <- map_df(numericas, function(col) {
Q1 <- quantile(df_viz[[col]], 0.25, na.rm = TRUE)
Q3 <- quantile(df_viz[[col]], 0.75, na.rm = TRUE)
IQR_val <- Q3 - Q1
limite_inf <- Q1 - 1.5 * IQR_val
limite_sup <- Q3 + 1.5 * IQR_val
outliers <- df_viz %>%
filter(.data[[col]] < limite_inf | .data[[col]] > limite_sup)
tibble(
Variable = col,
Q1 = round(Q1, 2),
Q3 = round(Q3, 2),
IQR = round(IQR_val, 2),
`Límite inferior` = round(limite_inf, 2),
`Límite superior` = round(limite_sup, 2),
`N° Outliers` = nrow(outliers),
`% Outliers` = round(nrow(outliers) / nrow(df_viz) * 100, 2)
)
})
resultados %>%
arrange(desc(`% Outliers`))
}
tabla_outliers <- resumen_outliers(df_viz)
kable(tabla_outliers)
| Variable | Q1 | Q3 | IQR | Límite inferior | Límite superior | N° Outliers | % Outliers |
|---|---|---|---|---|---|---|---|
| PhysHlth | 0 | 3 | 3 | -4.5 | 7.5 | 40949 | 16.14 |
| MentHlth | 0 | 2 | 2 | -3.0 | 5.0 | 36208 | 14.27 |
| BMI | 24 | 31 | 7 | 13.5 | 41.5 | 9847 | 3.88 |
Se realizó la detección de valores atípicos en las variables
numéricas mediante el criterio del rango intercuartílico
(IQR). Los resultados evidencian que las variables
relacionadas con el número de días de mala salud física (PhysHlth) y
mala salud mental (MentHlth) presentan la mayor proporción de valores
atípicos (16.14% y 14.27%, respectivamente). Este comportamiento se
explica por la naturaleza discreta y asimétrica de estas variables, que
concentran una alta proporción de observaciones en valores bajos
(especialmente en 0 días) y presentan una cola extendida hacia valores
altos.
En el caso del Índice de Masa Corporal (BMI), se identificó un 3.88% de valores atípicos, correspondientes principalmente a niveles elevados del índice, clínicamente asociados a obesidad severa.
NOTA: El análisis de valores atípicos se realizó únicamente sobre variables numéricas continuas o de conteo (BMI, PhysHlth y MentHlth), dado que el criterio del rango intercuartílico no es apropiado para variables categóricas, binarias u ordinales. Variables como Diabetes_binary, GenHlth o Education representan categorías discretas sin continuidad numérica real, por lo que la detección de outliers en estos casos carece de interpretación estadística válida.
## BMI MentHlth PhysHlth
## 28.382364 3.184772 4.242081
## BMI MentHlth PhysHlth
## Media 28.38 3.18 4.24
## Desviación estándar 6.61 7.41 8.72
## Mínimo 12.00 0.00 0.00
## Máximo 98.00 30.00 30.00
## Mediana 27.00 0.00 0.00
## Percentil 25% 24.00 0.00 0.00
## Percentil 75% 31.00 2.00 3.00
El Índice de Masa Corporal BMI presenta una media de
28.38 y una mediana de 27.00, lo que sugiere una ligera asimetría
positiva. El rango observado (12.00 – 98.00) indica una amplitud
considerable, con presencia de valores elevados que pueden influir en la
media. El percentil 25 (24.00) y el percentil 75 (31.00) muestran que el
50% central de la población se encuentra dentro de un intervalo
relativamente concentrado, lo que sugiere variabilidad moderada.
En el caso de MentHlth (días de mala salud mental), la
media es 3.18 días, mientras que la mediana es 0.00 días. Este contraste
indica que más de la mitad de los individuos no reportaron días de mala
salud mental en los últimos 30 días, pero existe un subconjunto que sí
reporta valores altos, generando una distribución asimétrica hacia la
derecha.
De manera similar, PhysHlth presenta una media de 4.24
días y una mediana de 0.00 días. La diferencia entre media y mediana
evidencia también una fuerte asimetría positiva, con concentración de
valores en cero y presencia de casos con múltiples días reportados.
En conjunto, las variables de salud física y mental muestran distribuciones altamente concentradas en cero, con colas hacia valores superiores, mientras que el BMI presenta mayor dispersión y variabilidad continua.
## BMI MentHlth PhysHlth
## Asimetría 2.12 2.72 2.21
## Curtosis 11.00 6.44 3.50
Todas las variables presentan asimetría positiva considerable (valores mayores a 2), lo que indica que sus distribuciones se encuentran sesgadas hacia la derecha. Esto significa que existe una concentración elevada de observaciones en valores bajos, acompañada de una cola extendida hacia valores superiores. Este patrón es particularmente evidente en MentHlth (2.72), lo que confirma la fuerte acumulación de individuos que reportan cero días de mala salud mental, junto con un subconjunto más reducido que reporta valores altos.
En el caso de BMI (2.12), la asimetría positiva sugiere la presencia de valores elevados que desplazan la media por encima de la mediana, lo cual es coherente con la amplitud observada en el rango y con la posible existencia de individuos con obesidad severa.
Respecto a la curtosis, los valores obtenidos indican que las tres variables presentan distribuciones leptocúrticas (curtosis > 0 bajo definición de Fisher utilizada por pandas), especialmente BMI (11.00). Esto implica que las distribuciones tienen colas pesadas y mayor concentración de valores extremos en comparación con una distribución normal. MentHlth (6.44) y PhysHlth (3.50) también muestran colas pronunciadas, aunque en menor medida.
En conjunto, estos resultados confirman que ninguna de las variables numéricas sigue una distribución aproximadamente normal. Las distribuciones se caracterizan por alta concentración en valores bajos y presencia de observaciones extremas, lo que justifica el uso de visualizaciones robustas (como histogramas y diagramas de caja) y medidas basadas en percentiles para el análisis posterior.
El análisis univariado tiene como objetivo examinar cada variable de manera individual para comprender su distribución, comportamiento y características principales. En esta sección se describen medidas de tendencia central, dispersión y forma en variables numéricas, así como frecuencias y proporciones en variables categóricas. Este análisis permite identificar posibles valores atípicos, asimetrías, patrones dominantes y calidad de los datos, constituyendo la base para interpretaciones posteriores y para la construcción del análisis bivariado y multivariado.
## # A tibble: 2 × 3
## Sex Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Mujer 141974 56.0
## 2 Hombre 111706 44.0
La tabla de frecuencias muestra la distribución de la variable Sex en la población analizada. Se observa que el 55.97% (n = 14,197) de los registros corresponde a mujeres, mientras que el 44.03% (n = 11,706) pertenece a hombres.
Estos resultados indican que la muestra presenta una ligera mayor representación de mujeres frente a los hombres. En términos generales, la distribución no es extremadamente desbalanceada, aunque sí existe una diferencia aproximada de 12 puntos porcentuales entre ambas categorías.
## # A tibble: 13 × 4
## Código `Intervalo de Edad` N `%`
## <dbl> <chr> <int> <dbl>
## 1 1 18–24 5700 2.25
## 2 2 25–29 7598 3
## 3 3 30–34 11123 4.38
## 4 4 35–39 13823 5.45
## 5 5 40–44 16157 6.37
## 6 6 45–49 19819 7.81
## 7 7 50–54 26314 10.4
## 8 8 55–59 30832 12.2
## 9 9 60–64 33244 13.1
## 10 10 65–69 32194 12.7
## 11 11 70–74 23533 9.28
## 12 12 75–79 15980 6.3
## 13 13 80+ 17363 6.84
La distribución etaria evidencia una concentración progresiva de la muestra en los grupos de edad media y tardía. Se observa que los intervalos comprendidos entre 50 y 69 años (códigos 7 a 10) acumulan aproximadamente el 48.31% del total de observaciones, con un pico específico en el grupo 60–64 años (13.10%), seguido por el grupo 65–69 años (12.69%) y 55–59 años (12.15%).
Este patrón indica una clara sobrerrepresentación de población en etapas de madurez y transición hacia la vejez, mientras que los grupos jóvenes (18–34 años) presentan una participación relativa considerablemente menor (aprox. 9.63% acumulado).
## # A tibble: 6 × 3
## Education n porcentaje
## <ord> <int> <dbl>
## 1 Nunca asistió 174 0.000686
## 2 Primaria incompleta 4043 0.0159
## 3 Secundaria incompleta 9478 0.0374
## 4 Secundaria completa / GED 62750 0.247
## 5 Universidad incompleta 69910 0.276
## 6 Universidad completa 107325 0.423
La distribución del nivel educativo evidencia una marcada concentración de la población en niveles de escolaridad media y superior. El grupo con mayor representación corresponde a los graduados universitarios, que constituyen el 42.31% (n = 107,325) de la muestra, seguido por quienes reportan algo de educación universitaria o formación técnica, con un 27.56% (n = 69,910). En conjunto, estas dos categorías agrupan cerca del 70% de los individuos, lo que indica un perfil educativo predominantemente alto dentro del dataset.
El nivel de graduado de secundaria representa el 24.74%, consolidando la mayor parte de la población en niveles educativos al menos completos en educación media. En contraste, los niveles educativos bajos presentan una participación marginal: los individuos con escolaridad inferior a secundaria (categorías 1 a 3) suman menos del 6% del total, evidenciando una subrepresentación relativa de poblaciones con baja escolaridad.
## # A tibble: 8 × 4
## Código Categoría N `%`
## <ord> <chr> <int> <dbl>
## 1 < $10,000 Menos de $10,000 9811 3.87
## 2 $10,000–15,000 $10,000–$14,999 11783 4.64
## 3 $15,000–20,000 $15,000–$19,999 15994 6.3
## 4 $20,000–25,000 $20,000–$24,999 20135 7.94
## 5 $25,000–35,000 $25,000–$34,999 25883 10.2
## 6 $35,000–50,000 $35,000–$49,999 36470 14.4
## 7 $50,000–75,000 $50,000–$74,999 43219 17.0
## 8 $75,000+ $75,000 o más 90385 35.6
La distribución del nivel de ingresos evidencia una clara concentración de la población en los estratos económicos medios y altos. El grupo más representativo corresponde a individuos con ingresos anuales de $75,000 o más, que constituyen el 35.63% (n = 90,385) del total de la muestra, seguido por el rango de $50,000–$74,999, con un 17.04%. En conjunto, estos dos niveles agrupan más de la mitad de las observaciones, indicando una predominancia de hogares con ingresos relativamente elevados dentro del dataset.
Los niveles intermedios de ingreso ($25,000–$49,999) presentan participaciones moderadas, mientras que los estratos de ingresos bajos (menos de $20,000 anuales) representan una proporción considerablemente menor, acumulando menos del 13% de la muestra. Este patrón sugiere una distribución socioeconómica desplazada hacia niveles superiores de ingreso, evidenciando una posible subrepresentación relativa de poblaciones económicamente vulnerables.
## # A tibble: 2 × 3
## AnyHealthcare Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin cobertura médica 12417 4.89
## 2 Con cobertura médica 241263 95.1
La distribución del acceso a servicios de salud muestra una marcada predominancia de individuos que reportan contar con cobertura o acceso sanitario. En particular, el 95.11% (n = 241,263) de la población indica tener acceso a servicios de salud, mientras que únicamente el 4.89% (n = 12,417) manifiesta no disponer de dicho acceso.
Esta fuerte concentración en la categoría afirmativa evidencia una población ampliamente integrada al sistema de atención sanitaria, lo cual es consistente con el diseño de encuestas poblacionales enfocadas en monitoreo de condiciones de salud en adultos. Sin embargo, la baja proporción relativa del grupo sin acceso introduce un desbalance estructural que debe considerarse en análisis posteriores, especialmente en comparaciones entre grupos o en modelos predictivos, donde la menor representación puede afectar la estabilidad de estimaciones para esta categoría.
## # A tibble: 2 × 3
## NoDocbcCost Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin barrera económica 232326 91.6
## 2 Con barrera económica 21354 8.42
La variable refleja la proporción de individuos que reportaron no haber acudido al médico en el último año debido a limitaciones económicas. Los resultados indican que el 91.58% (n = 232,326) de la muestra no experimentó barreras económicas para acceder a consulta médica, mientras que el 8.42% (n = 21,354) sí reportó haber pospuesto o evitado atención médica por motivos de costo.
Aunque la mayoría de la población no presenta esta limitación, el porcentaje cercano al 8% no es despreciable desde una perspectiva de salud pública, ya que representa un segmento vulnerable cuya condición económica puede incidir en diagnósticos tardíos, menor seguimiento clínico y potencial agravamiento de enfermedades crónicas.
## # A tibble: 2 × 3
## Smoker Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 No fumador 141257 55.7
## 2 Fumador 112423 44.3
La distribución de la variable Smoker muestra que el 55.68% (n = 141,257) de la población reporta no ser fumador, mientras que el 44.32% (n = 112,423) corresponde a individuos que sí presentan antecedente de consumo de tabaco.
A diferencia de otras variables previamente analizadas, la proporción entre categorías no presenta un desbalance extremo, lo que indica una representación relativamente significativa del grupo fumador dentro del dataset. Este patrón sugiere que el consumo de tabaco constituye un comportamiento de riesgo ampliamente presente en la población estudiada, con una magnitud suficiente para permitir comparaciones robustas entre grupos.
## # A tibble: 2 × 3
## PhysActivity Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin actividad física 61760 24.4
## 2 Con actividad física 191920 75.6
La distribución de la variable PhysActivity indica que el 75.65% (n = 191,920) de la población reporta haber realizado actividad física en los últimos 30 días, mientras que el 24.35% (n = 61,760) señala no haber realizado ningún tipo de actividad física durante ese periodo.
Esta estructura evidencia una clara predominancia de individuos con algún nivel de actividad física reciente, lo cual sugiere una muestra mayoritariamente activa desde el punto de vista conductual. Sin embargo, la proporción cercana a una cuarta parte de la población que reporta inactividad no es marginal desde una perspectiva epidemiológica, dado que el sedentarismo constituye un factor de riesgo relevante para enfermedades cardiovasculares, metabólicas y otras condiciones crónicas.
## # A tibble: 2 × 3
## Fruits Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 No consume frutas diario 92782 36.6
## 2 Consume frutas diario 160898 63.4
La distribución de la variable Fruits muestra que el 63.43% (n = 160,898) de los individuos reporta consumir frutas de manera regular, mientras que el 36.57% (n = 92,782) indica no mantener este hábito alimenticio.
Estos resultados evidencian una predominancia del consumo de frutas dentro de la población analizada; sin embargo, la proporción de individuos que no reporta consumo regular continúa siendo considerable, representando más de un tercio de la muestra. Desde una perspectiva de salud pública, esta distribución sugiere la coexistencia de comportamientos alimentarios saludables junto con un segmento relevante de la población potencialmente expuesto a factores dietarios de riesgo.
## # A tibble: 2 × 3
## Veggies Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 No consume verduras diario 47839 18.9
## 2 Consume verduras diario 205841 81.1
La distribución de la variable indica que el 81.14% (n = 205,841) de los individuos reporta consumir vegetales de manera regular, mientras que el 18.86% (n = 47,839) señala no incluir este tipo de alimentos en su consumo habitual.
Estos resultados evidencian una alta prevalencia de consumo de vegetales dentro de la población analizada, lo que sugiere la presencia generalizada de comportamientos alimentarios asociados a patrones nutricionales saludables. No obstante, la proporción cercana al 19% de individuos sin consumo regular continúa siendo relevante desde una perspectiva epidemiológica, dado que dietas bajas en vegetales se asocian con mayor riesgo de enfermedades crónicas no transmisibles.
## # A tibble: 2 × 3
## HvyAlcoholConsump Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 No consumo alto alcohol 239424 94.4
## 2 Consumo alto alcohol 14256 5.62
La distribución muestra que el 94.38% (n = 239,424) de los individuos no reporta consumo excesivo de alcohol, mientras que el 5.62% (n = 14,256) sí presenta patrones de consumo considerados elevados o de riesgo.
Esta marcada diferencia entre categorías indica que el consumo excesivo de alcohol constituye un comportamiento relativamente poco frecuente dentro de la población analizada. Sin embargo, aunque minoritario, el grupo que presenta este patrón mantiene una relevancia epidemiológica importante, dado que el consumo elevado de alcohol se asocia con múltiples efectos adversos sobre la salud, incluyendo enfermedades cardiovasculares, hepáticas y trastornos metabólicos.
## # A tibble: 2 × 3
## CholCheck Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin chequeo en 5 años 9470 3.73
## 2 Con chequeo en 5 años 244210 96.3
La distribución de la variable CholCheck indica que el 96.27% (n = 244,210) de los individuos reporta haberse realizado un control de colesterol en los últimos cinco años, mientras que únicamente el 3.73% (n = 9,470) señala no haber efectuado dicha evaluación en ese periodo.
Este patrón refleja una alta cobertura en prácticas preventivas relacionadas con monitoreo cardiovascular dentro de la población estudiada. La proporción mayoritaria sugiere una población ampliamente integrada a esquemas de seguimiento médico, particularmente en lo que respecta a factores de riesgo metabólico.
## BMI
## count 253680.00
## mean 28.38
## std 6.61
## min 12.00
## 25% 24.00
## 50% 27.00
## 75% 31.00
## max 98.00
El resumen estadístico del Índice de Masa Corporal (BMI) muestra un total de 253,680 observaciones, con un valor promedio de 28.38 y una mediana de 27.00, lo que indica que la mitad de los individuos presenta valores de BMI iguales o inferiores a este punto central.
Los valores se distribuyen entre un mínimo de 12.00 y un máximo de 98.00, evidenciando un amplio rango dentro de la variable. El primer cuartil (Q1 = 24.00) y el tercer cuartil (Q3 = 31.00) indican que el 50% central de las observaciones se concentra dentro de este intervalo.
La desviación estándar de 6.61 refleja la variabilidad presente en los valores de BMI dentro del conjunto de datos analizado.
La distribución del Índice de Masa Corporal (BMI) muestra una mayor concentración de observaciones en valores intermedios, con una frecuencia más alta alrededor del rango comprendido aproximadamente entre 24 y 31, en coherencia con los cuartiles observados previamente en el resumen estadístico.
Asimismo, la forma de la distribución presenta una extensión visible hacia valores más altos de BMI, sugiriendo una asimetría hacia la derecha. Esta característica podría indicar la presencia de valores extremos en la parte superior de la distribución.
## # A tibble: 2 × 3
## HighBP Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin hipertensión 144851 57.1
## 2 Con hipertensión 108829 42.9
La distribución muestra que el 57.10% (n = 144,851) de los individuos no reporta diagnóstico de hipertensión arterial, mientras que el 42.90% (n = 108,829) sí presenta antecedentes de presión arterial alta.
A diferencia de otras variables relacionadas con conductas o acceso a servicios de salud, la proporción de individuos con hipertensión resulta considerablemente elevada, evidenciando una presencia sustancial de esta condición dentro de la población analizada. La cercanía relativa entre ambas categorías sugiere una distribución más equilibrada, lo que indica que la hipertensión constituye un fenómeno ampliamente representado en el dataset y no un evento marginal.
## # A tibble: 2 × 3
## HighChol Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin colesterol alto 146089 57.6
## 2 Con colesterol alto 107591 42.4
La distribución de la variable HighChol indica que el 57.59% (n = 146,089) de los individuos no reporta niveles elevados de colesterol, mientras que el 42.41% (n = 107,591) sí presenta diagnóstico de hipercolesterolemia.
Al igual que en el caso de la hipertensión arterial, la proporción de individuos con colesterol alto es considerablemente elevada, representando más de dos quintas partes de la población analizada. Esta magnitud evidencia que las alteraciones metabólicas constituyen un componente sustancial dentro del perfil de salud del dataset y no un evento aislado o marginal.
## # A tibble: 5 × 3
## Categoría N `%`
## <ord> <int> <dbl>
## 1 Excelente 45299 17.9
## 2 Muy buena 89084 35.1
## 3 Buena 75646 29.8
## 4 Regular 31570 12.4
## 5 Mala 12081 4.76
La percepción general del estado de salud, presenta una distribución predominantemente concentrada en valoraciones positivas o intermedias. La categoría más frecuente corresponde a “Buena”, con el 29.82% (n = 75,646) de las observaciones, seguida por “Muy buena” (35.12%) y “Excelente” (17.86%). En conjunto, estas tres categorías agrupan más del 80% de la población, indicando una percepción global favorable del estado de salud entre los individuos analizados.
Por otro lado, las categorías asociadas a percepciones menos favorables, “Regular” (12.44%) y “Mala” (4.76%), representan una proporción considerablemente menor, aunque epidemiológicamente relevante, ya que suelen asociarse con mayor carga de enfermedad crónica, limitaciones funcionales y mayor utilización de servicios sanitarios.
La distribución de los días con mala salud física presenta una marcada
asimetría positiva, con una fuerte concentración en el valor cero
(63.1%), lo que indica que la mayoría de la población no reportó ningún
día de malestar físico en el último mes. A partir de ahí, las
frecuencias disminuyen rápidamente en los valores bajos (1–5 días) y se
observa una cola derecha prolongada hasta 30 días, aunque con
proporciones pequeñas, lo que evidencia alta dispersión y presencia de
casos persistentes o crónicos.
La distribución de los días con mala salud mental también muestra una marcada asimetría positiva, con una concentración muy alta en el valor cero (69.3%), lo que indica que la mayoría de los encuestados no reportó episodios de malestar mental en el último mes. A medida que aumentan los días reportados, la frecuencia disminuye de forma pronunciada, aunque se mantiene una cola derecha que alcanza los 30 días, reflejando la presencia de un subgrupo con afectación persistente.
## # A tibble: 2 × 3
## DiffWalk Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin dificultad al caminar 211005 83.2
## 2 Con dificultad al caminar 42675 16.8
La distribución de la variable, que evalúa la presencia de dificultades para caminar o subir escaleras, indica que el 83.18% (n = 211,005) de los individuos no reporta limitaciones funcionales de movilidad, mientras que el 16.82% (n = 42,675) sí manifiesta algún grado de dificultad en estas actividades.
Aunque la mayoría de la población no presenta restricciones de movilidad, la proporción cercana al 17% resulta significativa desde una perspectiva de salud pública, ya que las limitaciones funcionales suelen asociarse con envejecimiento, presencia de enfermedades crónicas y determioro del estado general de salud. Este grupo puede representar individuos con mayor vulnerabilidad física y mayor probabilidad de requerir atención médica continua.
## # A tibble: 2 × 3
## Stroke Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin ACV 243388 95.9
## 2 Con ACV 10292 4.06
La distribución de la variable Stroke indica que el 95.94% (n = 243,388) de los individuos no reporta antecedente de accidente cerebrovascular, mientras que el 4.06% (n = 10,292) sí presenta historial de esta condición.
Aunque la proporción de casos es relativamente baja en términos absolutos, su relevancia clínica es significativa, dado que el accidente cerebrovascular constituye un evento de alta gravedad, asociado a morbilidad sustancial, discapacidad funcional y aumento del riesgo de mortalidad. La baja prevalencia observada es consistente con la naturaleza de esta condición en población general, donde, a pesar de su impacto severo, su frecuencia es menor en comparación con otros factores de riesgo cardiovascular como hipertensión o colesterol elevado.
## # A tibble: 2 × 3
## HeartDiseaseorAttack Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin enfermedad cardíaca 229787 90.6
## 2 Con enfermedad cardíaca 23893 9.42
La distribución muestra que el 90.58% (n = 229,787) de los individuos no reporta antecedente de enfermedad cardíaca o infarto de miocardio, mientras que el 9.42% (n = 23,893) sí presenta historial de este tipo de evento cardiovascular.
Aunque la mayoría de la población no reporta diagnóstico previo, la proporción cercana al 9.5% resulta epidemiológicamente significativa, ya que las enfermedades cardiovasculares constituyen una de las principales causas de morbilidad y mortalidad a nivel poblacional. En comparación con la variable Stroke, la prevalencia observada es más elevada, lo cual es consistente con la mayor frecuencia relativa de eventos coronarios frente a accidentes cerebrovasculares en población adulta.
## # A tibble: 2 × 3
## Diabetes_binary Frecuencia `Porcentaje (%)`
## <fct> <int> <dbl>
## 1 Sin diabetes 218334 86.1
## 2 Prediabetes / Diabetes 35346 13.9
La variable Diagnóstico de Diabetes, que constituye el desenlace principal del estudio, muestra que el 13.93% (n = 35,346) de los individuos presenta diagnóstico de diabetes, mientras que el 86.07% (n = 218,334) no reporta esta condición.
Desde una perspectiva epidemiológica, la prevalencia observada resulta consistente con patrones poblacionales de diabetes mellitus tipo 2 en población adulta, especialmente en contextos donde predominan grupos etarios intermedios y avanzados, como se evidenció previamente en la distribución por edad del dataset.
El análisis bivariado busca explorar la relación entre dos variables con el fin de identificar asociaciones, diferencias significativas o patrones conjuntos de comportamiento. Dependiendo del tipo de variables (numéricas o categóricas), se emplean herramientas como gráficos comparativos, medidas de correlación o pruebas estadísticas. Esta etapa permite evaluar posibles relaciones relevantes para el fenómeno estudiado y aporta evidencia preliminar sobre vínculos que podrían ser profundizados en modelos explicativos posteriores.
## Sin hipertensión Con hipertensión Total
## Sin diabetes 136109 (62.34%) 82225 (37.66%) 218334 (100%)
## Prediabetes / Diabetes 8742 (24.73%) 26604 (75.27%) 35346 (100%)
## Chi-cuadrado: 17562.45
## Grados de libertad: 1
## p-valor: 0
## Odds Ratio (OR): 5.04
La tabla de contingencia evidencia una asociación clara entre la presencia de hipertensión y el diagnóstico de prediabetes/diabetes. En el grupo con Prediabetes / Diabetes, el 75.27% presenta hipertensión, mientras que solo el 24.73% no la presenta. En contraste, dentro del grupo Sin diabetes, el porcentaje con hipertensión disminuye considerablemente al 37.66%, siendo mayoritario el grupo sin hipertensión (62.34%).
Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 17562.45 con un p-valor < 0.001 (reportado como 0.0 por redondeo computacional), lo que indica que existe evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre las variables. En consecuencia, se concluye que la presencia de hipertensión está significativamente asociada con el diagnóstico de prediabetes/diabetes en la muestra analizada.
Adicionalmente, el Odds Ratio (OR = 5.04) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente cinco veces mayores en individuos con hipertensión en comparación con aquellos sin hipertensión. Este valor cuantifica la magnitud de la asociación y confirma que no solo existe significancia estadística, esperable dada la gran muestra, sino también una relación fuerte desde el punto de vista epidemiológico.
En consecuencia, se concluye que la hipertensión constituye un factor significativamente asociado al estado diabético en la muestra analizada, consolidándose como una condición estrechamente vinculada al riesgo metabólico.
tabla_pct <- prop.table(table(df_viz$Diabetes_binary, df_viz$HighBP), margin = 1) * 100
tabla_abs <- table(df_viz$Diabetes_binary, df_viz$HighBP)
plot_pct <- as.data.frame(tabla_pct) %>%
rename(
Diabetes_binary = Var1,
`Hipertensión` = Var2,
Porcentaje = Freq
)
plot_abs <- as.data.frame(tabla_abs) %>%
rename(
Diabetes_binary = Var1,
`Hipertensión` = Var2,
Frecuencia = Freq
)
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = `Hipertensión`)) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 4
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según hipertensión",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = "Hipertensión"
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = `Hipertensión`)) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 4
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según hipertensión",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = "Hipertensión"
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
#p1 / p2 + plot_layout(heights = c(1.1, 1))
# tu código p1, p2 y patchwork
p1 / p2 + plot_layout(heights = c(1.4, 1.4))
## Sin colesterol alto Con colesterol alto Total
## Sin diabetes 134429 (61.57%) 83905 (38.43%) 218334 (100%)
## Prediabetes / Diabetes 11660 (32.99%) 23686 (67.01%) 35346 (100%)
## Chi-cuadrado: 10174.07
## Grados de libertad: 1
## p-valor: 0
## Odds Ratio (OR): 3.25
La tabla de contingencia evidencia una diferencia sustancial en la distribución del colesterol alto según el estado diabético. Dentro del grupo con Prediabetes / Diabetes, el 67.01% presenta colesterol alto, mientras que el 32.99% no lo presenta. En contraste, en el grupo Sin diabetes, solo el 38.43% presenta colesterol alto y el 61.57% no lo presenta.
Esta diferencia porcentual sugiere una asociación relevante entre ambas condiciones metabólicas. La prueba Chi-cuadrado de independencia arroja un estadístico de χ² = 10174.07, con 1 grado de libertad y un p-valor < 0.001 (reportado como 0.0 por redondeo computacional). Dado que el p-valor es significativamente menor al nivel de significancia convencional (α = 0.05), se rechaza la hipótesis nula de independencia.
Adicionalmente, el Odds Ratio (OR = 3.25) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 3.25 veces mayores en individuos con colesterol alto en comparación con aquellos sin colesterol alto. Este valor cuantifica la magnitud de la asociación y evidencia que no solo existe significancia estadística, esperable dada la gran muestra, sino también una relación de magnitud moderada a fuerte desde el punto de vista epidemiológico.
En consecuencia, se concluye que el colesterol alto se encuentra significativamente asociado con la presencia de prediabetes/diabetes en la muestra analizada, en línea con la evidencia epidemiológica que vincula dislipidemias y trastornos metabólicos.
tabla_abs <- table(df_viz$Diabetes_binary, df_viz$HighChol)
tabla_pct <- prop.table(tabla_abs, margin = 1) * 100
plot_pct <- as.data.frame(tabla_pct) %>%
rename(
Diabetes_binary = Var1,
`Colesterol alto` = Var2,
Porcentaje = Freq
)
plot_abs <- as.data.frame(tabla_abs) %>%
rename(
Diabetes_binary = Var1,
`Colesterol alto` = Var2,
Frecuencia = Freq
)
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = `Colesterol alto`)) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 4
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según colesterol alto",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = "Colesterol alto"
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = `Colesterol alto`)) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 4
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según colesterol alto",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = "Colesterol alto"
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin chequeo en 5 años Con chequeo en 5 años
## Sin diabetes 9229 (4.23%) 209105 (95.77%)
## Prediabetes / Diabetes 241 (0.68%) 35105 (99.32%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
##
## Chi-cuadrado: 1062.94
## Grados de libertad: 1
## p-valor: 3.751399e-233
## Odds Ratio (OR): 6.43
La tabla de contingencia evidencia diferencias claras en la realización del chequeo de colesterol en los últimos cinco años según el estado diabético. En el grupo con Prediabetes / Diabetes, el 99.32% reporta haberse realizado un chequeo de colesterol, mientras que solo el 0.68% no lo ha hecho. En contraste, dentro del grupo Sin diabetes, el 95.77% se ha realizado el chequeo y el 4.23% no lo ha hecho.
Aunque en ambos grupos el porcentaje de chequeo es alto, la diferencia relativa entre quienes no se realizan el examen es notablemente mayor en el grupo sin diabetes. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 1062.94, con 1 grado de libertad y un p-valor < 0.001, lo que indica evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre las variables.
Adicionalmente, el Odds Ratio (OR = 6.43) indica que las probabilidades relativas de pertenecer al grupo con prediabetes/diabetes son aproximadamente 6.4 veces mayores en quienes se han realizado un chequeo de colesterol en comparación con quienes no lo han hecho. Este resultado no implica causalidad, sino que probablemente refleja un mayor contacto con el sistema de salud y mayor vigilancia clínica en personas ya diagnosticadas o en riesgo metabólico.
En consecuencia, se concluye que existe una asociación estadísticamente significativa entre la realización del chequeo de colesterol y el estado diabético en la muestra analizada. No obstante, la interpretación debe hacerse con cautela, dado que el chequeo es una conducta preventiva influenciada por diagnóstico previo y seguimiento médico, más que un factor de riesgo en sí mismo.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 4
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según chequeo de colesterol",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 4
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según chequeo de colesterol",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## No fumador Fumador Total
## Sin diabetes 124228 (56.9%) 94106 (43.1%) 218334 (100%)
## Prediabetes / Diabetes 17029 (48.18%) 18317 (51.82%) 35346 (100%)
## Chi-cuadrado: 937.06
## Grados de libertad: 1
## p-valor: 8.640172e-206
## Odds Ratio (OR): 1.42
La tabla de contingencia muestra diferencias en la distribución del hábito de fumar según el estado diabético. En el grupo con Prediabetes / Diabetes, el 51.82% reporta ser fumador, mientras que el 48.18% no fuma. En contraste, en el grupo Sin diabetes, el 43.10% es fumador y el 56.90% no lo es.
Esta diferencia porcentual sugiere una mayor proporción de fumadores dentro del grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 937.06, con 1 grado de libertad y un p-valor < 0.001, lo que indica evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre el hábito de fumar y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 1.42) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 1.42 veces mayores en fumadores en comparación con no fumadores. Aunque la magnitud del efecto es moderada, la asociación es consistente y estadísticamente robusta, lo cual es esperable dada la gran muestra analizada.
En consecuencia, se concluye que existe una asociación estadísticamente significativa entre el hábito de fumar y la presencia de prediabetes/diabetes en la muestra. Desde una perspectiva epidemiológica, este resultado es coherente con la literatura que vincula el tabaquismo con alteraciones metabólicas, inflamación sistémica y mayor riesgo de enfermedades crónicas.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según fumador",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según fumador",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin enfermedad cardíaca Con enfermedad cardíaca
## Sin diabetes 202319 (92.66%) 16015 (7.34%)
## Prediabetes / Diabetes 27468 (77.71%) 7878 (22.29%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 7971.16
## Grados de libertad: 1
## p-valor: 0
## Odds Ratio (OR): 3.62
La tabla de contingencia evidencia una diferencia marcada en la prevalencia de enfermedad cardíaca o antecedente de infarto según el estado diabético. En el grupo con Prediabetes / Diabetes, el 22.29% reporta presentar enfermedad cardíaca, mientras que el 77.71% no la presenta. En contraste, dentro del grupo Sin diabetes, solo el 7.34% presenta enfermedad cardíaca y el 92.66% no la presenta.
Esta diferencia porcentual es sustancial y sugiere una fuerte asociación entre ambas condiciones. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 7971.16, con 1 grado de libertad y un p-valor < 0.001, lo que proporciona evidencia contundente para rechazar la hipótesis nula de independencia entre la presencia de enfermedad cardíaca y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 3.62) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 3.6 veces mayores en individuos con enfermedad cardíaca o antecedente de infarto en comparación con aquellos sin esta condición. Este valor refleja una asociación de magnitud moderada a fuerte desde el punto de vista epidemiológico.
En consecuencia, se concluye que existe una asociación estadísticamente significativa y clínicamente relevante entre la presencia de enfermedad cardiovascular y el diagnóstico de prediabetes/diabetes en la muestra analizada. Este resultado es coherente con la literatura médica, que reconoce la diabetes como un factor de riesgo mayor para enfermedad cardiovascular y, a su vez, la coexistencia frecuente de ambas condiciones dentro del síndrome metabólico.
library(dplyr)
library(ggplot2)
library(patchwork)
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según enfermedad coronaria/infarto",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según enfermedad coronaria/infarto",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin actividad física Con actividad física Total
## Sin diabetes 48701 (22.31%) 169633 (77.69%) 218334 (100%)
## Prediabetes / Diabetes 13059 (36.95%) 22287 (63.05%) 35346 (100%)
## Chi-cuadrado: 3539.42
## Grados de libertad: 1
## p-valor: 0
## Odds Ratio (OR): 0.49
La tabla de contingencia muestra diferencias claras en la práctica de actividad física según el estado diabético. En el grupo con Prediabetes / Diabetes, el 63.05% reporta realizar actividad física, mientras que el 36.95% no la realiza. En contraste, dentro del grupo Sin diabetes, el 77.69% realiza actividad física y el 22.31% no lo hace.
Estas diferencias porcentuales sugieren que la inactividad física es más frecuente en el grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 3539.42, con 1 grado de libertad y un p-valor < 0.001, lo que proporciona evidencia suficiente para rechazar la hipótesis nula de independencia entre la actividad física y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 0.49) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 51% menores en individuos que realizan actividad física en comparación con aquellos que no la realizan. Un OR menor que 1 sugiere un efecto protector de la actividad física frente a la presencia de alteraciones metabólicas.
En consecuencia, se concluye que existe una asociación estadísticamente significativa y clínicamente relevante entre la práctica de actividad física y el estado diabético en la muestra analizada. Este hallazgo es consistente con la evidencia epidemiológica, que reconoce la actividad física como un factor protector frente al desarrollo de diabetes tipo 2 y otras alteraciones metabólicas.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según actividad física",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según actividad física",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## No consume frutas diario Consume frutas diario
## Sin diabetes 78129 (35.78%) 140205 (64.22%)
## Prediabetes / Diabetes 14653 (41.46%) 20693 (58.54%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 421.61
## Grados de libertad: 1
## p-valor: 1.088121e-93
## Odds Ratio (OR): 0.79
La tabla de contingencia muestra diferencias en el consumo diario de frutas según el estado diabético. En el grupo con Prediabetes / Diabetes, el 58.54% reporta consumir frutas diariamente, mientras que el 41.46% no lo hace. En contraste, en el grupo Sin diabetes, el 64.22% consume frutas diariamente y el 35.78% no lo hace.
Estas diferencias sugieren que el no consumo diario de frutas es ligeramente más frecuente en el grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 421.61, con 1 grado de libertad y un p-valor < 0.001, lo que indica que existe evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre el consumo de frutas y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 0.79) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 21% menores en individuos que consumen frutas diariamente en comparación con quienes no lo hacen. Al ser un OR menor que 1, sugiere un posible efecto protector leve asociado al consumo regular de frutas.
Sin embargo, aunque la asociación es estadísticamente significativa, la magnitud del efecto es moderada a baja en comparación con otras variables analizadas (como hipertensión o enfermedad cardíaca). En consecuencia, el consumo diario de frutas parece estar asociado con menor presencia de alteraciones metabólicas, pero su impacto relativo es menos fuerte que otros factores cardiometabólicos evaluados.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según consumo de frutas diario",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según consumo de frutas diario",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## No consume verduras diario Consume verduras diario
## Sin diabetes 39229 (17.97%) 179105 (82.03%)
## Prediabetes / Diabetes 8610 (24.36%) 26736 (75.64%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 811.81
## Grados de libertad: 1
## p-valor: 1.463029e-178
## Odds Ratio (OR): 0.68
La tabla de contingencia muestra diferencias en el consumo diario de verduras según el estado diabético. En el grupo con Prediabetes / Diabetes, el 75.64% reporta consumir verduras diariamente, mientras que el 24.36% no lo hace. En contraste, dentro del grupo Sin diabetes, el 82.03% consume verduras diariamente y el 17.97% no lo hace.
Estas diferencias sugieren que el no consumo diario de verduras es más frecuente en el grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 811.81, con 1 grado de libertad y un p-valor < 0.001, lo que indica evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre el consumo de verduras y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 0.68) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 32% menores en individuos que consumen verduras diariamente en comparación con quienes no lo hacen. Al ser un OR menor que 1, este resultado sugiere un efecto protector moderado asociado al consumo regular de verduras.
En consecuencia, se concluye que existe una asociación estadísticamente significativa y epidemiológicamente relevante entre el consumo diario de verduras y la presencia de prediabetes/diabetes en la muestra analizada. Este hallazgo es coherente con la evidencia científica que vincula dietas ricas en vegetales con menor riesgo de alteraciones metabólicas y enfermedades crónicas.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según consumo de vegetales diario",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según consumo de vegetales diario",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## No consumo alto alcohol Consumo alto alcohol
## Sin diabetes 204910 (93.85%) 13424 (6.15%)
## Prediabetes / Diabetes 34514 (97.65%) 832 (2.35%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 825.12
## Grados de libertad: 1
## p-valor: 1.865932e-181
## Odds Ratio (OR): 0.37
La tabla de contingencia muestra diferencias en el consumo alto de alcohol según el estado diabético. En el grupo con Prediabetes / Diabetes, el 2.35% reporta consumo alto de alcohol, mientras que el 97.65% no presenta este patrón de consumo. En contraste, en el grupo Sin diabetes, el 6.15% reporta consumo alto de alcohol y el 93.85% no lo presenta.
A simple vista, el consumo alto de alcohol parece ser menos frecuente en el grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 825.12, con 1 grado de libertad y un p-valor < 0.001, lo que indica evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre el consumo alto de alcohol y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 0.37)indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 63% menores en individuos con consumo alto de alcohol en comparación con aquellos que no presentan este patrón de consumo. Sin embargo, este resultado debe interpretarse con cautela. Un OR menor que 1 no implica necesariamente que el consumo alto de alcohol sea protector; más bien, podría reflejar factores de confusión, cambios en el comportamiento tras el diagnóstico (reducción del consumo después de ser diagnosticado) o sesgos asociados al autorreporte.
En consecuencia, aunque existe una asociación estadísticamente significativa entre el consumo alto de alcohol y el estado diabético en la muestra analizada, la dirección aparente del efecto debe analizarse con prudencia desde el punto de vista epidemiológico y no debe interpretarse como un efecto protector causal.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según consumo alto de alcohol",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según consumo alto de alcohol",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin cobertura médica Con cobertura médica Total
## Sin diabetes 10995 (5.04%) 207339 (94.96%) 218334 (100%)
## Prediabetes / Diabetes 1422 (4.02%) 33924 (95.98%) 35346 (100%)
## Chi-cuadrado: 66.81
## Grados de libertad: 1
## p-valor: 2.986181e-16
## Odds Ratio (OR): 1.27
La tabla de contingencia muestra diferencias leves en la cobertura médica según el estado diabético. En el grupo con Prediabetes / Diabetes, el 95.98% reporta contar con cobertura médica, mientras que el 4.02% no la tiene. En contraste, dentro del grupo Sin diabetes, el 94.96% tiene cobertura y el 5.04% no la tiene.
Aunque la diferencia porcentual es pequeña (aproximadamente 1 punto porcentual), la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 66.81, con 1 grado de libertad y un p-valor < 0.001, lo que indica que la asociación es estadísticamente significativa. Sin embargo, dado el gran tamaño muestral, incluso diferencias pequeñas pueden resultar significativas desde el punto de vista estadístico.
El Odds Ratio (OR = 1.27) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 27% mayores en individuos con cobertura médica en comparación con quienes no la tienen. Este resultado no debe interpretarse como que la cobertura médica aumente el riesgo; más bien, probablemente refleja un mayor acceso al diagnóstico y al sistema de salud en personas que cuentan con cobertura, lo que incrementa la probabilidad de detección de la enfermedad.
En consecuencia, aunque existe una asociación estadísticamente significativa entre la cobertura médica y el estado diabético en la muestra analizada, la magnitud del efecto es baja y su interpretación debe contextualizarse en términos de acceso a servicios de salud y detección oportuna, más que como un factor de riesgo causal.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según cobertura médica",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según cobertura médica",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin barrera económica Con barrera económica
## Sin diabetes 200722 (91.93%) 17612 (8.07%)
## Prediabetes / Diabetes 31604 (89.41%) 3742 (10.59%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 250.31
## Grados de libertad: 1
## p-valor: 2.218395e-56
## Odds Ratio (OR): 1.35
La tabla de contingencia muestra diferencias en la presencia de barreras económicas para acceder a servicios médicos según el estado diabético. En el grupo con Prediabetes / Diabetes, el 10.59% reporta haber tenido una barrera económica para consultar al médico, mientras que el 89.41% no la reporta. En contraste, en el grupo Sin diabetes, el 8.07% presenta esta barrera y el 91.93% no la presenta.
Estas diferencias sugieren que las barreras económicas para el acceso a la atención médica son ligeramente más frecuentes en el grupo con alteraciones metabólicas. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 250.31, con 1 grado de libertad y un p-valor < 0.001, lo que indica que existe evidencia estadísticamente significativa para rechazar la hipótesis nula de independencia entre la presencia de barreras económicas y el estado diabético.
El Odds Ratio (OR = 1.35) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 35% mayores en individuos que reportan barreras económicas para acceder al médico, en comparación con aquellos que no las reportan. Aunque la magnitud del efecto es moderada, el resultado sugiere una asociación relevante desde el punto de vista social y estructural.
En consecuencia, se concluye que existe una asociación estadísticamente significativa entre las barreras económicas en el acceso a la atención médica y el estado diabético en la muestra analizada. Este hallazgo puede reflejar desigualdades en el acceso a servicios preventivos y de control, lo que podría influir tanto en el diagnóstico oportuno como en el manejo adecuado de la enfermedad.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según barrera económica",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según barrera económica",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Tabla de contingencia (Frecuencia y % por fila)
## Sin dificultad al caminar Con dificultad al caminar
## Sin diabetes 188780 (86.46%) 29554 (13.54%)
## Prediabetes / Diabetes 22225 (62.88%) 13121 (37.12%)
## Total
## Sin diabetes 218334 (100%)
## Prediabetes / Diabetes 35346 (100%)
## Chi-cuadrado: 12092.32
## Grados de libertad: 1
## p-valor: 0
## Odds Ratio (OR): 3.77
La tabla de contingencia evidencia una diferencia marcada en la presencia de dificultad para caminar según el estado diabético. En el grupo con Prediabetes / Diabetes, el 37.12% reporta presentar dificultad al caminar, mientras que el 62.88% no la presenta. En contraste, dentro del grupo Sin diabetes, solo el 13.54% reporta dificultad al caminar y el 86.46% no presenta esta condición.
La diferencia porcentual es considerable (más de 23 puntos porcentuales), lo que sugiere una asociación fuerte entre ambas variables. Desde el punto de vista estadístico, la prueba de independencia Chi-cuadrado arroja un estadístico de χ² = 12092.32, con 1 grado de libertad y un p-valor < 0.001, lo que indica evidencia altamente significativa para rechazar la hipótesis nula de independencia entre la dificultad para caminar y el estado diabético.
Adicionalmente, el Odds Ratio (OR = 3.77) indica que las probabilidades de presentar prediabetes/diabetes son aproximadamente 3.8 veces mayores en individuos que reportan dificultad para caminar en comparación con quienes no la presentan. Este valor refleja una asociación de magnitud fuerte desde el punto de vista epidemiológico.
En consecuencia, se concluye que existe una asociación estadísticamente significativa y clínicamente relevante entre la dificultad para caminar y el diagnóstico de prediabetes/diabetes en la muestra analizada. Este hallazgo es coherente con la literatura, ya que la diabetes se asocia frecuentemente con complicaciones como neuropatía periférica, alteraciones vasculares y limitaciones funcionales que pueden afectar la movilidad.
plot_pct <- as.data.frame(as.table(tabla_pct))
names(plot_pct) <- c("Diabetes_binary", variable, "Porcentaje")
tabla_base <- tabla_abs[, -ncol(tabla_abs)]
plot_abs <- as.data.frame(as.table(tabla_base))
names(plot_abs) <- c("Diabetes_binary", variable, "Frecuencia")
p1 <- ggplot(plot_abs, aes(x = Diabetes_binary, y = Frecuencia, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.0f", Frecuencia)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 3.7
) +
labs(
title = "Frecuencia absoluta de diagnóstico de diabetes según dificultad para caminar",
x = "Estado de diabetes",
y = "Cantidad de personas",
fill = variable
) +
theme_minimal()
p2 <- ggplot(plot_pct, aes(x = Diabetes_binary, y = Porcentaje, fill = .data[[variable]])) +
geom_col(position = position_dodge(width = 0.9)) +
geom_text(
aes(label = sprintf("%.1f%%", Porcentaje)),
position = position_dodge(width = 0.9),
vjust = 0.5,
size = 3.7
) +
labs(
title = "Proporción (%) de diagnóstico de diabetes según dificultad para caminar",
x = "Estado de diabetes",
y = "Porcentaje (%)",
fill = variable
) +
coord_cartesian(ylim = c(0, 100)) +
theme_minimal()
p1 / p2 + plot_layout(heights = c(1.1, 1))
## Código Descripción Sin diabetes (N) Sin diabetes (%) Prediabetes/Diabetes (N)
## 1 1 Excelente 44159 20.23 1140
## 2 2 Muy buena 82703 37.88 6381
## 3 3 Buena 62189 28.48 13457
## 4 4 Regular 21780 9.98 9790
## 5 5 Mala 7503 3.44 4578
## Prediabetes/Diabetes (%) Total (N) Total (%)
## 1 3.23 45299 17.86
## 2 18.05 89084 35.12
## 3 38.07 75646 29.82
## 4 27.70 31570 12.44
## 5 12.95 12081 4.76
## Chi-cuadrado: 22728.07
## Grados de libertad: 4
## p-valor: 0
## Cramér's V: 0.299
En GenHlth, la distribución cambia fuerte entre grupos.
En el grupo Sin diabetes, la mayor parte se concentra en categorías
favorables: “Muy buena” (37.88%) y “Excelente” (20.23%), mientras que
“Mala” representa solo 3.44%. En contraste, en Prediabetes/Diabetes la
categoría más frecuente es “Buena” (38.07%), y aparecen proporciones
mucho más altas en estados menos favorables: “Regular” (27.70%) y “Mala”
(12.95%), mientras que “Excelente” baja a 3.23%. Esto evidencia un
desplazamiento desde categorías “mejores” hacia categorías “peores” en
quienes tienen prediabetes/diabetes.
La prueba Chi-cuadrado de independencia arroja un estadístico
χ² = 22 728.07 con 4 grados de libertad y un p-valor <
0.001, lo que indica que existe una asociación estadísticamente
significativa entre el estado de salud general (GenHlth) y la presencia
de prediabetes/diabetes. En consecuencia, se rechaza la hipótesis nula
de independencia entre las variables.
El tamaño del efecto, medido mediante Cramér’s
V = 0.299, sugiere una asociación de magnitud moderada.
Esto implica que la relación no solo es significativa por el gran tamaño
muestral, sino que también presenta relevancia práctica.
En términos sustantivos, la distribución muestra un desplazamiento claro: las personas con prediabetes/diabetes se concentran en mayor proporción en las categorías “Regular” y “Mala”, mientras que el grupo sin diabetes presenta mayor frecuencia en “Excelente” y “Muy buena”. En conjunto, la evidencia respalda que un peor estado de salud general se asocia de manera consistente con el estado diabético.
## Código Descripción Sin diabetes (N) Sin diabetes (%)
## 1 1 18–24 5622 2.57
## 2 2 25–29 7458 3.42
## 3 3 30–34 10809 4.95
## 4 4 35–39 13197 6.04
## 5 5 40–44 15106 6.92
## 6 6 45–49 18077 8.28
## 7 7 50–54 23226 10.64
## 8 8 55–59 26569 12.17
## 9 9 60–64 27511 12.60
## 10 10 65–69 25636 11.74
## 11 11 70–74 18392 8.42
## 12 12 75–79 12577 5.76
## 13 13 80+ 14154 6.48
## Prediabetes/Diabetes (N) Prediabetes/Diabetes (%) Total (N) Total (%)
## 1 78 0.22 5700 2.25
## 2 140 0.40 7598 3.00
## 3 314 0.89 11123 4.38
## 4 626 1.77 13823 5.45
## 5 1051 2.97 16157 6.37
## 6 1742 4.93 19819 7.81
## 7 3088 8.74 26314 10.37
## 8 4263 12.06 30832 12.15
## 9 5733 16.22 33244 13.10
## 10 6558 18.55 32194 12.69
## 11 5141 14.54 23533 9.28
## 12 3403 9.63 15980 6.30
## 13 3209 9.08 17363 6.84
## Chi-cuadrado: 8795.05
## Grados de libertad: 12
## p-valor: 0
## Cramér's V: 0.186
En relación con la variable grupo de edad, la
distribución descriptiva evidencia un incremento progresivo en la
proporción de individuos con prediabetes/diabetes a medida que aumenta
la edad. Mientras que en los grupos más jóvenes (18–24 y 25–29) la
frecuencia de casos es considerablemente baja, a partir de los 45 años
se observa un aumento sostenido, alcanzando sus valores más elevados
entre los 60 y 74 años, donde la proporción de individuos con condición
diabética supera ampliamente la observada en edades tempranas.
La prueba de independencia Chi-cuadrado confirmó que esta asociación
es estadísticamente significativa
(χ²=8795.05; gl=12; p<0.001). Asimismo, el tamaño del
efecto medido mediante Cramér’s V (V=0.186) indica una
asociación de magnitud pequeña a moderada, lo que sugiere que, aunque la
edad no determina por sí sola el estado diabético, sí constituye un
factor estructural relevante en su distribución poblacional.
Estos resultados son coherentes con la evidencia epidemiológica que identifica el envejecimiento como un determinante importante del riesgo de diabetes tipo 2.
## Código Descripción Sin diabetes (N) Sin diabetes (%)
## 1 1 Nunca asistió 127 0.06
## 2 2 Primaria incompleta 2860 1.31
## 3 3 Secundaria incompleta 7182 3.29
## 4 4 Secundaria completa / GED 51684 23.67
## 5 5 Universidad incompleta 59556 27.28
## 6 6 Universidad completa 96925 44.39
## Prediabetes/Diabetes (N) Prediabetes/Diabetes (%) Total (N) Total (%)
## 1 47 0.13 174 0.07
## 2 1183 3.35 4043 1.59
## 3 2296 6.50 9478 3.74
## 4 11066 31.31 62750 24.74
## 5 10354 29.29 69910 27.56
## 6 10400 29.42 107325 42.31
## Chi-cuadrado: 4027.11
## Grados de libertad: 5
## p-valor: 0
## Cramér's V: 0.126
En cuanto al nivel educativo, la distribución
descriptiva muestra un gradiente claro en la proporción de
prediabetes/diabetes según el nivel de formación. Aunque la mayoría de
los casos absolutos se concentran en los niveles de secundaria
completa/GED, universidad incompleta y universidad completa, lo cual es
consistente con la mayor representación poblacional de estos grupos, al
observar las proporciones se evidencia que los niveles educativos más
bajos presentan una mayor carga relativa de enfermedad en comparación
con los niveles superiores.
La prueba de independencia Chi-cuadrado confirmó que existe una
asociación estadísticamente significativa entre nivel educativo y estado
diabético (χ² = 4027.11; gl = 5; p < 0.001). No
obstante, el tamaño del efecto medido mediante Cramér’s V
(V = 0.126) indica una asociación de magnitud pequeña, lo
que sugiere que, si bien la educación está relacionada con la
distribución de la diabetes en la población, su influencia es moderada y
probablemente interactúa con otros determinantes socioeconómicos y
conductuales. Estos resultados son coherentes con la evidencia que
señala la educación como un determinante social de la salud, asociado
indirectamente a mejores ingresos, acceso a servicios sanitarios y
estilos de vida más saludables.
## Código Descripción Sin diabetes (N) Sin diabetes (%)
## 1 1 < $10,000 7428 3.40
## 2 2 $10,000–15,000 8697 3.98
## 3 3 $15,000–20,000 12426 5.69
## 4 4 $20,000–25,000 16081 7.37
## 5 5 $25,000–35,000 21379 9.79
## 6 6 $35,000–50,000 31179 14.28
## 7 7 $50,000–75,000 37954 17.38
## 8 8 $75,000+ 83190 38.10
## Prediabetes/Diabetes (N) Prediabetes/Diabetes (%) Total (N) Total (%)
## 1 2383 6.74 9811 3.87
## 2 3086 8.73 11783 4.64
## 3 3568 10.09 15994 6.30
## 4 4054 11.47 20135 7.94
## 5 4504 12.74 25883 10.20
## 6 5291 14.97 36470 14.38
## 7 5265 14.90 43219 17.04
## 8 7195 20.36 90385 35.63
## Chi-cuadrado: 7003.72
## Grados de libertad: 7
## p-valor: 0
## Cramér's V: 0.166
En relación con el nivel de ingreso, la distribución
descriptiva evidencia un patrón consistente con un gradiente
socioeconómico en la prevalencia de prediabetes/diabetes. Aunque los
mayores números absolutos de casos se concentran en los grupos de
ingresos medios y altos, debido a su mayor representación dentro de la
muestra, al analizar las proporciones se observa que los niveles de
ingreso más bajos presentan una mayor carga relativa de enfermedad en
comparación con los niveles más altos. Esta tendencia sugiere que a
medida que aumenta el ingreso, la proporción de individuos con condición
diabética tiende a disminuir.
La prueba de independencia Chi-cuadrado confirmó que existe una
asociación estadísticamente significativa entre nivel de ingreso y
estado diabético (χ² = 7003.72; gl = 7; p < 0.001).
Asimismo, el tamaño del efecto medido mediante Cramér’s V
(V = 0.166) indica una asociación de magnitud pequeña a
moderada, lo que sugiere que el ingreso constituye un determinante
relevante, aunque no exclusivo, en la distribución poblacional de la
diabetes. Estos resultados son coherentes con la literatura que
identifica el nivel socioeconómico como un determinante estructural de
la salud, vinculado a acceso a servicios sanitarios, calidad de la
alimentación y oportunidades de actividad física.
Con el fin de evaluar la relación entre el estado de prediabetes/diabetes y las variables numéricas del estudio (BMI, MentHlth y PhysHlth), se realizó un análisis bivariado orientado a comparar la distribución y las medias de dichas variables entre los dos grupos definidos por la variable objetivo: Prediabetes/Diabetes y Sin diabetes.
Dado que la variable dependiente es categórica binaria y las variables explicativas son continuas, el análisis se estructuró a partir de la comparación de medias entre grupos independientes. Para ello, se utilizó la prueba t de Welch, la cual no asume igualdad de varianzas entre grupos y resulta apropiada en contextos donde los tamaños muestrales son desiguales.
Si bien algunas de las variables presentan asimetría en su distribución, el tamaño muestral elevado garantiza la robustez de la prueba t por efecto del Teorema del Límite Central, el cual establece que la distribución de la media muestral tiende a aproximarse a la normalidad cuando el número de observaciones es grande.
Adicionalmente, para complementar la significancia estadística, se calculó el tamaño del efecto mediante el estadístico Cohen’s d, con el objetivo de evaluar la magnitud práctica de las diferencias observadas entre grupos. Esta medida permite distinguir entre diferencias estadísticamente significativas y diferencias clínicamente relevantes.
Finalmente, el análisis se apoyó en representaciones gráficas (boxplots y curvas de densidad) que permiten visualizar la dispersión, la presencia de valores atípicos y la forma de la distribución en cada grupo, proporcionando una comprensión más completa del comportamiento de las variables numéricas según el estado diabético.m
## # A tibble: 2 × 9
## Diabetes_binary N Media Mediana `Desv. Estándar` Mínimo `Q1 (25%)`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Sin diabetes 218334 27.8 27 6.29 12 24
## 2 Prediabetes / Diabetes 35346 31.9 31 7.36 13 27
## # ℹ 2 more variables: `Q3 (75%)` <dbl>, Máximo <dbl>
El índice de masa corporal (BMI) es mayor en el grupo
con Prediabetes / Diabetes (Media = 31.94; Mediana = 31) en comparación
con el grupo Sin diabetes (Media = 27.81; Mediana = 27). Además, los
cuartiles muestran que toda la distribución del grupo diabético está
desplazada hacia valores más altos.
La prueba t de Welch arroja un estadístico t = 99.92 con
p < 0.001, lo que indica que la diferencia de medias es
estadísticamente significativa.
El tamaño del efecto (Cohen’s d = 0.60) sugiere una
diferencia de magnitud moderada, lo que implica que la asociación no
solo es significativa por el gran tamaño muestral, sino también
relevante desde el punto de vista práctico.
En consecuencia, el BMI presenta una diferencia clara y sustantiva entre ambos grupos, consolidándose como una variable fuertemente asociada al estado diabético.
El boxplot muestra que el grupo con Prediabetes / Diabetes presenta una mediana de BMI claramente superior al grupo Sin diabetes. Además: el rango intercuartílico (Q1–Q3) está desplazado hacia valores más altos; se observa también mayor concentración de valores elevados. Ambos grupos presentan outliers altos, pero en el grupo diabético la distribución central ya se encuentra en un rango de sobrepeso/obesidad. Esto indica una diferencia estructural en la distribución, no solo en valores extremos.
La curva de densidad confirma visualmente el desplazamiento hacia la derecha del grupo con Prediabetes / Diabetes. La distribución azul (diabéticos) está centrada en valores más altos. Existe solapamiento entre grupos, pero el pico principal del grupo diabético se ubica aproximadamente 3–4 puntos de BMI por encima. De igual forma, se observa una cola derecha más pronunciada en el grupo diabético, indicando mayor proporción de IMC elevados.
Ambos gráficos evidencian que el BMI no solo difiere en promedio, sino que toda la distribución del grupo con prediabetes/diabetes está desplazada hacia valores mayores. Esto refuerza la evidencia estadística previa (t-test y Cohen’s d) y confirma que el BMI es una variable fuertemente asociada al estado diabético tanto en términos estadísticos como clínicos.
## # A tibble: 2 × 9
## Diabetes_binary N Media Mediana `Desv. Estándar` Mínimo `Q1 (25%)`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Sin diabetes 218334 2.98 0 7.11 0 0
## 2 Prediabetes / Diabetes 35346 4.46 0 8.95 0 0
## # ℹ 2 more variables: `Q3 (75%)` <dbl>, Máximo <dbl>
## t: 29.69
## p-valor: 7.929124e-192
## Cohen's d: 0.18
El número promedio de días con mala salud mental en los
últimos 30 días es mayor en el grupo con Prediabetes / Diabetes (Media =
4.46) en comparación con el grupo Sin diabetes (Media = 2.98). Sin
embargo, la mediana en ambos grupos es 0 días, lo que indica que más de
la mitad de los individuos en cada grupo no reportó días de mala salud
mental, evidenciando una distribución fuertemente asimétrica hacia la
derecha.
Desde el punto de vista estadístico, la prueba t arroja
t = 29.69 con p < 0.001, lo que indica que la diferencia
de medias es estadísticamente significativa. No obstante, el tamaño del
efecto es pequeño (Cohen’s d = 0.18), lo que sugiere que,
aunque la diferencia existe y es estadísticamente robusta (probablemente
influenciada por el gran tamaño muestral), la magnitud práctica de la
diferencia entre grupos es baja.
En conclusión, existe una asociación estadísticamente significativa entre salud mental y estado diabético, pero su impacto en términos de magnitud es limitado.
Las gráficas muestran que la mayoría de las personas en ambos grupos reporta 0 días de mala salud mental, lo que explica que la mediana sea 0 y que la distribución esté fuertemente concentrada en ese valor. Sin embargo, el grupo con Prediabetes / Diabetes presenta una ligera mayor dispersión y una cola derecha más extendida, reflejando que una proporción mayor acumula más días con afectación mental.
El boxplot confirma que, aunque las diferencias centrales no son muy amplias, el grupo diabético tiene un rango intercuartílico ligeramente superior y mayor presencia de valores altos. La curva de densidad muestra un desplazamiento leve hacia la derecha en este grupo, pero con amplio solapamiento entre distribuciones.
En conjunto, visualmente se aprecia una diferencia existente pero pequeña en magnitud, coherente con el tamaño de efecto bajo observado en el análisis estadístico.m
## # A tibble: 2 × 9
## Diabetes_binary N Media Mediana `Desv. Estándar` Mínimo `Q1 (25%)`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Sin diabetes 218334 3.64 0 8.06 0 0
## 2 Prediabetes / Diabetes 35346 7.95 1 11.3 0 0
## # ℹ 2 more variables: `Q3 (75%)` <dbl>, Máximo <dbl>
## t: 68.97
## p-valor: 0
## Cohen's d: 0.44
El número promedio de días con mala salud física en los
últimos 30 días es considerablemente mayor en el grupo con Prediabetes /
Diabetes (Media = 7.95; Mediana = 1) frente al grupo Sin diabetes (Media
= 3.64; Mediana = 0). Además, el tercer cuartil es mucho más alto en el
grupo diabético (Q3 = 15 vs 2), lo que indica que una proporción
importante reporta múltiples días con afectación física.
La prueba t de Welch arroja t = 68.97 con p < 0.001,
evidenciando una diferencia estadísticamente significativa entre grupos.
El tamaño del efecto (Cohen’s d = 0.44) es moderado, lo que
sugiere que la diferencia no solo es significativa por el gran tamaño
muestral, sino también relevante en términos prácticos.
En conjunto, la mala salud física muestra una asociación clara y sustantiva con el estado diabético, con una magnitud mayor que la observada previamente para salud mental.
Las gráficas muestran una diferencia más marcada que en salud mental. Aunque en ambos grupos la mediana se mantiene cerca de 0 días, el boxplot evidencia que el grupo con Prediabetes / Diabetes tiene un rango intercuartílico mucho más amplio y valores centrales más elevados. El tercer cuartil alcanza 15 días en el grupo diabético frente a solo 2 días en el grupo sin diabetes, lo que indica que una proporción considerable reporta múltiples días con mala salud física.
La distribución confirma este patrón: la curva del grupo diabético está más extendida hacia la derecha y presenta una cola más pesada, reflejando mayor frecuencia de valores altos (incluyendo el límite de 30 días). Aunque existe solapamiento entre grupos, el desplazamiento es visualmente claro.
En conjunto, las gráficas refuerzan que la afectación física es sustancialmente mayor en personas con prediabetes/diabetes, coherente con el tamaño de efecto moderado observado en el análisis estadístico.
## Diabetes BMI MentHlth PhysHlth GenHlth Education Income Age
## Diabetes 1.00 0.23 0.04 0.16 0.29 -0.12 -0.16 0.18
## BMI 0.23 1.00 0.05 0.12 0.26 -0.12 -0.09 -0.02
## MentHlth 0.04 0.05 1.00 0.31 0.24 -0.05 -0.15 -0.16
## PhysHlth 0.16 0.12 0.31 1.00 0.45 -0.11 -0.22 0.05
## GenHlth 0.29 0.26 0.24 0.45 1.00 -0.28 -0.35 0.15
## Education -0.12 -0.12 -0.05 -0.11 -0.28 1.00 0.45 -0.10
## Income -0.16 -0.09 -0.15 -0.22 -0.35 0.45 1.00 -0.18
## Age 0.18 -0.02 -0.16 0.05 0.15 -0.10 -0.18 1.00
La matriz de correlación de Spearman evidencia asociaciones monotónicas coherentes con la literatura epidemiológica. El estado diabético presenta una correlación positiva con el índice de masa corporal (ρ=0.23), la edad (ρ=0.18) y la salud general autopercibida (ρ=0.29), indicando que peores condiciones físicas y mayor edad se asocian con mayor prevalencia de diabetes. Asimismo, se observan correlaciones negativas con el nivel educativo (ρ=-0.12) y el ingreso (ρ=-0.16), lo cual sugiere un gradiente socioeconómico en la distribución de la enfermedad. No se identificaron problemas severos de multicolinealidad entre variables explicativas.