0 - Preparación del archivo

Variable Descripción
Pregnancies (Embarazos) Número de veces que la paciente ha estado embarazada.
Glucose (Glucosa) Concentración de glucosa en plasma a las 2 horas en una prueba oral de tolerancia a la glucosa.
BloodPressure (Presión arterial) Presión arterial diastólica (mm Hg).
SkinThickness (Espesor de la piel) Espesor del pliegue cutáneo del tríceps (mm).
Insulin (Insulina) Insulina sérica a las 2 horas (mu U/ml).
BMI (IMC) Índice de masa corporal (peso en kg/(altura en m)^2).
DiabetesPedigreeFunction Función que puntúa la probabilidad de diabetes en función de los antecedentes familiares.
Age (Edad) Edad del paciente (años).
Outcome (Resultado) Variable de clase (0 o 1), donde 1 representa la presencia de diabetes y 0 representa la ausencia de diabetes.
diabetes <- read.csv("C:/Users/almun/OneDrive - Universidad Nacional de Colombia/Escritorio/Noveno semestre/Probabilidad/Parcial III/diabetes.csv")

1 - Análisis descriptivo

library(psych)
## Warning: package 'psych' was built under R version 4.3.3
variables = diabetes[c('Glucose', 'BloodPressure', 'Insulin', 'SkinThickness', 'Outcome')]

print(describe(variables))
##               vars   n   mean     sd median trimmed   mad min max range  skew
## Glucose          1 768 120.89  31.97  117.0  119.38 29.65   0 199   199  0.17
## BloodPressure    2 768  69.11  19.36   72.0   71.36 11.86   0 122   122 -1.84
## Insulin          3 768  79.80 115.24   30.5   56.75 45.22   0 846   846  2.26
## SkinThickness    4 768  20.54  15.95   23.0   19.94 17.79   0  99    99  0.11
## Outcome          5 768   0.35   0.48    0.0    0.31  0.00   0   1     1  0.63
##               kurtosis   se
## Glucose           0.62 1.15
## BloodPressure     5.12 0.70
## Insulin           7.13 4.16
## SkinThickness    -0.53 0.58
## Outcome          -1.60 0.02
for (colum in colnames(variables)) {
  
  quantiles <- quantile(variables[[colum]])
  print(paste("Cuantiles de la columna", colum, ":"))
  print(quantiles)
}
## [1] "Cuantiles de la columna Glucose :"
##     0%    25%    50%    75%   100% 
##   0.00  99.00 117.00 140.25 199.00 
## [1] "Cuantiles de la columna BloodPressure :"
##   0%  25%  50%  75% 100% 
##    0   62   72   80  122 
## [1] "Cuantiles de la columna Insulin :"
##     0%    25%    50%    75%   100% 
##   0.00   0.00  30.50 127.25 846.00 
## [1] "Cuantiles de la columna SkinThickness :"
##   0%  25%  50%  75% 100% 
##    0    0   23   32   99 
## [1] "Cuantiles de la columna Outcome :"
##   0%  25%  50%  75% 100% 
##    0    0    0    1    1
plot(variables)

library(pheatmap)
## Warning: package 'pheatmap' was built under R version 4.3.3
m = cor(variables)

# Mapa calor

pheatmap(m,
         display_numbers = TRUE,
         number_color = "black",
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         fontsize_number = 8)

# 2 - Prueba de hipótesis 1

H0: a nivel poblacional, la media de la glucosa es igual a 125
H1: a nivel poblacional, la media de la glucosa es diferente a 125

Para constatar estas hipótesis se realiza la prueba sobre la media, utilizando t de student, con un nivel de confianza del 95%

t.test(diabetes$Glucose, mu = 125, alternative = "two.sided")
## 
##  One Sample t-test
## 
## data:  diabetes$Glucose
## t = -3.5585, df = 767, p-value = 0.0003959
## alternative hypothesis: true mean is not equal to 125
## 95 percent confidence interval:
##  118.6297 123.1593
## sample estimates:
## mean of x 
##  120.8945

Mediante la anterior prueba de hipótesis, y debído a que el p-value es menor al 0.05, existen argumentos para no aceptar la hipótesis nula, es decir NO podemos asumir que la glucosa es igual a 125

3 - Prueba de hipótesis 2

Se comparan los registros de glucosa de las personas que presentan diabetes (1) y las que no (0)

boxplot(diabetes$Glucose ~ diabetes$Outcome)
stripchart(diabetes$Glucose ~ diabetes$Outcome, vertical = TRUE, method = "jitter",
           pch = 19, add = TRUE, col = 1:2)

Tras un breve análisis gráfico se podría decir que las medias de la glucosa para invididuos con diabetes (1) y sin diabetes (0) son diferentes, sin embargo se realiza una prueba de hipótesis con los datos disponibles

  1. Se realiza una prueba de varianzas, para determinar si las varianzas son iguales
H0: la varianza de la glucosa es igual en las personas con presencia de diabetes y sin ella

H1: la varianza de la glucosa es diferente en las personas con presencia de diabetes y sin ella
var.test(diabetes$Glucose ~ diabetes$Outcome, data = diabetes)
## 
##  F test to compare two variances
## 
## data:  diabetes$Glucose by diabetes$Outcome
## F = 0.66987, num df = 499, denom df = 267, p-value = 0.0001392
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.540853 0.824044
## sample estimates:
## ratio of variances 
##          0.6698715

Como el p-valor de la anterior prueba es menor que 0.05, se acepta la hipotesis alternativa, es decir NO podemos asumir que las varianzas son iguales, a un nivel de significancia del 5% (α = 0.05)

  1. se realiza una prueba de hipótesis para diferencia de medias, t test
H0: a nivel poblacional, la media de la glucosa es igual entre los individuos que tienen
diabetes y los que no la tienen  

H1: a nivel poblacional, la media de la glucosa es diferente entre los individuos que tienen       diabetes y los que no la tienen
t.test(diabetes$Glucose ~ diabetes$Outcome, data=diabetes , var.equal=FALSE, alternative="two.sided")
## 
##  Welch Two Sample t-test
## 
## data:  diabetes$Glucose by diabetes$Outcome
## t = -13.752, df = 461.33, 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:
##  -35.74707 -26.80786
## sample estimates:
## mean in group 0 mean in group 1 
##        109.9800        141.2575

Debido a que el p-value es menor que 0.05, se acepta la hipotesis alternativa, NO podemos asumir que la media de la glucosa es igual entre los individuos que tienen diabetes y los que no la tienen, a un nivel de significancia del 5% (α = 0.05)

4 - Prueba de hipótesis 3

Se comparan los registros de la presión arterial de las personas que presentan diabetes (1) y las que no (0)

boxplot(diabetes$BloodPressure ~ diabetes$Outcome)
stripchart(diabetes$BloodPressure ~ diabetes$Outcome, vertical = TRUE, method = "jitter",
           pch = 19, add = TRUE, col = 1:2)

Tras un breve análisis gráfico se podría decir que las medias de la glucosa para invididuos con diabetes (1) y sin diabetes (0) son similares, sin embargo se realiza una prueba de hipótesis con los datos disponibles

  1. Se realiza una prueba de varianzas, para determinar si las varianzas son iguales
H0: la varianza de la presión sanguinea es igual en las personas con presencia de diabetes y       sin ella

H1: la varianza de la presión sanguinea es diferente en las personas con presencia de diabetes     y sin ella
var.test(diabetes$BloodPressure ~ diabetes$Outcome, data = diabetes)
## 
##  F test to compare two variances
## 
## data:  diabetes$BloodPressure by diabetes$Outcome
## F = 0.70638, num df = 499, denom df = 267, p-value = 0.0009661
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.5703285 0.8689529
## sample estimates:
## ratio of variances 
##          0.7063783

Como el p-valor de la anterior prueba es menor que 0.05, se acepta la hipotesis alternativa, es decir NO podemos asumir que las varianzas son iguales, a un nivel de significancia del 5% (α = 0.05)

  1. se realiza una prueba de hipótesis para diferencia de medias, t test
H0: a nivel poblacional, la media de la presión sanguinea es igual entre los individuos que        tienen diabetes y los que no la tienen  

H1: a nivel poblacional, la media de la presión sanguinea es diferente entre los individuos que     tienen diabetes y los que no la tienen
t.test(diabetes$BloodPressure ~ diabetes$Outcome, data=diabetes , var.equal=FALSE, alternative="two.sided")
## 
##  Welch Two Sample t-test
## 
## data:  diabetes$BloodPressure by diabetes$Outcome
## t = -1.7131, df = 471.31, p-value = 0.08735
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -5.669580  0.388326
## sample estimates:
## mean in group 0 mean in group 1 
##        68.18400        70.82463

Debido a que el p-value es mayor que 0.05, no hay evidencia suficiente para afirmar que existe una diferencia significativa en la media de la presión sanguínea entre individuos con diabetes y sin diabetes a un nivel de significancia del 5% (α = 0.05)

5 - Regresión lineal

Se ajuste un modelo de regresión con la variable Espesor de la piel como target y la variable Insulina como feature

Análisis de dispersión entre las variables

plot(diabetes$SkinThickness,diabetes$Insulin)

Corelación

correlacion = cor(diabetes$SkinThickness, diabetes$Insulin, use = "complete.obs")
print(paste("Coeficiente de correlación de Pearson:", correlacion))
## [1] "Coeficiente de correlación de Pearson: 0.436782570120013"

Se ajusta el modelo de regresion

model = lm(diabetes$SkinThickness ~ diabetes$Insulin, data=diabetes)
model
## 
## Call:
## lm(formula = diabetes$SkinThickness ~ diabetes$Insulin, data = diabetes)
## 
## Coefficients:
##      (Intercept)  diabetes$Insulin  
##         15.71178           0.06046

Gráfica del modelo

plot(diabetes$SkinThickness,diabetes$Insulin)
abline(model, col="red")

Resumen del modelo

summary(model)
## 
## Call:
## lm(formula = diabetes$SkinThickness ~ diabetes$Insulin, data = diabetes)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -43.861 -15.712   0.054  10.968  83.288 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      15.711783   0.630380   24.92   <2e-16 ***
## diabetes$Insulin  0.060460   0.004499   13.44   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.36 on 766 degrees of freedom
## Multiple R-squared:  0.1908, Adjusted R-squared:  0.1897 
## F-statistic: 180.6 on 1 and 766 DF,  p-value: < 2.2e-16

A pesar de que nuestro p-valor es pequeño y sugiere un buen modelo, nuestro Adjusted R-squared nos indica que la variabilidad en la variable SkinThickness es explicada por la variable Insulin, en un 0.1897; con lo que se concluye que el modelo no captura toda la variabilidad en SkinThickness y que pueden existir otros factores que también influyen en el espesor de la piel.