La enfermedad crónica es una condición de salud que se caracteriza por ser de larga duración y generalmente no tiene una cura completa. A diferencia de las enfermedades agudas que son de corta duración, las enfermedades crónicas pueden persistir durante meses o incluso años. Estas enfermedades pueden afectar diferentes sistemas del cuerpo y tener un impacto significativo en la calidad de vida de una persona.
Algunos de las enfermedades crónicas incluyen la diabetes, la hipertensión arterial, el asma, la enfermedad cardiovascular y la artritis. Estas enfermedades requieren un manejo continuo y a menudo implican cambios en el estilo de vida, medicamentos y seguimiento médico regular.
Es importante destacar que cada enfermedad crónica es única y puede afectar a las personas de diferentes maneras. Algunas personas pueden experimentar síntomas leves, mientras que otras pueden tener síntomas más graves que limitan su capacidad para llevar una vida normal.
Es fundamental que las personas con enfermedades crónicas reciban un diagnóstico temprano y un tratamiento adecuado para controlar los síntomas y prevenir complicaciones a largo plazo. Además, el apoyo emocional y la educación sobre la enfermedad son aspectos importantes del manejo de las enfermedades crónicas.(Comunicarse con los demás - al vivir con una enfermedad crónica: MedlinePlus Enciclopedia Médica, s. f.)
Edad (Age): Se basa al período de tiempo que la persona esta viva o ha estado viva.
Género (Gender): Hace referencia a la identidad sexual de una persona, ya sea masculino o femenino.
Diabetes familiar (Family_Diabetes): Se refiere a la presencia de antecedentes familiares de diabetes, es decir, si algún miembro de la familia ha sido diagnosticado con diabetes.
Presión arterial alta (highBP): Hace referencia a la presión arterial elevada, de la persona lo cual puede ser un indicador de problemas de salud como enfermedades cardiovasculares.
Actividad física (PhysicallyActive): Se refiere al nivel de actividad física que una persona realiza en su vida diaria, como ejercicios, deportes y cualquier otra forma de actividad física que se realice regularmente.
BMI: Es la sigla en inglés para “Índice de Masa Corporal” (Body Mass Index): Se utiliza para evaluar si una persona tiene un peso saludable en relación con su altura.
Fumar (Smoking): Hace referencia al hábito de fumar cigarrillos u otras formas de tabaco. El tabaquismo está asociado con numerosos problemas de salud, como enfermedades respiratorias y cardiovasculares.
Consumo de alcohol (Alcohol): Se refiere al consumo de bebidas alcohólicas. El consumo excesivo de alcohol puede tener efectos negativos en la salud, incluyendo daño al hígado y aumento del riesgo de accidentes.
Sueño (Sleep): Hace referencia al período de descanso y recuperación que una persona necesita diariamente.
Sueño profundo (SoundSleep): Se refiere a la calidad del sueño, especialmente al sueño profundo y reparador, es adecuado es importante para la salud y el bienestar general.
Medicación regular (RegularMedicine): Hace referencia al consumo regular de medicamentos recetados por un médico para tratar una condición médica específica.
Comida chatarra (JunkFood): Se refiere a alimentos que son altos en calorías, grasas saturadas, azúcares y bajos en nutrientes esenciales.
Estrés (Stress): Hace referencia a la respuesta del cuerpo ante situaciones desafiantes o estresantes. El estrés crónico puede tener efectos negativos en la salud física y mental.
Nivel de presión arterial (BPLevel): Se refiere al nivel de presión arterial, que puede ser normal, bajo o alto de la persona. Está asociada con un mayor riesgo de enfermedades cardiovasculares.
Embarazos (Pregancies): Hace referencia al número de veces que una mujer ha estado embarazada o ha dado a luz a un bebé.
Diabetes gestacional (Pdiabetes): Se refiere a la diabetes que se desarrolla durante el embarazo. Es importante controlar y tratar la diabetes gestacional para evitar complicaciones tanto para la madre como para el bebé.
Frecuencia urinaria (UriationFreq): Hace referencia a la frecuencia con la que una persona orina.
Diabetes (Diabetic): Se refiere a la condición médica crónica caracterizada por niveles elevados de azúcar en sangre. Puede tener implicaciones para la salud a largo plazo y requiere un manejo adecuado a través de cambios en el estilo de vida y medicación.
DATA <- load(“DATA.rda”)
Error in readChar(con, 5L, useBytes = TRUE) : no se puede abrir la conexión Además: Warning message: In readChar(con, 5L, useBytes = TRUE) : cannot open compressed file ‘DATA.rda’, probable reason ‘No such file or directory’
file.choose() [1] “C:\6to SEMESTRE\METODO CUANTITATIVO\DATA.rda”
DATA <- load(“C:\6to SEMESTRE\METODO CUANTITATIVO\DATA.rda”)
DATA
[1] “diabetes”
write.table(diabetes, file = “diabetes2.txt”, sep = “;”, eol=“”)
# Importar la base de datos
diabetes <- read.csv("diabetes2.csv",sep = ";")
# diabetes
# Se muetsra las primeras 3 filas de la base de datos
head(diabetes, 3)
## Age Gender Family_Diabetes highBP PhysicallyActive BMI Smoking
## 20 less than 40 Male yes no one hr or more 22 no
## 258 less than 40 Male yes no one hr or more 22 no
## 511 60 or older Female yes no none 26 no
## Alcohol Sleep SoundSleep RegularMedicine JunkFood Stress BPLevel
## 20 no 8 6 no often not at all normal
## 258 no 8 6 no often not at all normal
## 511 no 7 7 no occasionally sometimes normal
## Pregancies Pdiabetes UriationFreq Diabetic
## 20 0 0 not much no
## 258 0 0 not much no
## 511 3 0 not much no
# nombres de las variables
names(diabetes)
## [1] "Age" "Gender" "Family_Diabetes" "highBP"
## [5] "PhysicallyActive" "BMI" "Smoking" "Alcohol"
## [9] "Sleep" "SoundSleep" "RegularMedicine" "JunkFood"
## [13] "Stress" "BPLevel" "Pregancies" "Pdiabetes"
## [17] "UriationFreq" "Diabetic"
# Comprobar el tipo de clase de cada variable
clases <- sapply(diabetes, class)
clases
## Age Gender Family_Diabetes highBP
## "character" "character" "character" "character"
## PhysicallyActive BMI Smoking Alcohol
## "character" "integer" "character" "character"
## Sleep SoundSleep RegularMedicine JunkFood
## "integer" "integer" "character" "character"
## Stress BPLevel Pregancies Pdiabetes
## "character" "character" "integer" "character"
## UriationFreq Diabetic
## "character" "character"
Variable AGE
diabetes$Age <- factor(diabetes$Age)
levels(diabetes$Age) <- c("40-49","50-59","60 or older","less than 40")
class(diabetes$Age)
## [1] "factor"
Variable Gender
diabetes$Gender <- factor(diabetes$Gender)
levels(diabetes$Gender) <- c("Female","Male")
class(diabetes$Gender)
## [1] "factor"
Variable Family_Diabetes
diabetes$Family_Diabetes <- factor(diabetes$Family_Diabetes)
levels(diabetes$Family_Diabetes) <- c("no","yes")
class(diabetes$Family_Diabetes)
## [1] "factor"
Variable HighBP
diabetes$highBP <- factor(diabetes$highBP)
levels(diabetes$highBP) <- c("no","yes")
class(diabetes$highBP)
## [1] "factor"
Variable PhysicallyActive
diabetes$PhysicallyActive <- factor(diabetes$PhysicallyActive)
levels(diabetes$PhysicallyActive) <- c("one hr or more","none","more than half an hr","
less than half an hr","none")
class(diabetes$PhysicallyActive)
## [1] "factor"
Variable Smoking
diabetes$Smoking <- factor(diabetes$Smoking)
levels(diabetes$Smoking) <- c("no","yes")
class(diabetes$Smoking)
## [1] "factor"
Variable Alcohol
diabetes$Alcohol <- factor(diabetes$Alcohol)
levels(diabetes$Alcohol) <- c("no","yes")
class(diabetes$Alcohol)
## [1] "factor"
Variable RegularMedicine
diabetes$RegularMedicine <- factor(diabetes$RegularMedicine)
levels(diabetes$RegularMedicine) <- c("no","yes")
class(diabetes$RegularMedicine)
## [1] "factor"
Variable JunkFood
diabetes$JunkFood <- factor(diabetes$JunkFood)
levels(diabetes$JunkFood) <- c("often", "occasionally", "very often", "always")
class(diabetes$JunkFood)
## [1] "factor"
Variable Stress
diabetes$Stress <- factor(diabetes$Stress)
levels(diabetes$Stress) <- c("not at all", "sometimes", "very often", "always")
class(diabetes$Stress)
## [1] "factor"
Variable Bplevel
diabetes$BPLevel <- factor(diabetes$BPLevel)
levels(diabetes$BPLevel) <- c("normal", "high", "low")
class(diabetes$BPLevel)
## [1] "factor"
Variable Pdiabetes
diabetes$Pdiabetes <- factor(diabetes$Pdiabetes)
levels(diabetes$Pdiabetes) <- c("0", "yes")
class(diabetes$Pdiabetes)
## [1] "factor"
Variable UriationFreq
diabetes$UriationFreq <- factor(diabetes$UriationFreq)
levels(diabetes$UriationFreq) <- c("not much", "quite often")
class(diabetes$UriationFreq)
## [1] "factor"
Variable Diabetic
diabetes$Diabetic <- factor(diabetes$Diabetic)
levels(diabetes$Diabetic) <- c("no", "yes")
class(diabetes$Diabetic)
## [1] "factor"
# Eliminar filas con valores faltantes
diabetes_clean <- na.omit(diabetes)
# Verificar el resultado
head(diabetes_clean)
## Age Gender Family_Diabetes highBP PhysicallyActive BMI
## 20 less than 40 Male yes no \t\nless than half an hr 22
## 258 less than 40 Male yes no \t\nless than half an hr 22
## 511 60 or older Female yes no more than half an hr 26
## 907 less than 40 Male yes no none 19
## 582 60 or older Male no no none 23
## 726 40-49 Male no no one hr or more 26
## Smoking Alcohol Sleep SoundSleep RegularMedicine JunkFood Stress
## 20 no no 8 6 no very often sometimes
## 258 no no 8 6 no very often sometimes
## 511 no no 7 7 no occasionally very often
## 907 yes yes 7 5 no occasionally sometimes
## 582 no yes 7 6 yes occasionally always
## 726 yes no 8 7 no occasionally very often
## BPLevel Pregancies Pdiabetes UriationFreq Diabetic
## 20 low 0 0 not much no
## 258 low 0 0 not much no
## 511 low 3 0 not much no
## 907 low 0 0 not much no
## 582 normal 0 0 quite often yes
## 726 low 0 0 not much no
# Eliminar filas con valores NA
diabetes_clean <- na.omit(diabetes)
# Verificar el resultado
head(diabetes_clean)
## Age Gender Family_Diabetes highBP PhysicallyActive BMI
## 20 less than 40 Male yes no \t\nless than half an hr 22
## 258 less than 40 Male yes no \t\nless than half an hr 22
## 511 60 or older Female yes no more than half an hr 26
## 907 less than 40 Male yes no none 19
## 582 60 or older Male no no none 23
## 726 40-49 Male no no one hr or more 26
## Smoking Alcohol Sleep SoundSleep RegularMedicine JunkFood Stress
## 20 no no 8 6 no very often sometimes
## 258 no no 8 6 no very often sometimes
## 511 no no 7 7 no occasionally very often
## 907 yes yes 7 5 no occasionally sometimes
## 582 no yes 7 6 yes occasionally always
## 726 yes no 8 7 no occasionally very often
## BPLevel Pregancies Pdiabetes UriationFreq Diabetic
## 20 low 0 0 not much no
## 258 low 0 0 not much no
## 511 low 3 0 not much no
## 907 low 0 0 not much no
## 582 normal 0 0 quite often yes
## 726 low 0 0 not much no
Descripción teórica:
Concepto y Fórmula:
Interpretación:
Diabetes1 <- diabetes_clean[, c("BMI", "Sleep", "SoundSleep", "Pregancies")]
summary(Diabetes1)
## BMI Sleep SoundSleep Pregancies
## Min. :15.00 Min. : 4.000 Min. : 0.000 Min. :0.0000
## 1st Qu.:21.00 1st Qu.: 6.000 1st Qu.: 4.000 1st Qu.:0.0000
## Median :24.00 Median : 7.000 Median : 6.000 Median :0.0000
## Mean :25.33 Mean : 6.976 Mean : 5.609 Mean :0.3819
## 3rd Qu.:28.00 3rd Qu.: 8.000 3rd Qu.: 7.000 3rd Qu.:0.0000
## Max. :42.00 Max. :11.000 Max. :11.000 Max. :4.0000
Diabetes1 <- diabetes_clean[, c("BMI", "Sleep", "SoundSleep", "Pregancies")]
# Verificar el resultado
head(Diabetes1)
## BMI Sleep SoundSleep Pregancies
## 20 22 8 6 0
## 258 22 8 6 0
## 511 26 7 7 3
## 907 19 7 5 0
## 582 23 7 6 0
## 726 26 8 7 0
El valor mínimo se refiere al valor más pequeño encontrado de las variables dentro de esa base de datos. Para calcular el valor mínimo de una variable se, puedes utilizar la función min(). Esta función devuelve el valor mínimo dentro de un vector o columna.
\[\text{Valor Mínimo} = \min(x_1, x_2, ..., x_n)\]
# Obtener el valor mínimo de las variables "BMI", "Sleep", "SoundSleep" y "Pregancies"
apply(Diabetes1[, c("BMI", "Sleep", "SoundSleep", "Pregancies")], 2, min)
## BMI Sleep SoundSleep Pregancies
## 15 4 0 0
Interpretación:
BMI (Índice de Masa Corporal):
El valor mínimo es 15.00. Esto significa que la menor medida de índice de masa corporal registrada es 15. El BMI es una medida que relaciona el peso y la altura de una persona, y un valor mínimo puede sugerir la presencia de casos con bajo peso.
Sleep (Horas de Sueño):
El valor mínimo es 4.000. Indica que la menor cantidad de horas de sueño registrada es 4. Esto podría sugerir la presencia de casos con un bajo número de horas de sueño.
SoundSleep (Horas de Sueño Profundo):
El valor mínimo es 0. Indica que, en algunos casos, no hubo horas de sueño profundo registradas. Esto podría ser interpretado como la ausencia de horas de sueño profundo en esos casos específicos.
Pregnancies (Embarazos):
El valor mínimo es 0. Indica que la menor cantidad de embarazos registrada es 0. Esto podría sugerir la presencia de casos donde no hubo embarazos.
El primer cuartil, también conocido como Q1 o percentil 25, es un valor estadístico que indica el punto en el cual el 25% de los datos de una muestra se encuentran por debajo de ese valor. En otras palabras, el primer cuartil divide la muestra en cuatro partes iguales, donde el 25% de los datos se encuentran por debajo del primer cuartil y el 75% restante se encuentra por encima.
\[Q1=Percentil . 25\]
# Calcular el primer cuartil de las variables "BMI", "Sleep", "SoundSleep" y "Pregancies"
first_quartiles <- quantile(Diabetes1$BMI, probs = 0.25)
first_quartiles_sleep <- quantile(Diabetes1$Sleep, probs = 0.25)
first_quartiles_soundsleep <- quantile(Diabetes1$SoundSleep, probs = 0.25)
first_quartiles_pregnancies <- quantile(Diabetes1$Pregancies, probs = 0.25)
# Verificar los resultados
C <- data.frame(
first_quartiles,
first_quartiles_sleep,
first_quartiles_soundsleep,
first_quartiles_pregnancies
)
print(C)
## first_quartiles first_quartiles_sleep first_quartiles_soundsleep
## 25% 21 6 4
## first_quartiles_pregnancies
## 25% 0
Interpretación:
BMI (Índice de Masa Corporal):
El primer cuartil para BMI es 21. Esto significa que el 25% de los datos tienen un valor de BMI menor o igual a 21. En términos prácticos, se puede decir que el 25% de las observaciones tienen un índice de masa corporal igual o inferior a 21.
Sleep (Horas de Sueño):
El primer cuartil para Sleep es 6. Esto indica que el 25% de los datos tienen un valor de horas de sueño igual o inferior a 6. En otras palabras, el 25% de las observaciones tienen un número de horas de sueño igual o inferior a 6.
SoundSleep (Horas de Sueño Profundo):
El primer cuartil para SoundSleep es 4. Significa que el 25% de los datos tienen un valor de horas de sueño profundo igual o inferior a 4. El primer cuartil nos proporciona una idea sobre la distribución de las horas de sueño profundo en el cuartil inferior.
Pregnancies (Embarazos):
El primer cuartil para Pregancies es 0. Indica que el 25% de los datos tienen un valor de embarazos igual o inferior a 0. Esto sugiere que un cuarto de las observaciones no tuvieron embarazos o tuvieron muy pocos embarazos.
La mediana es una medida de tendencia central que indica el valor que se encuentra en el centro de un conjunto de datos ordenados. Es decir, la mitad de los valores están por encima de la mediana y la otra mitad están por debajo.
\[\text{Mediana} = \text{valor\medio}\]
apply(Diabetes1, 2, median)
## BMI Sleep SoundSleep Pregancies
## 24 7 6 0
Interpretación:
BMI (Índice de Masa Corporal):
La mediana para BMI es 24. Esto significa que el 50% de los datos tienen un valor de BMI menor o igual a 24. En otras palabras, la mitad de las observaciones tienen un índice de masa corporal igual o inferior a 24, y la otra mitad tiene un valor igual o superior a 24.
Sleep (Horas de Sueño):
La mediana para Sleep es 7. Indica que el 50% de los datos tienen un valor de horas de sueño igual o inferior a 7. La mediana es el punto medio de la distribución de las horas de sueño, donde la mitad de las observaciones tienen un número de horas igual o inferior a 7, y la otra mitad tiene un valor igual o superior a 7.
SoundSleep (Horas de Sueño Profundo):
La mediana para SoundSleep es 6. Significa que el 50% de los datos tienen un valor de horas de sueño profundo igual o inferior a 6. La mediana proporciona información sobre el punto medio de la distribución de las horas de sueño profundo.
Pregnancies (Embarazos):
La mediana para Pregancies es 0. Indica que el 50% de los datos tienen un valor de embarazos igual o inferior a 0. La mediana nos dice que la mitad de las observaciones tienen cero o un número muy bajo de embarazos.
El valor de la media se refiere al promedio de los valores de una variable específica. La media es una medida de tendencia central que se calcula sumando todos los valores y dividiendo el resultado entre la cantidad total de valores.
\[\bar{x} = \frac{1}{N} \sum_{i=1}^{N} x_i\]
data.frame(mean(Diabetes1$BMI),
mean(Diabetes1$Sleep),
mean(Diabetes1$SoundSleep),
mean(Diabetes1$Pregancies))
## mean.Diabetes1.BMI. mean.Diabetes1.Sleep. mean.Diabetes1.SoundSleep.
## 1 25.33444 6.975717 5.609272
## mean.Diabetes1.Pregancies.
## 1 0.3818985
Interpretación:
BMI (Índice de Masa Corporal):
La media para BMI es 25.33. En este caso, la media de BMI es aproximadamente 25.33, lo que indica que, en promedio, las medidas de índice de masa corporal tienden a estar alrededor de este valor.
Sleep (Horas de Sueño):
La media para Sleep es 6.976. En promedio, las observaciones en el conjunto de datos tienen alrededor de 6.976 horas de sueño.
SoundSleep (Horas de Sueño Profundo):
La media para SoundSleep es 5.609. En promedio, las horas de sueño profundo son aproximadamente 5.609.
Pregnancies (Embarazos):
La media para Pregancies es 0.3819. En promedio, las observaciones en el conjunto de datos tienen aproximadamente 0.3819 embarazos.
El valor del tercer cuartil, también conocido como el percentil 75 (Q3), es un valor que divide los datos ordenados en cuatro partes iguales. Esto significa que el 75% de los datos se encuentran por debajo del tercer cuartil y el 25% restante se encuentra por encima.
\[Q_3=Percentil. 75\]
Diabetes1 <- diabetes_clean[, c("BMI", "Sleep", "SoundSleep", "Pregancies")]
# Calcular el tercer cuartil para cada variable
q3_values <- apply(Diabetes1, 2, quantile, probs = 0.75)
# Imprimir los resultados
print(q3_values)
## BMI Sleep SoundSleep Pregancies
## 28 8 7 0
Interpretación:
BMI (Índice de Masa Corporal):
El tercer cuartil (3rd Qu) para BMI es 28. Indica que el 75% de los datos tienen un valor de BMI menor o igual a 28. En otras palabras, el 75% de las observaciones tienen un índice de masa corporal igual o inferior a 28.
Sleep (Horas de Sueño):
El tercer cuartil para Sleep es 8. Esto significa que el 75% de los datos tienen un valor de horas de sueño igual o inferior a 8. Indica la distribución de las horas de sueño en el cuartil superior, donde el 75% de las observaciones tienen un número de horas igual o inferior a 8.
SoundSleep (Horas de Sueño Profundo):
El tercer cuartil para SoundSleep es 7. Indica que el 75% de los datos tienen un valor de horas de sueño profundo igual o inferior a 7. Proporciona información sobre la distribución de las horas de sueño profundo en el cuartil superior.
Pregnancies (Embarazos):
El tercer cuartil para Pregancies es 0. Indica que el 75% de los datos tienen un valor de embarazos igual o inferior a 0. Esto sugiere que la mayoría de las observaciones tienen cero o un número muy bajo de embarazos.
El valor máximo se refiere al valor más grande que se encuentra en una determinada variable o columna. Es el valor más alto dentro de esa columna específica de un conjunto de datos.
\[\text{Valor Máximo} = \text{max}(x)\]
# Suponiendo que Diabetes1 es tu conjunto de datos
Diabetes1 <- diabetes_clean[, c("BMI", "Sleep", "SoundSleep", "Pregancies")]
# Calcular el valor máximo de cada variable
maximos <- apply(Diabetes1, 2, max)
# Imprimir los valores máximos
print(maximos)
## BMI Sleep SoundSleep Pregancies
## 42 11 11 4
Interpretación:
BMI (Índice de Masa Corporal):
El valor máximo para BMI es 42. Indica el valor más alto observado en el conjunto de datos para el índice de masa corporal. Este valor máximo, 42 rep,resenta el extremo superior de las medidas de índice de masa corporal.
Sleep (Horas de Sueño):
El valor máximo para Sleep es 11. Indica la mayor cantidad de horas de sueño registrada en el conjunto de datos. Este valor máximo, 11, sugiere que algunas observaciones en el conjunto de datos tuvieron una cantidad considerablemente alta de horas de sueño.
SoundSleep (Horas de Sueño Profundo):
El valor máximo para SoundSleep es 11. Representa la mayor cantidad de horas de sueño profundo observada en los datos. Este valor máximo, 11, indica que algunas observaciones experimentaron una cantidad significativamente alta de horas de sueño profundo.
Pregnancies (Embarazos):
El valor máximo para Pregancies es 4. Indica la mayor cantidad de embarazos registrada en el conjunto de datos. Este valor máximo, 4, sugiere que algunas observaciones tuvieron un número relativamente alto de embarazos.
La desviación estándar es una medida de dispersión o variabilidad en un conjunto de datos. Indica cuánto se alejan los valores individuales de la media del conjunto de datos.
En términos más simples, la desviación estándar nos dice qué tan dispersos están los valores alrededor de la media. Si la desviación estándar es baja, significa que los valores tienden a estar cerca de la media. Por otro lado, si la desviación estándar es alta, indica que los valores están más dispersos y alejados de la media.
La desviación estándar se calcula tomando la raíz cuadrada de la varianza. Es una medida ampliamente utilizada en estadística para comprender la dispersión de los datos y comparar la variabilidad entre diferentes conjuntos de datos.
Responder de nuevo Buscar en la web y GPT-4
Fórmula
\[\sigma = \sqrt{\frac{\sum_{i=1}^{N}(x_i - \bar{x})^2}{N-1}}\]
Diabetes1 <- diabetes_clean[, c("BMI", "Sleep", "SoundSleep", "Pregancies")]
desviacion_estandar <- apply(Diabetes1, 2, sd)
desviacion_estandar
## BMI Sleep SoundSleep Pregancies
## 5.1399922 1.3042497 1.8435140 0.9090479
Interpretación
Las desviaciones estándar corresponden a las variables “BMI”, “Sleep”, “SoundSleep” y “Pregancies”.
Cada una de estas desviaciones estándar indica cuánto se alejan los valores individuales de cada variable de la media correspondiente.
BMI (Índice de masa corporal): La desviación estándar de 5.14 para el BMI indica que los valores individuales de BMI tienden a alejarse de la media en aproximadamente 5.14 unidades. Esto sugiere que hay una variabilidad relativamente alta en los índices de masa corporal en el conjunto de datos.
Sleep (Tiempo de sueño): La desviación estándar de 1.30 para Sleep indica que los valores individuales de tiempo de sueño tienden a alejarse de la media en aproximadamente 1.30 unidades. Esto sugiere una variabilidad moderada en los tiempos de sueño registrados.
SoundSleep (Sueño profundo): La desviación estándar de 1.84 para SoundSleep indica que los valores individuales de sueño profundo tienden a alejarse de la media en aproximadamente 1.84 unidades. Esto sugiere una variabilidad moderada en los niveles de sueño profundo registrados.
Pregancies (Embarazos): La desviación estándar de 0.91 para Pregancies indica que los valores individuales de embarazos tienden a alejarse de la media en aproximadamente 0.91 unidades. Esto sugiere una variabilidad relativamente baja en el número de embarazos en el conjunto de datos.
En general, cuanto más grande sea la desviación estándar, más dispersos estarán los valores alrededor de la media y mayor será la variabilidad en los datos. Por otro lado, una desviación estándar más pequeña indica que los valores están más cerca de la media y hay menos variabilidad en los datos, y nos proporcionan información sobre la dispersión y variabilidad de los datos en relación con la media. Cuanto mayor sea la desviación estándar, mayor será la variabilidad y dispersión de los valores individuales respecto a la media.
Relación con (género, edad, actividad física y consumo de comida chatarra)
Género (gender)
library(ggplot2)
grafico_Gender = ggplot(diabetes_clean,aes(x=Gender))+
geom_bar(stat="count", width=0.7, fill="skyblue")+
theme_minimal()
print(grafico_Gender)
Interpretación:
Se puede observar que en la base de datos de los pacientes con diabetes de la variable Gender(Género), el género masculino osea los hombres presentan mayor sintomas de diabetes.
Edad (age)
grafico_Age = ggplot(diabetes_clean,aes(x=Age))+
geom_bar(stat="count", width=0.7, fill="orange")+
theme_minimal()
print(grafico_Age)
Interpretación:
Se puede observar que en la base de datos de los pacientes con diabetes de la variable Age(Edad), sea femenino y masculino los pacientes de 40-49, 50-59, 60 años o mas y menos de 40 el mayor sintomas de diabetes se presenta a una edad, que se podría decir temprana es de menores de 40, por muchos factores.
Actividad Física (PhysicallyActive)
grafico_P = ggplot(diabetes_clean,aes(x=PhysicallyActive))+
geom_bar(stat="count", width=0.7, fill="green")+
theme_minimal()
print(grafico_P)
Interpretación:
Se puede observar que en la base de datos de los pacientes con diabetes de la variable Actividad Física (PhysicallyActive), sea femenino y masculino los pacientes que realizan una hora o más, nunca, más de media hora y menos de media hora, se puede ver que las personas que realizan una hora o más intentan controlar las diabetes.
JunkFood (Comida Chatarra)
grafico_C =ggplot(diabetes_clean,aes(x=JunkFood))+
geom_bar(stat="count", width=0.7, fill="pink")+
theme_minimal()
print(grafico_C)
Interpretación:
Se puede observar que en la base de datos de los pacientes con diabetes de la variable JunkFood (Comida Chatarra), las personas que comen una comida, a menudo, ocasionalmente, casi nunca y siempre, se puede observar que la mayor parte de ellos que ocasionalmente comen comida chatarra tienden a presentar mayor síntomas de diabetes.
Masa Corporal y Horas de Sueño (BMI and Sleep)
ggplot(diabetes_clean, aes(x = BMI, y = Sleep, col = factor(Sleep))) +
geom_point() +
labs(title = "Relación entre BMI y Horas de Sueño",
x = "Masa Corporal (BMI)",
y = "Horas de Sueño")
Interpretación
En el Eje x (BMI) se representa el Índice de Masa Corporal (BMI) donde cada punto en el gráfico está ubicado en el valor correspondiente de BMI. En el eje y (Sleep) representa el número de horas de sueño, donde cada punto en el gráfico está ubicado en el valor correspondiente de horas de sueño. Los puntos en el gráfico están coloreados según la variable Sleep el nivel del sueño. Donde se puede visualizar cómo se distribuyen los puntos en función de las categorías de horas de sueño se puede ver una mayor distribución o relación, entre las masa corporal de 20 a 30 en función de las horas de sueño que va desde las 6 horas hasta las 8 horas.
Los valores de los coeficientes nos indican la relación entre cada uno de los predictores y la variable dependiente.
El coeficiente independiente nos da un punto de referencia para evaluar el efecto de los predictores en la probabilidad de tener diabetes.
Masa Corporal y Horas de Sueño Profundo (BMI and Sound Sleep)
ggplot(diabetes_clean, aes(x = BMI, y = SoundSleep, col = factor(SoundSleep))) +
geom_point() +
labs(title = "Relación entre BMI y Horas de Sueño Profundo",
x = "Masa Corporal (BMI)",
y = "Horas de Sueño Profundo (SoundSleep")
Interpretación
En el Eje x (BMI) se representa el Índice de Masa Corporal (BMI) donde cada punto en el gráfico está ubicado en el valor correspondiente de BMI. En el eje y (SoundSleep) representa el número de horas de sueño profundo, donde cada punto en el gráfico está ubicado en el valor correspondiente de horas de sueño profundo. Los puntos en el gráfico están coloreados según la variable SoundSleep el nivel del sueño Profundo. Donde se puede visualizar cómo se distribuyen los puntos en función de las categorías de horas de sueño se puede ver una mayor distribución o relación, entre las masa corporal de 10 a 35 en función de las horas de sueño profundo que va desde las 5 horas hasta las 6 horas, ya que que el índice de masa corporal no estan elevada las horas de sueño a profundidad no estan alta se podría decir que en nivel de relación es normal.
Masa Corporal y Embarazos (BMI and Pregancies)
ggplot(diabetes_clean, aes(x = BMI, y = Pregancies, col = factor(Pregancies))) +
geom_point() +
labs(title = "Relación entre BMI y los Embarazos",
x = "Masa Corporal (BMI)",
y = "Embarazos")
Interpretación
En el Eje x (BMI) se representa el Índice de Masa Corporal (BMI) donde cada punto en el gráfico está ubicado en el valor correspondiente de BMI. En el eje y (Pregancies) representa el número de embarazos, donde cada punto en el gráfico está ubicado en el valor correspondiente de embarazos. Los puntos en el gráfico están coloreados según la variable Pregancies los embarazos. Se puede observar que o decir que cuando un persona (mujer), esta embarazada tiende a tener un BMI algo alto como se ve en la gráfica ya que esta elevada desde los 20 hasta los 40 pero como los valores aumnetan los embarazos se ven menos por que esta en el intervalo de 0.
Horas de Sueño y Embarazos (Sleep and Pregancies)
ggplot(diabetes_clean, aes(x = Sleep, y = Pregancies, col = factor(Pregancies))) +
geom_point() +
labs(title = "Relación entre Sleep y los Embarazos",
x = "Horas de sueño (Sleeo)",
y = "Embarazos (Pregancies")
Interpretación
Se puede observar que mientras hay embarazos con sintomas de diabetes que tanto pueden dormir y hay un intervalo de embarazos de 2 a 3 hay mayor profundidad de sueño ya que se pueden sentir cansados y por la tanto descansan más.
Variable de masa corporal (BMI) y diabetes (Pdiabetic)
ggplot(diabetes_clean, aes(x=Diabetic, y=BMI, color=Diabetic))+geom_boxplot()
Interpretación
En resumen, este gráfico de boxplot nos permite comparar las distribuciones de los valores de BMI para diferentes categorías de diabetes, y se identifica dos datos atípicos posibles en la variables Diabetic (no) y la media de las cajas esta dispareja o elevada en (yes).
Variable de Diabetes (Diabetic) y sueño (Sleep)
ggplot(diabetes_clean, aes(x=Diabetic, y=Sleep, color=Diabetic))+geom_boxplot()
Interpretación
En resumen, este gráfico de boxplot nos permite comparar las distribuciones de los valores de Diabetic para las horas de sueño y no se identifica datos atípicos posibles en la variables Diabetic y la media de las cajas estan iguales.
Variable de Diabetes (Diabetic) y sueño profundo (SoundSleep)
ggplot(diabetes_clean, aes(x=Diabetic, y=SoundSleep, color=Diabetic))+geom_boxplot()
Interpretación
En resumen, este gráfico de boxplot nos permite comparar las distribuciones de los valores de Diabetic para las horas de sueño profundo y no se identifica datos atípicos posibles en la variables Diabetic se observa que la media de las cajas estan igual.
Variable de Diabetes (Diabetic) y Embarazos (Pregancies)
ggplot(diabetes_clean, aes(x=Diabetic, y=Pregancies, color=Diabetic))+geom_boxplot()
Interpretación
En resumen, este gráfico de boxplot nos permite comparar las distribuciones de los valores de Diabetic para los embarazos y se identifica 3 datos atípicos posibles en la variables Diabetic (no), y la media de las cajas se encuentran en un punto muy bajo de 0.
Su funcion es resumir las probabilidades condicionadas a las coocurrencias de diferentes variables categoricas en una lista de registros de la misma longitud.
Relación de todas las variables de tipo factor
library(ggmosaic)
library(gridExtra)
library(ggplot2)
# VARIABLE DIABETIC Y GENDER
par(mfrow = c(4,3))
q1 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, Gender), fill = Diabetic)) + labs(x="Genero",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y FAMILY_DIABETIC
q2 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, Family_Diabetes), fill = Diabetic)) + labs(x="Historial familiar de diabetes",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y HIGHBP
q3 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, highBP), fill = Diabetic)) + labs(x="Diagnóstico de la hipertensión arterial",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y SMOKING
q4 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, Smoking), fill = Diabetic)) + labs(x="Historial familiar de diabetes",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y ALCOHOL
q5 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, Alcohol), fill = Diabetic)) + labs(x="Alcohol",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y REGULAR_MEDICINE
q6 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, RegularMedicine), fill = Diabetic)) + labs(x="Alcohol",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y PHYSICALLYACTIVE
q7 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, PhysicallyActive), fill = Diabetic)) + labs(x="Actividad física",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y JUNKFOOD
q8 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, JunkFood), fill = Diabetic)) + labs(x="Consumo de comida chatarra",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y STRESS
q9 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, Stress), fill = Diabetic)) + labs(x="Estres",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y BPLEVEL
q10 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, BPLevel), fill = Diabetic)) + labs(x="Nivel BPL",title = "Factores_Diabetes")
# VARIABLE DIABETIC Y URIATIONFREQ
q11 <- ggplot(data=diabetes_clean)+
geom_mosaic(aes(x=product(Diabetic, UriationFreq), fill = Diabetic)) + labs(x="Frecuencia urinaria",title = "Factores_Diabetes")
# UNIÓN DE LAS VARIABLES
grid.arrange(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11, nrow = 4 , ncol = 3)
## Warning: `unite_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `unite()` instead.
## ℹ The deprecated feature was likely used in the ggmosaic package.
## Please report the issue at <https://github.com/haleyjeppson/ggmosaic>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Interpretación
Se visualiza la asociación entre dos variables categóricas, donde cada rectángulo en el gráfico representa una combinación única de niveles de las dos variables, en este caso se presenta 11 rectángulos de diferentes combinaciones de dos variables.
El tamaño de cada rectángulo refleja la proporción de observaciones en los datos que cumplen con la combinación específica de las dos variables. Cuanto más grande sea el rectángulo, mayor será la proporción de casos en la categoría.
Los ejes x e y representan las dos variables categóricas que se esta analizando, se mira la relación entre la variable Diabetic y otra variable categórica específica (por ejemplo, Gender, Family_Diabetes, highBP, etc.).
Tambien se observa patrones o tendencias en el gráfico. Por ejemplo, hay combinaciones específicas que tienen una proporción más alta o más baja de casos diabéticos.
Se mira interacciones entre las dos variables, ya que hay algunas combinación de niveles de las dos variables que muestre una asociación fuerte y otras debiles, tambien hay algunas combinaciones que tienen un impacto particularmente fuerte en la proporción de casos diabéticos.
Una matriz de correlación se utiliza para investigar als dependencia entre multibles variables a la vez. El resultado de la tabla contiene los coeficientes de correlacion entre las diferentes variables que conforman el dataframe, nos ayuda a entender la relacion entre ellas. Con este grafico podemos seleccionar las variables relevantes y el eliminar aquellas que son redundantes, que tienen covariancia.
deb.cor <- cor(Diabetes1, method = "pearson")
round(deb.cor,2)
## BMI Sleep SoundSleep Pregancies
## BMI 1.00 -0.07 -0.29 -0.09
## Sleep -0.07 1.00 0.57 0.05
## SoundSleep -0.29 0.57 1.00 0.12
## Pregancies -0.09 0.05 0.12 1.00
Interpretación
La correlacion puede ir de 1 a -1. Cuando mas grande, mas positiva a 1 es, o mas pequeña, mas negativa a 1 es, mayor es la relacion entre las variables.
Si es positiva, es directamente propocional en el momento que es 1, o bien negativa, es inversamente proprcional.
Si es cercana a 0 nos indica que no hay correlacion entre esas dos variables.
Como ver la correlacion graficamente para identificar rapidamente las variables que nos interesan:
library(corrplot)
## corrplot 0.92 loaded
corrplot(deb.cor)
Presentación en cuadros
corrplot(deb.cor, method = "shade", shade.col = NA,
tl.col = "black", tl.srt = 45) # el parametro tl.srt nos permite dar una inclinacion de 45 grados a los titulares, method igual a shade nos proporciona las formas cuadradas, tl.col color negro.
Vamos a definir una paleta de colores mas suave para modificar el grafico:
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF",
"#77AADD","#4477AA"))
corrplot(deb.cor, method = "shade", shade.col = NA, tl.col = "black",
tl.srt = 45, col = col(200), addCoef.col = "black", addcolorlabel = "no",
order = "AOE", type = "lower", diag = F, addshade = "all") # col de colores nos expandira hasta 200 colores con las gamas usadas
## Warning in text.default(pos.xlabel[, 1], pos.xlabel[, 2], newcolnames, srt =
## tl.srt, : "addcolorlabel" is not a graphical parameter
## Warning in text.default(pos.ylabel[, 1], pos.ylabel[, 2], newrownames, col =
## tl.col, : "addcolorlabel" is not a graphical parameter
## Warning in title(title, ...): "addcolorlabel" is not a graphical parameter
corrplot(deb.cor, method = "circle", shade.col = NA, tl.col = "black",
tl.srt = 45, col = col(200), addCoef.col = "black", addcolorlabel = "no",
order = "AOE", type = "upper", diag = F, addshade = "all")
## Warning in text.default(pos.xlabel[, 1], pos.xlabel[, 2], newcolnames, srt =
## tl.srt, : "addcolorlabel" is not a graphical parameter
## Warning in text.default(pos.ylabel[, 1], pos.ylabel[, 2], newrownames, col =
## tl.col, : "addcolorlabel" is not a graphical parameter
## Warning in title(title, ...): "addcolorlabel" is not a graphical parameter
Interpretación
Como se muestra en las gráfica las correlaciones son muy bajas entres las variables, por lo tanto no hay relación en esas variables.
library(ggplot2)
library(ggmosaic)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggrepel)
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Attaching package: 'GGally'
## The following object is masked from 'package:ggmosaic':
##
## happy
# Imprimir la estructura del conjunto de datos
str(diabetes_clean)
## 'data.frame': 906 obs. of 18 variables:
## $ Age : Factor w/ 4 levels "40-49","50-59",..: 4 4 3 4 3 1 3 1 4 2 ...
## $ Gender : Factor w/ 2 levels "Female","Male": 2 2 1 2 2 2 2 1 2 2 ...
## $ Family_Diabetes : Factor w/ 2 levels "no","yes": 2 2 2 2 1 1 2 1 1 2 ...
## $ highBP : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ PhysicallyActive: Factor w/ 4 levels "one hr or more",..: 4 4 3 2 2 1 2 3 1 4 ...
## $ BMI : int 22 22 26 19 23 26 26 23 22 38 ...
## $ Smoking : Factor w/ 2 levels "no","yes": 1 1 1 2 1 2 1 1 1 1 ...
## $ Alcohol : Factor w/ 2 levels "no","yes": 1 1 1 2 2 1 2 1 1 2 ...
## $ Sleep : int 8 8 7 7 7 8 8 7 6 8 ...
## $ SoundSleep : int 6 6 7 5 6 7 3 7 2 6 ...
## $ RegularMedicine : Factor w/ 2 levels "no","yes": 1 1 1 1 2 1 2 1 1 2 ...
## $ JunkFood : Factor w/ 4 levels "often","occasionally",..: 3 3 2 2 2 2 2 3 3 2 ...
## $ Stress : Factor w/ 4 levels "not at all","sometimes",..: 2 2 3 2 4 3 3 4 2 4 ...
## $ BPLevel : Factor w/ 3 levels "normal","high",..: 3 3 3 3 1 3 3 3 3 3 ...
## $ Pregancies : int 0 0 3 0 0 0 0 1 0 0 ...
## $ Pdiabetes : Factor w/ 2 levels "0","yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ UriationFreq : Factor w/ 2 levels "not much","quite often": 1 1 1 1 2 1 2 1 2 1 ...
## $ Diabetic : Factor w/ 2 levels "no","yes": 1 1 1 1 2 1 2 1 1 2 ...
Daros Númericos
# Seleccionar columnas numéricas
numeric_columns <- diabetes_clean[, sapply(diabetes_clean, is.numeric)]
Gráfica
# Crear la matriz de gráficos
p <- ggpairs(numeric_columns) + theme_bw()
for (i in 1:p$nrow) {
for(j in 1:p$ncol){
p[i, j] <- p[i, j]+
scale_fill_manual(values=c("#00AFBB", "#E7B800")) +
scale_color_manual(values=c("#00AFBB", "#E7B800"))
}
}
p
# Crear la matriz de gráficos con paleta de colores
p <- ggpairs(numeric_columns, aes(color = diabetes_clean$BPLevel)) +
theme_bw() +
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
# Imprimir la matriz de gráficos
print(p)
Interpretación
A partir de la gráfica de mosaico se muestra las correlaciones entre las variables del conjunto de datos diabetes, se puede concluir lo siguiente:
Hay una correlación negativa significativa entre el sueño y BMI. El valor de la correlación es -0.073.
Hay una correlación negativa el sueño profundo y BMI. El valor de la correlación es -0.291.
Existe una correlación negativa significativa entre el índice de masa corporal (BMI) y los embarazos. El valor de la correlación es -0.682.
Hay una correlación moderada entre el sueño y sueño profundo. El valor de la correlación es 0.575.
No hay una correlación significativa entre las horas de sueño y el embarazo. El valor de la correlación es 0.054.
Hay una correlación positiva entre las horas de sueño profundo y embarazos. El valor de la correlación es 0.117.
En resumen, las variables sueño, sueño profundo, BMI y número de embarazos, parecen estar relacionadas de manera moderada a alta con la enfermedad de la diabetes.
Las variables ficticias, también conocidas como variables dummy, son variables binarias que se utilizan para representar categorías o niveles de una variable categórica en un modelo de regresión. Estas variables toman el valor de 1 si la observación pertenece a una categoría específica y 0 en caso contrario. Se utilizan para capturar el efecto de las diferentes categorías en el modelo de manera individualizada.
Dividiremos el conjunto completo de individuos en dos partes, un para entrenar el modelo, que contiene el 80% de los individuos y otra para validarlo que contiene el resto. Esto es así porque si valoramos el modelo con las misma observaciones que usamos para ajustarlo, la bondad del ajuste quedará sobrevalorada.
Antes de ajustar cualquier modelo, es conveniente escalar las variables numéricas y tenemos que reacondicionar las variables categóricas convirtiéndolas en variables ficticias y usando la primera o la última categoría como comparación.
Escalamiento de númericas
numeric_columns <- sapply(diabetes_clean, is.numeric)
diabetes_clean[, numeric_columns] <- scale(diabetes_clean[, numeric_columns])
head(diabetes_clean)
## Age Gender Family_Diabetes highBP PhysicallyActive
## 20 less than 40 Male yes no \t\nless than half an hr
## 258 less than 40 Male yes no \t\nless than half an hr
## 511 60 or older Female yes no more than half an hr
## 907 less than 40 Male yes no none
## 582 60 or older Male no no none
## 726 40-49 Male no no one hr or more
## BMI Smoking Alcohol Sleep SoundSleep RegularMedicine
## 20 -0.6487242 no no 0.78534240 0.2119477 no
## 258 -0.6487242 no no 0.78534240 0.2119477 no
## 511 0.1294871 no no 0.01861803 0.7543900 no
## 907 -1.2323826 yes yes 0.01861803 -0.3304947 no
## 582 -0.4541713 no yes 0.01861803 0.2119477 yes
## 726 0.1294871 yes no 0.78534240 0.7543900 no
## JunkFood Stress BPLevel Pregancies Pdiabetes UriationFreq Diabetic
## 20 very often sometimes low -0.4201082 0 not much no
## 258 very often sometimes low -0.4201082 0 not much no
## 511 occasionally very often low 2.8800479 0 not much no
## 907 occasionally sometimes low -0.4201082 0 not much no
## 582 occasionally always normal -0.4201082 0 quite often yes
## 726 occasionally very often low -0.4201082 0 not much no
x=model.matrix(Diabetic~., data=diabetes_clean)
head(x)
## (Intercept) Age50-59 Age60 or older Ageless than 40 GenderMale
## 20 1 0 0 1 1
## 258 1 0 0 1 1
## 511 1 0 1 0 0
## 907 1 0 0 1 1
## 582 1 0 1 0 1
## 726 1 0 0 0 1
## Family_Diabetesyes highBPyes PhysicallyActivenone
## 20 1 0 0
## 258 1 0 0
## 511 1 0 0
## 907 1 0 1
## 582 0 0 1
## 726 0 0 0
## PhysicallyActivemore than half an hr
## 20 0
## 258 0
## 511 1
## 907 0
## 582 0
## 726 0
## PhysicallyActive\t\nless than half an hr BMI Smokingyes Alcoholyes
## 20 1 -0.6487242 0 0
## 258 1 -0.6487242 0 0
## 511 0 0.1294871 0 0
## 907 0 -1.2323826 1 1
## 582 0 -0.4541713 0 1
## 726 0 0.1294871 1 0
## Sleep SoundSleep RegularMedicineyes JunkFoodoccasionally
## 20 0.78534240 0.2119477 0 0
## 258 0.78534240 0.2119477 0 0
## 511 0.01861803 0.7543900 0 1
## 907 0.01861803 -0.3304947 0 1
## 582 0.01861803 0.2119477 1 1
## 726 0.78534240 0.7543900 0 1
## JunkFoodvery often JunkFoodalways Stresssometimes Stressvery often
## 20 1 0 1 0
## 258 1 0 1 0
## 511 0 0 0 1
## 907 0 0 1 0
## 582 0 0 0 0
## 726 0 0 0 1
## Stressalways BPLevelhigh BPLevellow Pregancies Pdiabetesyes
## 20 0 0 1 -0.4201082 0
## 258 0 0 1 -0.4201082 0
## 511 0 0 1 2.8800479 0
## 907 0 0 1 -0.4201082 0
## 582 1 0 0 -0.4201082 0
## 726 0 0 1 -0.4201082 0
## UriationFreqquite often
## 20 0
## 258 0
## 511 0
## 907 0
## 582 1
## 726 0
Interpretación
Observará que las variables numéricas reescaladas contienen los mismos valores iniciales. Cada una de las variables nominales ha sido convertida en variables binarias. El número de variables binarias es siempre el número de categorías de la variable nominal. Por ejemplo, la variable Gender (con dos categorías) ha sido convertida en GenderMale que es una variable numérica que vale 1 cuando el sexo es hombre y 0 cuando es mujer. El resto de variables también son convertida a Binarias con el número de categorias que cada una almacena. Los parámetros correspondientes a las categorías retenidas comparan a éstas con la categoría eliminada.
Dividiremos el conjunto completo de individuos en dos partes, un para entrenar el modelo, que contiene el 80% de los individuos a Binarias con el número de categorias que cada una almacena. Los parámetros correspondientes a las categorías retenidas comparan a éstas con la categoría eliminada.
Dividiremos el conjunto completo de individuos en dos partes, un para entrenar el modelo, que contiene el 80% de los individuos y otra para validarlo que contiene el resto. Esto es asi porque si valoramos el modelo con las misma observaciones que usamos para ajustarlo, la bondad del ajuste quedará sobrevalorada.
Por ejemplo, vamos ausar el 70% de los individuos para ajustar el modelo y el 30% para probarlo. Para que siempre obtengamos los mismos resultados colocamos la semilla de los números pseudo aleatorios con la fecha de nacimiento sin separaciones (diamesaño).
tr=round(nrow(diabetes_clean)*0.7)
set.seed(0605490028)
muestra=sample.int(nrow(diabetes_clean), tr)
Train.diabet=diabetes_clean[muestra,]
val.diabet=diabetes_clean[-muestra,]
Ahora disponemos de un conjunto de entrenamiento Train.diabet y un conjunto d evalidación Val.diabet”.
Regresión Logística
Trataremos de modelar la probabilidad de DIABETES positiva en función del resto de las variables
\[{p_i}=P\left( {Y = 1/x = {x_i}} \right) = {{{e^{{\beta _0} + {\beta_1}{x_{i1}} + \ldots + {\beta_p}{x_{ip}}}}} \over {1 + {e^{{\beta _0} + {\beta _1} {x_{i1}} + \ldots + {\beta _p} {x_{ip}}}}}}\]
Vamos a ajustar primero el modelo desde el punto de vista estadistica para interpretar los parámetros
gfit1 <- glm(Diabetic~., data=diabetes_clean, family=binomial)
summary(gfit1)
##
## Call:
## glm(formula = Diabetic ~ ., family = binomial, data = diabetes_clean)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.77088 1.08160 -2.562 0.010412
## Age50-59 0.41120 0.36291 1.133 0.257177
## Age60 or older 1.62408 0.41602 3.904 9.47e-05
## Ageless than 40 -1.68936 0.43244 -3.907 9.36e-05
## GenderMale 0.48706 0.37089 1.313 0.189105
## Family_Diabetesyes 1.00920 0.25459 3.964 7.37e-05
## highBPyes -0.85083 0.38970 -2.183 0.029013
## PhysicallyActivenone 0.55514 0.36247 1.532 0.125639
## PhysicallyActivemore than half an hr 0.85532 0.38718 2.209 0.027165
## PhysicallyActive\t\nless than half an hr 1.68317 0.37751 4.459 8.25e-06
## BMI 0.17735 0.12090 1.467 0.142372
## Smokingyes 1.15528 0.50424 2.291 0.021955
## Alcoholyes 0.09689 0.36237 0.267 0.789187
## Sleep 0.05861 0.15561 0.377 0.706443
## SoundSleep 0.39536 0.18442 2.144 0.032045
## RegularMedicineyes 2.97844 0.30926 9.631 < 2e-16
## JunkFoodoccasionally 0.08808 0.84774 0.104 0.917245
## JunkFoodvery often 0.25582 0.83663 0.306 0.759775
## JunkFoodalways 0.04005 0.97557 0.041 0.967253
## Stresssometimes -0.03269 0.51891 -0.063 0.949776
## Stressvery often -0.53932 0.39565 -1.363 0.172845
## Stressalways -0.32951 0.45855 -0.719 0.472393
## BPLevelhigh -15.08888 758.75534 -0.020 0.984134
## BPLevellow -1.47618 0.39038 -3.781 0.000156
## Pregancies 0.32210 0.14874 2.165 0.030350
## Pdiabetesyes 4.01652 0.88504 4.538 5.67e-06
## UriationFreqquite often 0.43749 0.31153 1.404 0.160219
##
## (Intercept) *
## Age50-59
## Age60 or older ***
## Ageless than 40 ***
## GenderMale
## Family_Diabetesyes ***
## highBPyes *
## PhysicallyActivenone
## PhysicallyActivemore than half an hr *
## PhysicallyActive\t\nless than half an hr ***
## BMI
## Smokingyes *
## Alcoholyes
## Sleep
## SoundSleep *
## RegularMedicineyes ***
## JunkFoodoccasionally
## JunkFoodvery often
## JunkFoodalways
## Stresssometimes
## Stressvery often
## Stressalways
## BPLevelhigh
## BPLevellow ***
## Pregancies *
## Pdiabetesyes ***
## UriationFreqquite often
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1091.56 on 905 degrees of freedom
## Residual deviance: 491.38 on 879 degrees of freedom
## AIC: 545.38
##
## Number of Fisher Scoring iterations: 16
Interpretación
Este es un resumen de un modelo de regresión logística ajustado a los datos utilizando la función glm() en R.
Call:
Muestra la llamada que se utilizó para ajustar el modelo.
Coefficients:
La tabla de coeficientes muestra la estimación de los efectos de cada variable independiente en la probabilidad de ser Diabético (variable dependiente). Estos coeficientes se encuentran en la escala logarítmica de odds.
Estimate:
Es la estimación del coeficiente para cada predictor.
Std. Error:
Representa el error estándar de la estimación de cada coeficiente. Mide la variabilidad de la estimación.
z value:
Es el valor z, que indica cuántas desviaciones estándar está el coeficiente estimado del valor nulo. Valores z más grandes (en valor absoluto) sugieren que el predictor es más relevante.
Pr(>|z|):
Es el valor p, que indica la probabilidad de observar el valor z si la hipótesis nula (el coeficiente es igual a cero) es cierta. Valores p pequeños sugieren que el predictor es significativo.
Interpretación de los valores
La salida de un modelo de regresión logística, donde se presentan los coeficientes estimados para cada una de las variables predictoras:
Intercept (Intercepto): -2.77088. Este es el término constante en la regresión logística cuando todas las demás variables son cero.
Age50-59: 0.41120. Aumento en la probabilidad logarítmica de la variable de respuesta para la categoría de edad entre 50 y 59 años, en comparación con la categoría de referencia que es diabetes.
Age60 or older: 1.62408. Aumento en la probabilidad logarítmica para la categoría de edad de 60 años o más, en comparación con la categoría de referencia que es diabetes.
Ageless than 40: -1.68936. Disminución en la probabilidad logarítmica para la categoría de edad menor de 40 años, en comparación con la categoría de referencia que es diabetes.
GenderMale: 0.48706. Aumento en la probabilidad logarítmica para la categoría de género masculino, en comparación con la categoría de referencia que es diabetes.
Family_Diabetesyes: 1.00920. Aumento en la probabilidad logarítmica para aquellos con antecedentes familiares de diabetes, en comparación con la categoría de referencia que es diabetes.
highBPyes: -0.85083. Disminución en la probabilidad logarítmica para aquellos con presión arterial alta, en comparación con la categoría de referencia que es diabetes.
PhysicallyActivenone: 0.55514. Aumento en la probabilidad logarítmica para aquellos que no son físicamente activos, en comparación con la categoría de referencia que es diabetes.
PhysicallyActivemore than half an hr: 0.85532. Aumento en la probabilidad logarítmica para aquellos que son físicamente activos durante más de media hora al día, en comparación con la categoría de referencia que es diabetes.
PhysicallyActiveless than half an hr: 1.68317. Aumento en la probabilidad logarítmica para aquellos que son físicamente activos durante menos de media hora al día, en comparación con la categoría de referencia que es diabetes.
BMI: 0.17735. Aumento en la probabilidad logarítmica por unidad de cambio en el índice de masa corporal.
Smokingyes: 1.15528. Aumento en la probabilidad logarítmica para aquellos que fuman, en comparación con la categoría de no fumadores.
Alcoholyes: 0.09689. Aumento en la probabilidad logarítmica para aquellos que consumen alcohol, en comparación con la categoría de no consumidores.
Sleep: 0.05861. Aumento en la probabilidad logarítmica por unidad de cambio en la variable de sueño.
SoundSleep: 0.39536. Aumento en la probabilidad logarítmica para aquellos que informan tener un sueño saludable, en comparación con la categoría de referencia de sueño profundo.
RegularMedicineyes: 2.97844. Aumento en la probabilidad logarítmica para aquellos que toman medicamentos regularmente, en comparación con la categoría de no usuarios.
JunkFoodoccasionally, JunkFoodvery often, JunkFoodalways: Estos coeficientes están asociados con la frecuencia de consumo de comida chatarra. Sin embargo, los valores son bajos pero positivos y se puede decir que no son estadísticamente significativos.
Stresssometimes, Stressvery often, Stressalways: Estos coeficientes están asociados con la frecuencia de experimentar estrés. Nuevamente, los valores son bajos negativos y no pueden ser estadísticamente significativos.
BPLevelhigh, BPLevellow: Estos coeficientes están asociados con los niveles de presión arterial. “BPLevellow” tiene un efecto negativo significativo, lo que indica una disminución en la probabilidad logarítmica para niveles bajos de presión arterial.
Pregancies: 0.32210. Aumento en la probabilidad logarítmica por unidad de cambio en la variable de embarazos.
Pdiabetesyes: 4.01652. Aumento en la probabilidad logarítmica para aquellos con antecedentes de diabetes durante el embarazo.
UriationFreqquite often: 0.43749. Aumento en la probabilidad logarítmica para aquellos que experimentan frecuencia urinaria bastante a menudo.
Estos coeficientes indican cómo cada variable afecta la probabilidad logarítmica de la variable de respuesta en comparación con las categorías de referencia o por unidad de cambio. Los valores p (Pr(>|z|)) indican la significancia estadística de cada coeficiente. Valores bajos (por ejemplo, < 0.05) sugieren que el efecto es probablemente real y no debido al azar.
Interpretación 2:
Las estrellas y los códigos de significancia proporcionan información sobre la significancia estadística de cada variable en el modelo:
(Intercept): El intercepto es significativamente diferente de cero (***), lo que significa que hay evidencia de que el modelo no se ajusta a un escenario donde todas las variables predictoras son cero.
Age50-59, Age60 or older, Ageless than 40: Todas estas categorías de edad son significativas (***), lo que sugiere que hay diferencias significativas en la probabilidad logarítmica entre estas categorías y la categoría de referencia que es edad y diabetes.
GenderMale: No es significativo (sin estrellas), lo que sugiere que no hay evidencia suficiente para decir que el género masculino tiene un efecto significativo en la variable de respuesta en comparación con la categoría de referencia diabetes.
Family_Diabetesyes, highBPyes, PhysicallyActivemore than half an hr, PhysicallyActiveless than half an hr, Smokingyes, SoundSleep, RegularMedicineyes, BPLevellow, Pregancies, Pdiabetesyes: Todas estas variables son significativas, con diferentes niveles de significancia indicados por el número de estrellas (*** . ** . *). Cuantas más estrellas haya, más significativa es la variable.
JunkFoodoccasionally, JunkFoodvery often, JunkFoodalways, PhysicallyActivenone, Alcoholyes, Sleep, BMI, Stresssometimes, Stressvery often, Stressalways, BPLevelhigh, UriationFreqquite often: Estas variables no son significativas según el código de significancia proporcionado.
Adicionalmente se presenta estadísticas del modelo, como la deviance nula, la deviance residual y el criterio de información de Akaike (AIC).
Estos valores pueden ser útiles para evaluar la bondad de ajuste del modelo. Además, el número de iteraciones de Fisher Scoring indica cuántas veces se ha iterado para encontrar los coeficientes del modelo.
Comunicarse con los demás - al vivir con una enfermedad crónica: MedlinePlus Enciclopedia Médica. (s. f.). https://medlineplus.gov/spanish/ency/patientinstructions/000602.htm