| 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")
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
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
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)
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)
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
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)
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)
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.