Introducción

Este estudio analiza la presencia de diabetes en una muestra de individuos, explorando su relación con factores como el IMC, la edad y la presión arterial. Utilizaremos el conjunto de datos Pima Indians Diabetes Dataset, ampliamente usado en estudios epidemiológicos.

Carga de Datos y Exploración

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(caret)
## Loading required package: lattice
## 
## Attaching package: 'caret'
## 
## The following object is masked from 'package:purrr':
## 
##     lift
library(MASS)
## 
## Attaching package: 'MASS'
## 
## The following object is masked from 'package:dplyr':
## 
##     select
# Cargar datos
data <- read.csv("https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv", header=FALSE)
names(data) <- c("NumEmbarazos", "Glucosa", "Presion", "Piel", "Insulina", "IMC", "DiabetesPedigree", "Edad", "Diabetes")
data$Diabetes <- as.factor(data$Diabetes)

# Resumen de los datos
summary(data)
##   NumEmbarazos       Glucosa         Presion            Piel      
##  Min.   : 0.000   Min.   :  0.0   Min.   :  0.00   Min.   : 0.00  
##  1st Qu.: 1.000   1st Qu.: 99.0   1st Qu.: 62.00   1st Qu.: 0.00  
##  Median : 3.000   Median :117.0   Median : 72.00   Median :23.00  
##  Mean   : 3.845   Mean   :120.9   Mean   : 69.11   Mean   :20.54  
##  3rd Qu.: 6.000   3rd Qu.:140.2   3rd Qu.: 80.00   3rd Qu.:32.00  
##  Max.   :17.000   Max.   :199.0   Max.   :122.00   Max.   :99.00  
##     Insulina          IMC        DiabetesPedigree      Edad       Diabetes
##  Min.   :  0.0   Min.   : 0.00   Min.   :0.0780   Min.   :21.00   0:500   
##  1st Qu.:  0.0   1st Qu.:27.30   1st Qu.:0.2437   1st Qu.:24.00   1:268   
##  Median : 30.5   Median :32.00   Median :0.3725   Median :29.00           
##  Mean   : 79.8   Mean   :31.99   Mean   :0.4719   Mean   :33.24           
##  3rd Qu.:127.2   3rd Qu.:36.60   3rd Qu.:0.6262   3rd Qu.:41.00           
##  Max.   :846.0   Max.   :67.10   Max.   :2.4200   Max.   :81.00

Análisis Descriptivo

# Distribución de diabetes
table(data$Diabetes)
## 
##   0   1 
## 500 268
prop.table(table(data$Diabetes))
## 
##         0         1 
## 0.6510417 0.3489583
# Relación entre IMC y Diabetes
ggplot(data, aes(x=Diabetes, y=IMC, fill=Diabetes)) + 
  geom_boxplot() + 
  theme_minimal() + 
  ggtitle("Relación entre IMC y Diabetes")

Análisis Inferencial

# Prueba de t para comparar IMC entre diabéticos y no diabéticos
t.test(IMC ~ Diabetes, data = data)
## 
##  Welch Two Sample t-test
## 
## data:  IMC by Diabetes
## t = -8.6193, df = 573.47, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -5.940864 -3.735811
## sample estimates:
## mean in group 0 mean in group 1 
##        30.30420        35.14254
# Regresión logística para predecir la diabetes
modelo <- glm(Diabetes ~ Glucosa + IMC + Edad + Presion, data=data, family=binomial)
summary(modelo)
## 
## Call:
## glm(formula = Diabetes ~ Glucosa + IMC + Edad + Presion, family = binomial, 
##     data = data)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -7.970394   0.679866 -11.723  < 2e-16 ***
## Glucosa      0.033036   0.003360   9.832  < 2e-16 ***
## IMC          0.088515   0.013964   6.339 2.31e-10 ***
## Edad         0.034595   0.007900   4.379 1.19e-05 ***
## Presion     -0.012419   0.005074  -2.448   0.0144 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 993.48  on 767  degrees of freedom
## Residual deviance: 749.59  on 763  degrees of freedom
## AIC: 759.59
## 
## Number of Fisher Scoring iterations: 5

Conclusión

Los resultados sugieren que la glucosa y el IMC tienen una fuerte asociación con la presencia de diabetes. La edad también es un factor importante, destacando la importancia de la prevención y monitoreo temprano.