De la siguiente base de datos
url <- “https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv”
La base de datos Pima Indians Diabetes contiene 8 variables predictoras relacionadas con medidas clínicas y personales, y 1 variable de salida (Outcome) que indica si una persona tiene diabetes.
Realizar:
# Cargar datos
url <- "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
dt <- read.csv(url, header = FALSE)
# Nombrar las columnas
colnames(dt) <- c("NumPregnancies", "Glucose", "BloodPressure", "SkinThickness",
"Insulin", "BMI", "DiabetesPedigree", "Age", "Outcome")
# Resumen estadístico
summary(dt)
## NumPregnancies Glucose BloodPressure SkinThickness
## 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
## Insulin BMI DiabetesPedigree Age
## Min. : 0.0 Min. : 0.00 Min. :0.0780 Min. :21.00
## 1st Qu.: 0.0 1st Qu.:27.30 1st Qu.:0.2437 1st Qu.:24.00
## 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
## Outcome
## Min. :0.000
## 1st Qu.:0.000
## Median :0.000
## Mean :0.349
## 3rd Qu.:1.000
## Max. :1.000
# Dimension
dim(dt)
## [1] 768 9
# Mostrar la primeras filas
head(dt)
## NumPregnancies Glucose BloodPressure SkinThickness Insulin BMI
## 1 6 148 72 35 0 33.6
## 2 1 85 66 29 0 26.6
## 3 8 183 64 0 0 23.3
## 4 1 89 66 23 94 28.1
## 5 0 137 40 35 168 43.1
## 6 5 116 74 0 0 25.6
## DiabetesPedigree Age Outcome
## 1 0.627 50 1
## 2 0.351 31 0
## 3 0.672 32 1
## 4 0.167 21 0
## 5 2.288 33 1
## 6 0.201 30 0
# Mostar las ultimas filas
tail(dt)
## NumPregnancies Glucose BloodPressure SkinThickness Insulin BMI
## 763 9 89 62 0 0 22.5
## 764 10 101 76 48 180 32.9
## 765 2 122 70 27 0 36.8
## 766 5 121 72 23 112 26.2
## 767 1 126 60 0 0 30.1
## 768 1 93 70 31 0 30.4
## DiabetesPedigree Age Outcome
## 763 0.142 33 0
## 764 0.171 63 0
## 765 0.340 27 0
## 766 0.245 30 0
## 767 0.349 47 1
## 768 0.315 23 0
En este caso utilizare las variables BMI(indice de masa corporal) y Outcome(diabetes) con el fin de evaluar si existe relacion. para esto filtramos nuestros datos y nos aseguramos de quitar los valores perdidos de cada variable.
datos <- dt[!is.na(dt$BMI) & !is.na(dt$Outcome), ]
head(datos[, c("BMI", "Outcome")])
## BMI Outcome
## 1 33.6 1
## 2 26.6 0
## 3 23.3 1
## 4 28.1 0
## 5 43.1 1
## 6 25.6 0
H_0=Las distribuciones de BMI son iguales para personas con y sin diabetes. (No hay diferencia significativa en los niveles de BMI entre los dos grupos)
H_1=Las distribuciones de BMI No son iguales para personas con y sin diabetes. (si hay diferencia significativa en los niveles de BMI entre los dos grupos)
planteamineto de Hipotesis H_0=Los datos presentan distribucion normal H_1=Los datos no presentan una distribucion normal
# Prueba de normalidad (Shapiro-Wilk)
shapiro.test(dt$BMI)
##
## Shapiro-Wilk normality test
##
## data: dt$BMI
## W = 0.94999, p-value = 1.842e-15
shapiro.test(dt$Outcome)
##
## Shapiro-Wilk normality test
##
## data: dt$Outcome
## W = 0.60251, p-value < 2.2e-16
Interpretacion Dado que p-evalue < 0.05 entonces se rechaza la hipotesis Nula, es decir que los datos de ambas variables no presentan una distribucion normal.
cor( dt$BMI, dt$Outcome, method = "kendall")
## [1] 0.253676
Aplicamos la prueba de Wilcoxon , por que nuestros datos no siguen una distribucion normal, entonces es la prueba ideal para estos datos.
# Prueba de Wilcoxon
wilcox.test(BMI ~ Outcome, data = datos)
##
## Wilcoxon rank sum test with continuity correction
##
## data: BMI by Outcome
## W = 41866, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0
Interpretacion
Dado que p-evalue <0.05, entonces se rechaza la hipotesis nula, es decir,Las distribuciones de BMI No son iguales para personas con y sin diabetes. en otras palabras, si hay diferencia significativa en los niveles de BMI entre los dos grupo.
Finalmente realizamos un grafico de dispersion para ver graficamente la distribucion de estos datos
#install.packages(ggplot2)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(dt, aes(x = BMI, y = factor(Outcome), color = factor(Outcome))) +
geom_jitter(height = 0.2, alpha = 0.6, size = 2) +
scale_color_manual(values = c("blue", "green"),
name = "Diabetes",
labels = c("No", "Si")) +
labs(title = "Dispersion de BMI segun Diagnostico de Diabetes",
x = "Indice de Masa Corporal (BMI)",
y = "Diagnostico de Diabetes (Outcome)") +
theme_minimal()
Dadas los conclusiones al aplicar la prueba Wilcoxon y ahora observando los datos podemos concluir que las personas con diabetes en esta base de datos tienden a tener índices de masa corporal más elevados. por tanto, se acepta a hipotesis alterna pues hay diferencia en los valores de BMI según el diagnóstico de diabetes.