Nuestra Fotografía

Nuestra Fotografía

Somos dos estudiantes de Biotecnología, que ademas compartimos una estrecha amistad, además de muchos gustos en común, estamos proximas a graduarnos y cumplir la meta de ser ingenieras, ha sido un camino largo y complicado, pero anhelamos cumplirlo lo antes posibles.

La Felicidad radica ante todo en la salud.

“La Felicidad radica ante todo en la salud.”

La salud es fundamental para la vida, una manera de saber el estado de salud de una persona o tener una idea consiste en análisis simples como: IMC (Indice de masa corporal), TAD (Tension Areterial Diastolica),colesterol, edad y genero en base a estas se sabe la condicion de una persona o un grupo de personas, que permiten al ministerio de salud tomar medidas para mejorar el estado de salud de una poblacion. IMC, indispensables para saber ¿Como estás?

library(readr)
library(ggplot2)
library(corrplot) 
library(mlbench) 
library(Amelia) 
library(plotly) 
library(reshape2) 
library(caret)  
library(caTools) 
library(dplyr)
library(readxl)
pacientes <- read_excel("pacientes.xlsx", col_types = c("text", "numeric", "numeric", 
    "numeric", "numeric", "text"), skip = 2)
pacientes <-as.data.frame(cbind(pacientes))
str(pacientes)# se observa la determinación que tiene cada columna
## 'data.frame':    70 obs. of  6 variables:
##  $ PACIENTE  : chr  "1" "2" "3" "4" ...
##  $ EDAD      : num  42 64 47 56 54 48 57 52 67 46 ...
##  $ COLESTEROL: num  292 235 200 200 300 215 216 254 310 237 ...
##  $ IMC       : num  31.6 30.8 25.6 26.2 32 ...
##  $ TAD       : num  97 90 80 75 100 ...
##  $ GENERO    : chr  "Hombre" "Hombre" "Hombre" "Mujer" ...

Se cambia la variable genero de caracter a factor ya que esta solo tiene dos valores, “Hombre” y “Mujer”

pacientes$PACIENTE<- as.character(pacientes$PACIENTE)
pacientes$GENERO<- as.factor(pacientes$GENERO)
str(pacientes)
## 'data.frame':    70 obs. of  6 variables:
##  $ PACIENTE  : chr  "1" "2" "3" "4" ...
##  $ EDAD      : num  42 64 47 56 54 48 57 52 67 46 ...
##  $ COLESTEROL: num  292 235 200 200 300 215 216 254 310 237 ...
##  $ IMC       : num  31.6 30.8 25.6 26.2 32 ...
##  $ TAD       : num  97 90 80 75 100 ...
##  $ GENERO    : Factor w/ 2 levels "Hombre","Mujer": 1 1 1 2 1 1 2 1 1 2 ...

Análisis de datos

colnames(pacientes)# muestra los nombres de las columnas
## [1] "PACIENTE"   "EDAD"       "COLESTEROL" "IMC"        "TAD"       
## [6] "GENERO"
rownames(pacientes) # muestra el numero de filas 
##  [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12" "13" "14"
## [15] "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28"
## [29] "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42"
## [43] "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56"
## [57] "57" "58" "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70"
summary(pacientes) #muestra un resumen de la base de datos
##    PACIENTE              EDAD         COLESTEROL         IMC       
##  Length:70          Min.   :42.00   Min.   :175.0   Min.   : 0.00  
##  Class :character   1st Qu.:49.00   1st Qu.:214.2   1st Qu.:21.90  
##  Mode  :character   Median :56.00   Median :230.0   Median :25.34  
##                     Mean   :55.24   Mean   :236.8   Mean   :24.74  
##                     3rd Qu.:60.00   3rd Qu.:254.0   3rd Qu.:27.76  
##                     Max.   :68.00   Max.   :315.0   Max.   :33.91  
##       TAD           GENERO  
##  Min.   : 65.0   Hombre:41  
##  1st Qu.: 73.0   Mujer :29  
##  Median : 80.0              
##  Mean   : 81.5              
##  3rd Qu.: 90.0              
##  Max.   :105.0

Analisis ANOVA

Exploramos los datos de la muestra:

boxplot(pacientes$EDAD ~ pacientes$GENERO, col = c("pink", "blue"), ylab = "EDAD de los pacientes")

En la gráfica se observa que la media de la edad de los pacientes que corresponde a las MUJERES es mayor en comparación a la media entre los hombres. No existe una diferencia entre los cuartiles tanto de hombres como de mujeres.

tapply(pacientes$EDAD, pacientes$GENERO, mean)
##   Hombre    Mujer 
## 54.78049 55.89655

Como se muestra en los datos existe una variación de la media muy pequeña entre hombre y mujer.

boxplot(pacientes$COLESTEROL ~ pacientes$GENERO, col = c("pink", "blue"), ylab = "Colesterol de los pacientes")

En la gráfica se observa una variación en los cuartiles de “Hombres”, el segundo cuartil es mas pequeño en relacion a los otros, y en la “Mujer” existe una dispersión de 3 datos y notandose que no existe ninguna variación entre los cuartiles.

boxplot(pacientes$IMC ~ pacientes$GENERO, col = c("pink", "blue"), ylab = "Indice de masa corporal de los pacientes")

En los hombres no se muestra una variación entre los cuartiles, mientras que en la mujer existe una variacion en el tercer cuartil que es mas pequeño en relacion a los otros cuartiles.

boxplot(pacientes$TAD ~ pacientes$GENERO, col = c("pink", "blue"), ylab = "TAD de los pacientes")

En la gráfica tanto en hombre como mujeres existe una variacion en el cuartil dos tiene un menor tamaño en comparación a los demas cuartiles

barplot(prop.table(table(pacientes$GENERO, pacientes$EDAD)),col=c("orange","blue"),
        ylim=c(0,0.1),main="Variable Discreta: Genero y Edad",
        ylab ="Frecuencias Relativas",las=1)

*Calcule la correlación entre la variable dependiente y cada una de las variables explicativas (numéricas).

fm = aov(lm(pacientes$EDAD ~ pacientes$GENERO) )

Pedimos un resumen de la tabla del ANOVA

summary(fm)
##                  Df Sum Sq Mean Sq F value Pr(>F)
## pacientes$GENERO  1     21   21.16   0.417  0.521
## Residuals        68   3450   50.73

El valor p es 0.521

Valor Crítico de F es 0.417

qf(0.05, 2-1, 70-2, lower.tail = F)
## [1] 3.981896

Valores del estadístico > 3.981896 estarán incluidos en la región de rechazo. En nuetro caso 50.73 es mucho mayor que el valor crítico obtenido.

media <- mean(pacientes$EDAD [pacientes$GENERO =="HOMBRE"]) 
valor_t <- pt(0.05/2, 70-2)  #depende del grado de confianza que tengamos 
sp <- sqrt(50.73)  #desviación típica de la varianza muestral com?n
ee  <- valor_t * (sp/ sqrt(35))  #error de estimacion, nos ayuda a sacar el intervalo de confianza 
media
## [1] NaN

límite superior del intervalo de confianza de la media de pacientes$EDAD por genero

media + ee 
## [1] NaN

límite inferior del intervalo de confianza de la pacientes$EDAD por el genero

media - ee 
## [1] NaN
intervals = TukeyHSD(fm)
intervals
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = lm(pacientes$EDAD ~ pacientes$GENERO))
## 
## $`pacientes$GENERO`
##                  diff       lwr      upr     p adj
## Mujer-Hombre 1.116064 -2.332515 4.564643 0.5205863
plot(intervals)

En la gráfica al estar presente el 0 en el limite inferior como en el superior NO son estadisticamente significativas

Validación del modelo ANOVA

A partir de los residuos del modelo comprobaremos si el modelo ANOVA es adecuado. Los supuestos que se deben cumplir son tres: independencia, homocedasticidad y normalidad.

Independencia

plot(fm$residuals)

La dispersion de los datos NO lleva una una secuencia como se observa en la gráfica. Por lo que existe una menor correlacion entre los datos residuales.

Normalidad

Los gráficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos:

summary(fm$residuals)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -12.7805  -5.8675   0.6034   0.0000   4.8825  13.2195

para que los residuos sean normales aplicamos gráficos descriptivos

boxplot(fm$residuals,col=c("blue"))

Los cuartiles son del mismo ancho por lo que hay una misma variabilidad, sin embargo existe una marcada diferencia entre el tercero y cuarto quartil que nos indica una diferente variabilidad, se muestra un dato atípico.

hist(fm$residuals,col=c("pink"))

La gráfica les histograma muestra no una similitud con una campana de Gauss, por lo que los datos no siguen una distribución normal.

qqnorm(fm$residuals) 
qqline(fm$residuals)

La gráfica muestra una dispersion de datos con una duistribucion normal ya que no se mantienen tan alejadas de la linea recta.

shapiro.test(fm$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  fm$residuals
## W = 0.96603, p-value = 0.05433

En base a la prueba de shapiro se puede argumentar que existe presencia de Normalidad.

Homocedasticidad

Los graficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos: gráfico de caja a los residuales da, el dato real y el dato ajustadose lo ve como la varianza a partir de los residuos la carianza de los grupos se la obtiene atravess de los residuos

boxplot(fm$residuals~pacientes$GENERO, col = c("white","green"))  

desviaciones <- tapply(fm$residuals, pacientes$GENERO, sd)

Comparando la desviación máxima con la mínima obtenemos una orientación sobre la falta de homocedasticidad (>2 aproximadamente)

max(desviaciones) / min(desviaciones)    
## [1] 1.290679

El valor es 1.20679 por lo que indica presencia de homocedasticidad.

El test de Bartlett indica que no tenemos evidencia suficiente para rechazar la hipótesis nula (las varianzas son iguales), la hipótesis nula en esta son iguales.

bartlett.test(fm$residuals ~ pacientes$GENERO)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  fm$residuals by pacientes$GENERO
## Bartlett's K-squared = 2.0301, df = 1, p-value = 0.1542

CONCLUSION

Dado que el p-value es superior a 0.05 no hay evidencias suficientes para considerar que al menos dos medias son distintas. La representación gráfica de los residuos no muestra falta de homocedasticidad y en el qqplot los residuos se distribuyen muy cercanos a la linea de la normal.

boxplot(pacientes$COLESTEROL ~ pacientes$GENERO, col = c("purple", "orange"), ylab = "Colesterol")

La media entre “MUJER” y “HOMBRE” se encuentra igual, existe una variación en el cuartil 2 en el hombre ya que tiene un tamaño reducido en cambio en la mujer existe una variación en el cuartil 4 que es mucho más grande en relación a los otros y ademas existe la dispersion de 2 datos.

tapply(pacientes$COLESTEROL, pacientes$GENERO, mean)
##   Hombre    Mujer 
## 241.0000 230.7931

Como se muestra en los datos existe una variación de la media pequeña entre hombre y mujer

fm = aov( lm(pacientes$COLESTEROL ~ pacientes$GENERO) )

Pedimos un resumen de la tabla del ANOVA

summary(fm)
##                  Df Sum Sq Mean Sq F value Pr(>F)
## pacientes$GENERO  1   1770    1770   1.488  0.227
## Residuals        68  80857    1189

Valor Crítico de F es ]1.488 el valor p es 0.227

qf(0.05, 2-1, 70-2, lower.tail = F)
## [1] 3.981896

Valores del estadítico > 3.981896 estarán incluidos en la region de rechazo. En nuetro caso 1189 es mucho mayor que el valor crítico obtenido.

media <- mean(pacientes$EDAD [pacientes$GENERO =="HOMBRE"]) 
valor_t <- pt(0.05/2, 70 - 2)  #depende del grado de confianza que tengamos 
sp <- sqrt(1189)  #desviación tipica de la varianza muestral comun 
ee  <- valor_t * (sp/ sqrt(35))  #error de estimación, nos ayuda a sacar el intervalo de confianza 
media
## [1] NaN

límite superior del intervalo de confianza de la media

media + ee 
## [1] NaN

límite inferior del intervalo de confianza de la media

media - ee 
## [1] NaN
intervals = TukeyHSD(fm)
intervals
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = lm(pacientes$COLESTEROL ~ pacientes$GENERO))
## 
## $`pacientes$GENERO`
##                  diff       lwr      upr     p adj
## Mujer-Hombre -10.2069 -26.90268 6.488886 0.2267087
plot(intervals)

La media al estar presente el cero en el intervalo las medias son semejantes

Validación del modelo ANOVA

A partir de los residuos del modelo comprobaremos si el modelo ANOVA es adecuado. Los supuestos que se deben cumplir son tres: independencia, homocedasticidad y normalidad.

Independencia

plot(fm$residuals)

Existe una dispersion de datos por lo que indica que no existe correlacion entre los residuos.

Normalidad

Los gráficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos:

summary(fm$residuals)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -66.000 -24.345  -7.793   0.000  16.207  84.207

para que los residuos sean normales aplicamos graficos descriptivos

boxplot(fm$residuals)

Existe la dispersion de un dato y una pequeña variabilidad entre los cuartiles por lo que existe una diferencia entre la variabilidad.

hist(fm$residuals,col=c("yellow"))

La grafica se asemeja a una campana de Gauss, aun cuando 1 de las columnas no siga la distribucion normal.

qqnorm(fm$residuals) 
qqline(fm$residuals)

Existe una dispersion de datos con una distribucion normal la dispersion se mantiene en linea con la recta.

shapiro.test(fm$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  fm$residuals
## W = 0.9565, p-value = 0.01611

En base a la prueba de shapiro se confirma la presencia de normalidad.

Homocedasticidad

Los gráficos y descriptivos nos informan si se verifica la igualdad de varianzas en los grupos descritos: gráfico de caja a los residuales da, el dato real y el dato ajustado se lo ve como la varianza a partir de los residuosla carianza de los grupos se la obtiene atraves de los residuos

boxplot(fm$residuals~pacientes$GENERO, col = c("yellow", "blue")) 

desviaciones <- tapply(fm$residuals, pacientes$GENERO, sd)

Comparando la desviación máxima con la mínima obtenemos una orientación sobre la falta de homocedasticidad (>2 aproximadamente)

max(desviaciones) / min(desviaciones)    
## [1] 1.362483

Con el valor obtenido se muestra la presencia de homocedasticidad

El test de Bartlett indica que no tenemos evidencia suficiente para rechazar la hipótesis nula (las varianzas son iguales), la hpotesis nula en esta son iguales

bartlett.test(fm$residuals ~ pacientes$GENERO)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  fm$residuals by pacientes$GENERO
## Bartlett's K-squared = 2.9511, df = 1, p-value = 0.08582

Conclusion

Dado que el p-value es superior a 0.05 no hay evidencias suficientes para considerar que al menos dos medias son distintas. La representación gráfica de los residuos no muestra falta de homocedasticidad y en el qqplot los residuos se distribuyen muy cercanos a la linea de la normal.

boxplot(pacientes$IMC ~ pacientes$GENERO, col = c("green", "grey"), ylab = "IMC")

En la grafica de IMC se encuentra que las medias estan a la misma altura entre HOMBRE y MUJER. En el hombre se encuentra una variacion en el cuartil 3 que tiene un tamaño mayor, en la mujer el cuartil 3 tiene un tamaño menor y el 4 un tamano mayor.

tapply(pacientes$IMC, pacientes$GENERO, mean)
##   Hombre    Mujer 
## 24.69073 24.81931
fm = aov( lm(pacientes$IMC ~ pacientes$GENERO) )

Pedimos un resumen de la tabla del ANOVA

summary(fm)
##                  Df Sum Sq Mean Sq F value Pr(>F)
## pacientes$GENERO  1    0.3    0.28   0.008  0.928
## Residuals        68 2312.2   34.00

Valor Crítico de F

qf(0.05, 2-1, 70-2, lower.tail = F)
## [1] 3.981896

Valores del estadístico > 3.981896 estarán incluidos en la región de rechazo. En nuetro caso 1.437 es menor que el valor crítico obtenido.

media <- mean(pacientes$EDAD [pacientes$GENERO =="HOMBRE"]) 
valor_t <- pt(0.05/2, 70 - 2)  #depende del grado de confianza que tengamos 
sp <- sqrt(1.437 )  #desviación típica de la varianza muestral común
ee  <- valor_t * (sp/ sqrt(35))  #error de estimación, nos ayuda a sacar el intervalo de confianza 
media
## [1] NaN
media + ee 
## [1] NaN
media - ee 
## [1] NaN
intervals = TukeyHSD(fm)
intervals
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = lm(pacientes$IMC ~ pacientes$GENERO))
## 
## $`pacientes$GENERO`
##                   diff       lwr      upr    p adj
## Mujer-Hombre 0.1285786 -2.694721 2.951878 0.927857
plot(intervals)

La media al estar presente el cero en el intervalo las medias son semejantes

Conclusion

Dado que el p-value es superior a 0.05 no hay evidencias suficientes para considerar que al menos dos medias son distintas. La representación gráfica de los residuos no muestra falta de homocedasticidad y en el qqplot los residuos se distribuyen muy cercanos a la linea de la normal.

Regresión Lineal.

Correlación entre las variables. En las estadística, la dependencia o asociación es una relación estadística, causal o no, entre dos variables aleatorias o dos conjuntos de datos. La correlación es cualquiera de una amplia clase de relaciones estadíticas que involucran dependencia, aunque en el uso común a menudo se refiere a la medida en que dos variables tienen una relación lineal entre sí. Si r=1 Correlación lineal directa linea hacia arriba / y de colores fríos Si r=-1 Correlación lineal inversa linea hacia abajo y de colores cálidos Si r=0 no tiene correlacion lineal

corrplot(cor(select(pacientes,-PACIENTE,-GENERO)))

correlacion<-corrplot(cor(select(pacientes,-PACIENTE,-GENERO)))

Correlacion Si r=1 Correlacion lineal directa linea hacia arriba / y de colores frios

correlacion
##                  EDAD COLESTEROL        IMC       TAD
## EDAD       1.00000000  0.3314421 0.06297175 0.3833463
## COLESTEROL 0.33144210  1.0000000 0.26466284 0.6932144
## IMC        0.06297175  0.2646628 1.00000000 0.2809006
## TAD        0.38334634  0.6932144 0.28090064 1.0000000
str(pacientes)
## 'data.frame':    70 obs. of  6 variables:
##  $ PACIENTE  : chr  "1" "2" "3" "4" ...
##  $ EDAD      : num  42 64 47 56 54 48 57 52 67 46 ...
##  $ COLESTEROL: num  292 235 200 200 300 215 216 254 310 237 ...
##  $ IMC       : num  31.6 30.8 25.6 26.2 32 ...
##  $ TAD       : num  97 90 80 75 100 ...
##  $ GENERO    : Factor w/ 2 levels "Hombre","Mujer": 1 1 1 2 1 1 2 1 1 2 ...
head(pacientes)
##   PACIENTE EDAD COLESTEROL   IMC TAD GENERO
## 1        1   42        292 31.64  97 Hombre
## 2        2   64        235 30.80  90 Hombre
## 3        3   47        200 25.61  80 Hombre
## 4        4   56        200 26.17  75  Mujer
## 5        5   54        300 31.96 100 Hombre
## 6        6   48        215 23.18  67 Hombre
summary(pacientes)
##    PACIENTE              EDAD         COLESTEROL         IMC       
##  Length:70          Min.   :42.00   Min.   :175.0   Min.   : 0.00  
##  Class :character   1st Qu.:49.00   1st Qu.:214.2   1st Qu.:21.90  
##  Mode  :character   Median :56.00   Median :230.0   Median :25.34  
##                     Mean   :55.24   Mean   :236.8   Mean   :24.74  
##                     3rd Qu.:60.00   3rd Qu.:254.0   3rd Qu.:27.76  
##                     Max.   :68.00   Max.   :315.0   Max.   :33.91  
##       TAD           GENERO  
##  Min.   : 65.0   Hombre:41  
##  1st Qu.: 73.0   Mujer :29  
##  Median : 80.0              
##  Mean   : 81.5              
##  3rd Qu.: 90.0              
##  Max.   :105.0

*Limpieza de datos.

missmap(pacientes,col=c('yellow','black'),y.at=1,y.labels='',legend=TRUE)

*Análisis exploratorio de datos, nos permite indagar si la base de datos presenta valores sin asignar o a su vez si existen datos con algún tipo de error.

**Visualizaciones

Gráfico de densidad con ggplot

pacientes %>% ggplot(aes(pacientes$TAD))+stat_density()+theme_bw()

pacientes %>% ggplot(aes(pacientes$IMC))+stat_density()+theme_bw()

pacientes %>% ggplot(aes(pacientes$COLESTEROL))+stat_density()+theme_bw()

pacientes %>%
  select(c(EDAD, COLESTEROL, IMC, TAD, GENERO)) %>%
  melt(id.vars = "EDAD") %>%
  ggplot(aes(x = value, y = EDAD, colour = variable)) +
  geom_point(alpha = 0.7) +
  stat_smooth(aes(colour = "black")) +
  facet_wrap(~variable, scales = "free", ncol = 2) +
  theme_minimal()

set.seed(123)
split <- sample.split(pacientes,SplitRatio =0.75)
train <- subset(pacientes,split==TRUE)
test <- subset(pacientes,split==FALSE)
pacientes$GENERO<- as.numeric(pacientes$GENERO)
model <- lm(EDAD ~  COLESTEROL + IMC + TAD, data = train)
summary(model)
## 
## Call:
## lm(formula = EDAD ~ COLESTEROL + IMC + TAD, data = train)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -15.589  -4.901   0.434   3.599  15.555 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 40.84979    8.50591   4.803 1.93e-05 ***
## COLESTEROL   0.03197    0.03880   0.824    0.415    
## IMC         -0.13729    0.16165  -0.849    0.400    
## TAD          0.12112    0.12013   1.008    0.319    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.762 on 43 degrees of freedom
## Multiple R-squared:  0.1096, Adjusted R-squared:  0.04753 
## F-statistic: 1.765 on 3 and 43 DF,  p-value: 0.1681

Visualizando el módelo

res <- residuals(model)
res <- as.data.frame(res)
ggplot(res,aes(res)) +  geom_histogram(fill='blue',alpha=0.5)

Un módelo es aceptable si: Las variables son significativas El r^2 ajustado a >= 0.5, residual standard, en el nuestro tenemos 6,43. Residuos que se ajustan a una distribución normal donde la media 0-1, se ve como una campana de Gauss reflejada en el histograma, que no estan relacionados, es decir que no sigan un patron deben estar dispersos, el gráfico del histograma no se asocia a la campana por lo que el modelo no es aceptable. Visualmente se comprueba al asociar a una campana.

**Al cumplir dos de las tres condiciones podemos asociar a que es un modelo relativamente aceptable.

plot(model)

La primera grafica es la diferencia entre la realidad y lo ajustado Los datos atipicos que se encuentran fuera del ajuste, generalmente son incorrectos

Lo ideal es que sea una linea recta, ya que estamos viendo que tran cerca esta lo real de lo hecho

La grafica 2, son residuos estandarizados, si se suporne la distribucion teorica con la teorica

La grafica 3, son residuos estandarizados quitan la distancia de la escala, para ver la naturaleza, para medir el ajuste de los datos, lo ideal es la linea recta

test$predicted.COLESTEROL <- predict(model,test)

pl1 <-test %>% 
  ggplot(aes(COLESTEROL,predicted.COLESTEROL)) +
  geom_point(alpha=0.5) + 
  stat_smooth(aes(colour='black')) +
  xlab('Actual value of COLESTEROL') +
  ylab('Predicted value of COLESTEROL')+
  theme_bw()
ggplotly(pl1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
test$predicted.TAD <- predict(model,test)

pl1 <-test %>% 
  ggplot(aes(TAD,predicted.TAD)) +
  geom_point(alpha=0.5) + 
  stat_smooth(aes(colour='black')) +
  xlab('Actual value of TAD') +
  ylab('Predicted value of TAD')+
  theme_bw()
ggplotly(pl1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
test$predicted.IMC <- predict(model,test)

pl1 <-test %>% 
  ggplot(aes(IMC,predicted.IMC)) +
  geom_point(alpha=0.5) + 
  stat_smooth(aes(colour='black')) +
  xlab('Actual value of IMC') +
  ylab('Predicted value of IMC')+
  theme_bw()
ggplotly(pl1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'