De la siguiente base de datos
url <- "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
colnames <- c("Pregnancies", "Glucose", "BloodPressure", "SkinThickness", "Insulin",
"BMI", "DiabetesPedigreeFunction", "Age", "Outcome")
diabetes <- read.csv(url, header = FALSE, col.names = colnames)
head(diabetes)
## Pregnancies 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
## DiabetesPedigreeFunction 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
La base de datos Pima Indians Diabetes contiene 9 variables predictoras relacionadas con medidas clínicas y personales, y 1 variable de salida (Outcome) que indica si una persona tiene diabetes.
summary(diabetes)
## Pregnancies 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 DiabetesPedigreeFunction 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
colSums(is.na(diabetes))
## Pregnancies Glucose BloodPressure
## 0 0 0
## SkinThickness Insulin BMI
## 0 0 0
## DiabetesPedigreeFunction Age Outcome
## 0 0 0
str(diabetes)
## 'data.frame': 768 obs. of 9 variables:
## $ Pregnancies : int 6 1 8 1 0 5 3 10 2 8 ...
## $ Glucose : int 148 85 183 89 137 116 78 115 197 125 ...
## $ BloodPressure : int 72 66 64 66 40 74 50 0 70 96 ...
## $ SkinThickness : int 35 29 0 23 35 0 32 0 45 0 ...
## $ Insulin : int 0 0 0 94 168 0 88 0 543 0 ...
## $ BMI : num 33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
## $ DiabetesPedigreeFunction: num 0.627 0.351 0.672 0.167 2.288 ...
## $ Age : int 50 31 32 21 33 30 26 29 53 54 ...
## $ Outcome : int 1 0 1 0 1 0 1 0 1 1 ...
Encontramos que tiene nueva variables con 768 observaciones cada una # Plantear hipótesis
H_0: No hay correlación entre el BMI y la presión arterial
H_a: Existe correlación positiva entre el BMI y la presión arterial
shapiro.test(diabetes$BMI)
##
## Shapiro-Wilk normality test
##
## data: diabetes$BMI
## W = 0.94999, p-value = 1.842e-15
shapiro.test(diabetes$BloodPressure)
##
## Shapiro-Wilk normality test
##
## data: diabetes$BloodPressure
## W = 0.81892, p-value < 2.2e-16
plot( diabetes$BMI,
col="green",main="Distribución de Normalidad de BMI",
xlab="BMI")
plot( diabetes$BloodPressure,
col="red",main="Distribución de Normalidad de la presión arterial",
xlab="presión arterial")
pairs(diabetes$BMI~ diabetes$BloodPressure,
col="blue")
# Función para probar normalidad y crear histogramas
test_normality <- function(variable, name) {
shapiro_test <- shapiro.test(variable)
hist(variable, main = paste("Distribución de", name), xlab = name)
qqnorm(variable)
qqline(variable)
return(shapiro_test)
}
Según nuestros resultados vemos que ninguna de nuestras variables sigue una distribución de normalidad, por lo que se acepta la hipotesis alterna y se rechaza la nula
cor.test(diabetes$BMI, diabetes$BloodPressure, method = "spearman",exact = FALSE)
##
## Spearman's rank correlation rho
##
## data: diabetes$BMI and diabetes$BloodPressure
## S = 53386404, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.2928704
#o
cor.test(diabetes$BMI, diabetes$BloodPressure, method = "kendall")
##
## Kendall's rank correlation tau
##
## data: diabetes$BMI and diabetes$BloodPressure
## z = 8.317, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
## tau
## 0.2052225
En ambos casos tanto en spearman como kendall vemos que BMI Y BloodPresure si tienen una correlación positiva y segun nuestro P-value como es menor en ambos casos rechazamos la H_o y aceptamos la H_a.
Utilizamos el metodo parametrico de Regresión de Theil-sen
library(mblm)
y<-diabetes$BloodPressure
x<-diabetes$BMI
ts_model = mblm(x~y)
summary(ts_model)
##
## Call:
## mblm(formula = x ~ y)
##
## Residuals:
## Min 1Q Median 3Q Max
## -34.983 -3.783 0.917 5.517 31.717
##
## Coefficients:
## Estimate MAD V value Pr(>|V|)
## (Intercept) 20.5825 15.8156 265645 <2e-16 ***
## y 0.1500 0.2173 242793 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.672 on 766 degrees of freedom
Con está prueba no parámetrica podemos observar que rechazamos de igual manera mi hipotesis nula y aceptamos la alterna, lo que nos dice que si existe una correlación positiva entre ambas variables.