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 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.
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
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
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.
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.
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.
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
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
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.
plot(fm$residuals)
Existe una dispersion de datos por lo que indica que no existe correlacion entre los residuos.
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.
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
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
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.
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
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'