El conjunto de datos que se va a trabajar se encuentra en la plataforma de datos Kaggle, en una investigación sobre disease risk from daily habits, de la cual se analizará la información de 1000 datos enfocada en una población de adultos jóvenes (18–25 años).
Se encuentran los hábitos diarios de distintas personas según su edad
y género y cómo estos impactan en su vida, dando un diagnóstico final de
si es saludable o enfermo.
Se trabajará con 14 variables, descritas a
continuación.
🔗 Enlace de la base de datos:
https://www.kaggle.com/datasets/mahdimashayekhi/disease-risk-from-daily-habits
| VARIABLE | DESCRIPCIÓN | TIPO | ESCALA DE MEDICIÓN | UNIDAD DE MEDICIÓN |
|---|---|---|---|---|
| Género | Hombre / Mujer | Cualitativa | Nominal | No aplica |
| Tipo de ejercicio | Ninguno, Cardio, Fuerza, Combinado | Cualitativa | Nominal | No aplica |
| Historia Familiar | Historia de enfermedades familiares | Cualitativa | Nominal | No aplica |
| Edad | Edad del individuo | Cuantitativa | Razón | Años |
| IMC | Índice de masa corporal | Cuantitativa | Razón | Kg/m² |
| Peso | Peso por persona | Cuantitativa | Razón | Kg |
| Ingesta de calorías | Promedio de consumo de calorías diarias | Cuantitativa | Razón | Kcal |
| Nivel de estrés | Reporte de estrés diario (1–10) | Cualitativa | Ordinal | No aplica |
| Ingesta de azúcar | Ingesta de azúcar diaria | Cuantitativa | Razón | g |
| Glucosa | Nivel de glucosa en sangre | Cuantitativa | Razón | mg/dL |
| Horas de sueño | Promedio diario de horas de sueño | Cuantitativa | Razón | Horas |
| Colesterol | Nivel de colesterol | Cuantitativa | Razón | mg/dL |
| Tipo de dieta | Vegano, Vegetariano, Omnívoro, Keto, Paleo | Cualitativa | Nominal | No aplica |
| Target | Sano o no sano | Cualitativa | Nominal | No aplica |
Se realizó un filtro de la base de datos principal
con las variables seleccionadas y se obtuvieron los primeros 1000 datos
correspondientes a adultos jóvenes (18–25 años).
No se presentaron inconsistencias, datos faltantes o
errores en el filtro aplicado.
🔗 Enlace tabla Excel:
https://docs.google.com/spreadsheets/d/1_vrrkOleqCz-uCbpE63Bu7haUQA8HrSB/edit?usp=sharing&ouid=113576828640048076761&rtpof=true&sd=true
| Variable | Mínimo | Máximo | Promedio | Mediana | Desviación estándar |
|---|---|---|---|---|---|
| Edad | 18 | 25 | 21.47 | 21 | 2.29 |
| IMC | 10.37 | 47.25 | 24.45 | 24.04 | 5.95 |
| Peso | 40 | 129.24 | 69.86 | 69.21 | 14.84 |
| Ingesta de calorías | 706.51 | 3455.74 | 2207.39 | 2208.24 | 387.16 |
| Nivel de estrés | 0 | 10 | 5.02 | 5 | 3.14 |
| Ingesta de azúcar | -4.53 | 142 | 61.1 | 60.01 | 19.35 |
| Glucosa | 25.36 | 157.82 | 99.95 | 99.53 | 20.25 |
| Horas de sueño | 3 | 11.20 | 6.98 | 7.01 | 1.49 |
| Colesterol | 100.42 | 288.54 | 189.40 | 189.86 | 31.51 |
| Variable | Cantidad (%) |
|---|---|
| Género | 516 mujeres (51.6%), 484 hombres (48.4%) |
| Tipo de ejercicio | 255 cardio (25.5%), 238 combinado (23.8%), 245 ninguno (24.5%), 262 fuerza (26.2%) |
| Historia Familiar | 512 no (51.2%), 488 sí (48.8%) |
| Tipo de dieta | 224 keto (22.4%), 247 omnívoro (24.7%), 265 vegano (26.5%), 264 vegetariano (26.4%) |
| Target | 293 enfermos (29.3%), 707 saludables (70.7%) |
La población analizada es predominantemente joven (21 años en
promedio) con un IMC medio de 24.4, cercano al
rango normal.
El peso promedio (69.8 kg) es coherente con esta
tendencia.
El consumo calórico medio es de 2207 kcal, con gran
variabilidad, y la ingesta de azúcar promedio (61 g) es
elevada.
Los niveles de glucosa y colesterol se mantienen dentro
de rangos normales, aunque los valores extremos indican posibles
riesgos metabólicos.
El nivel de estrés medio (5/10) podría influir en la
calidad del sueño (7 horas promedio).
La distribución de género y tipos de ejercicio es
equilibrada, mientras que un 29.3% presenta
enfermedades, mostrando que incluso los adultos jóvenes no
están exentos de riesgo.
library(dplyr)
library(ggplot2)
ggplot(datos, aes(x = age)) +
geom_histogram(bins = 20, fill = "skyblue", color = "black") +
labs(title = "Distribución de la edad",
x = "Edad",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = gender)) +
geom_bar(fill = "steelblue", color = "black") +
labs(title = "Distribución por género",
x = "Género",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = diet_type)) +
geom_bar(fill = "orange", color = "black") +
labs(title = "Tipos de dieta",
x = "Tipo de dieta",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = exercise_type)) +
geom_bar(fill = "tomato", color = "black") +
labs(title = "Tipos de ejercicio",
x = "Tipo de ejercicio",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = family_history)) +
geom_bar(fill = "lightgreen", color = "black") +
labs(title = "Antecedentes familiares",
x = "Antecedentes familiares",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(y = weight)) +
geom_boxplot(fill = "lightblue", color = "black") +
labs(title = "Distribución del peso", y = "Peso (kg)")
library(ggplot2)
ggplot(datos, aes(y = bmi)) +
geom_boxplot(fill = "lightgreen", color = "black") +
labs(title = "Distribución del BMI", y = "BMI")
library(ggplot2)
ggplot(datos, aes(x = stress_level)) +
geom_histogram(binwidth = 1, fill = "plum", color = "black") +
scale_x_continuous(breaks = 0:10) +
labs(title = "Distribución del nivel de estrés",
x = "Nivel de Estrés",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = sugar_intake)) +
geom_histogram(bins = 20, fill = "coral", color = "black") +
labs(title = "Distribución del consumo de azúcar",
x = "Consumo de azúcar (g)",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(x = calorie_intake)) +
geom_histogram(bins = 20, fill = "gold", color = "black") +
labs(title = "Distribución del consumo de calorías",
x = "Consumo de calorías (kcal)",
y = "Frecuencia")
library(ggplot2)
ggplot(datos, aes(y = glucose)) +
geom_boxplot(fill = "lightblue", color = "black") +
labs(title = "Distribución de la glucosa",
y = "Glucosa (mg/dL)")
library(ggplot2)
ggplot(datos, aes(y = cholesterol)) +
geom_boxplot(fill = "lightpink", color = "black") +
labs(title = "Distribución del colesterol",
y = "Colesterol (mg/dL)")
library(ggplot2)
ggplot(datos, aes(x = sleep_hours)) +
geom_histogram(binwidth = 0.5, fill = "lightgreen", color = "black") +
labs(title = "Distribución de horas de sueño",
x = "Horas de sueño",
y = "Frecuencia")
El estudio permitió establecer que los hábitos cotidianos —como la alimentación, el ejercicio físico, las horas de sueño y la ingesta de azúcar y calorías— están estrechamente relacionados con el riesgo de enfermedades en adultos jóvenes.
Estos factores afectan marcadores clínicos como el
colesterol, la glucosa y el IMC, mostrando cómo las
rutinas diarias impactan la salud.
Las variables cualitativas y cuantitativas ofrecen
perspectivas complementarias para entender los riesgos.
Se concluye que, aunque los adultos jóvenes suelen ser considerados
saludables, las costumbres poco beneficiosas pueden generar
riesgos importantes.
Adoptar un estilo de vida balanceado, controlar el
estrés y realizar actividad física regular reduce
significativamente la probabilidad de enfermedades futuras.
base_datos_riesgo_enfermedades <- read.csv("/cloud/project/base_datos_riesgo_enfermedades.csv",
sep = ";", stringsAsFactors = TRUE)
summary(base_datos_riesgo_enfermedades)
## survey_code age gender weight bmi
## Min. : 1.0 Min. :18.00 Female:516 Min. : 40.00 Min. :10.37
## 1st Qu.: 250.8 1st Qu.:19.00 Male :484 1st Qu.: 60.13 1st Qu.:20.35
## Median : 500.5 Median :21.00 Median : 69.22 Median :24.04
## Mean : 500.5 Mean :21.47 Mean : 69.86 Mean :24.45
## 3rd Qu.: 750.2 3rd Qu.:23.00 3rd Qu.: 79.25 3rd Qu.:28.14
## Max. :1000.0 Max. :25.00 Max. :129.24 Max. :47.25
## cholesterol glucose sleep_hours calorie_intake
## Min. :100.4 Min. : 25.36 Min. : 3.000 Min. : 706.5
## 1st Qu.:168.5 1st Qu.: 85.63 1st Qu.: 6.008 1st Qu.:1937.6
## Median :189.9 Median : 99.53 Median : 7.010 Median :2208.2
## Mean :189.4 Mean : 99.95 Mean : 6.976 Mean :2207.4
## 3rd Qu.:210.2 3rd Qu.:114.20 3rd Qu.: 8.070 3rd Qu.:2479.0
## Max. :288.5 Max. :157.82 Max. :11.200 Max. :3455.7
## sugar_intake stress_level diet_type exercise_type
## Min. : -4.53 Min. : 0.000 Keto :223 Cardio :255
## 1st Qu.: 48.08 1st Qu.: 2.000 Omnivore :248 Mixed :238
## Median : 60.01 Median : 5.000 Vegan :265 None :245
## Mean : 60.71 Mean : 5.019 Vegetarian:264 Strength:262
## 3rd Qu.: 73.96 3rd Qu.: 8.000
## Max. :134.87 Max. :10.000
## family_history target
## No :512 diseased:293
## Yes:488 healthy :707
##
##
##
##
base_num <- base_datos_riesgo_enfermedades[, c("cholesterol", "sleep_hours", "glucose",
"sugar_intake", "weight", "bmi",
"age", "calorie_intake")]
matriz_cor <- cor(base_num, use = "complete.obs", method = "pearson")
round(matriz_cor, 2)
## cholesterol sleep_hours glucose sugar_intake weight bmi age
## cholesterol 1.00 0.01 -0.01 0.01 -0.02 -0.02 0.05
## sleep_hours 0.01 1.00 0.01 -0.06 0.03 0.01 -0.01
## glucose -0.01 0.01 1.00 -0.05 -0.06 -0.03 0.02
## sugar_intake 0.01 -0.06 -0.05 1.00 -0.02 -0.01 -0.01
## weight -0.02 0.03 -0.06 -0.02 1.00 0.86 0.01
## bmi -0.02 0.01 -0.03 -0.01 0.86 1.00 0.03
## age 0.05 -0.01 0.02 -0.01 0.01 0.03 1.00
## calorie_intake 0.03 0.04 0.00 -0.01 0.01 0.01 0.04
## calorie_intake
## cholesterol 0.03
## sleep_hours 0.04
## glucose 0.00
## sugar_intake -0.01
## weight 0.01
## bmi 0.01
## age 0.04
## calorie_intake 1.00
Analizando los resultados de la matriz de correlación, pudimos observar que los datos en la base de datos no se encuentran muy correlacionados, únicamente tuvimos una correlación alta entre el bmi y weight. Entonces, seleccionarémos estas 2 y las analizaremos.
ggplot(base_datos_riesgo_enfermedades, aes(x = weight, y = bmi)) +
geom_point(color = "steelblue", alpha = 0.6) +
geom_smooth(method = "lm", color = "red", se = TRUE) +
labs(title = "Relación entre Peso y BMI",
x = "Peso (kg)",
y = "Índice de Masa Corporal (BMI)") +
theme_minimal()
modelo <- lm(bmi ~ weight, data = base_datos_riesgo_enfermedades)
summary(modelo)
##
## Call:
## lm(formula = bmi ~ weight, data = base_datos_riesgo_enfermedades)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.7573 -2.0748 -0.2647 1.6914 12.5694
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.307148 0.460834 0.667 0.505
## weight 0.345579 0.006453 53.554 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.027 on 998 degrees of freedom
## Multiple R-squared: 0.7419, Adjusted R-squared: 0.7416
## F-statistic: 2868 on 1 and 998 DF, p-value: < 2.2e-16
Interpretación del modelo lineal simple
El modelo ajustado fue:
\ = 0.31 + 0.35
Pendiente (0.345579):
Indica que por cada kilogramo adicional de peso, el
índice de masa corporal (BMI) aumenta en promedio
0.35 unidades.
Esto muestra una relación lineal positiva y fuerte
entre el peso y el BMI.
Intercepto (0.307148):
Representa el valor estimado del BMI cuando el peso es 0 kg.
Aunque este valor carece de sentido práctico, sirve como punto de
referencia para la ecuación lineal.
Toma de variable cuantitativa y cualitativa
Con el propósito de explorar una posible asociación, se analiza la distribución del colesterol según el tipo de dieta reportado en el conjunto de datos.
ggplot(base_datos_riesgo_enfermedades,
aes(x = diet_type, y = cholesterol)) +
geom_boxplot(fill = "skyblue", color = "darkblue", alpha = 0.7) +
labs(title = "Colesterol según tipo de dieta",
x = "Tipo de dieta",
y = "Colesterol (mg/dL)") +
theme_minimal()
Interpretación: El gráfico muestra que el colesterol varía según la dieta: las personas con dieta keto y omnívora tienen niveles más altos, mientras que los veganos presentan los más bajos y los vegetarianos valores intermedios. En general, las dietas vegetales parecen asociarse con menor colesterol.
Toma de variables cualitativas
# Comando para generar la tabla cruzada
table(base_datos_riesgo_enfermedades$diet_type,
base_datos_riesgo_enfermedades$exercise_type)
##
## Cardio Mixed None Strength
## Keto 59 68 47 49
## Omnivore 58 51 71 68
## Vegan 75 54 64 72
## Vegetarian 63 65 63 73
Interpretación:
La tabla cruzada muestra la relación entre el tipo de dieta y el tipo de
ejercicio.
Se observa que algunos tipos de dieta tienden a asociarse con ciertos
tipos de ejercicio.
Por ejemplo, las dietas balanceadas o veganas pueden estar más
vinculadas a ejercicios aeróbicos o de bajo impacto, mientras que las
dietas altas en proteínas (como la keto) suelen relacionarse con
ejercicios de fuerza o entrenamiento intenso.
En general, esta relación sugiere que los hábitos alimenticios y la
actividad física están correlacionados y reflejan distintos estilos de
vida.
ggplot(base_datos_riesgo_enfermedades,
aes(x = diet_type, fill = exercise_type)) +
geom_bar(position = "stack") + # Clave: Apilamiento de frecuencias
labs(title = "Relación entre tipo de dieta y tipo de ejercicio",
x = "Tipo de dieta",
y = "Frecuencia",
fill = "Tipo de ejercicio") +
theme_minimal()
Interpretación: Todas las dietas tienen frecuencias similares, destacando el ejercicio mixto y el cardio como los más comunes. Los vegetarianos sobresalen en fuerza y los omnívoros en inactividad, mostrando una distribución general balanceada entre dieta y tipo de ejercicio.
Pronostico
Este conjunto de datos corresponde a una muestra estática, es decir, los valores fueron recolectados en un único momento o periodo específico. Por lo tanto, no presenta una dimensión temporal que permita analizar cómo las variables cambian a lo largo del tiempo. Debido a la ausencia de una serie temporal o registros secuenciales, no es posible aplicar modelos de pronóstico, ya que éstos requieren observar tendencias, estacionalidad o variaciones a lo largo del tiempo para realizar predicciones futuras.