#install.packages("glmtoolbox") library(glmtoolbox) #install.packages("faraway") library(faraway) data("fat") #View(fat) d<-fat[,-c(1)] View(d) #Full model modelo_full <- lm(siri ~ age + weight + height + neck + chest + abdom + hip + thigh + knee + ankle + biceps + forearm + wrist, data = d) summary(modelo_full) #Selección modelos - AIC stepCriterion(modelo_full, criterion = "aic",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh + hip stepCriterion(modelo_full, direction="backward", criterion = "aic",levels = c(0.05, 0.05), trace = TRUE) #Final model: ~ age + weight + neck + abdom + hip + thigh + forearm + wrist stepCriterion(modelo_full, direction="forward", criterion = "aic",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh + hip #Selección modelos - BIC stepCriterion(modelo_full, criterion = "bic",levels = c(0.05, 0.05), trace = TRUE) #Final model: ~ abdom + weight + wrist + forearm stepCriterion(modelo_full, direction="backward", criterion = "bic",levels = c(0.05, 0.05), trace = TRUE) #Final model: ~ weight + abdom + forearm + wrist stepCriterion(modelo_full, direction="forward", criterion = "bic",levels = c(0.05, 0.05), trace = TRUE) #Final model: ~ abdom + weight + wrist + forearm #Selección modelos - CP stepCriterion(modelo_full, criterion = "cp",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh stepCriterion(modelo_full, direction="backward", criterion = "cp",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ age + weight + neck + abdom + thigh + forearm + wrist stepCriterion(modelo_full, direction="forward", criterion = "cp",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh #Selección modelos - F stepCriterion(modelo_full, criterion = "p-value",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm stepCriterion(modelo_full, direction="backward", criterion = "p-value",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ weight + abdom + forearm + wrist stepCriterion(modelo_full, direction="forward", criterion = "p-value",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm #Selección modelos - R2 stepCriterion(modelo_full, criterion = "prdr2",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh + hip stepCriterion(modelo_full, direction="backward", criterion = "prdr2",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ age + weight + neck + abdom + hip + thigh + forearm + wrist stepCriterion(modelo_full, direction="forward", criterion = "prdr2",levels = c(0.05, 0.05), trace = TRUE) #Final model:~ abdom + weight + wrist + forearm + neck + age + thigh + hip ############################ ## CRITERIOS DE SELECCIÓN ## ############################ modeloaic <- lm(siri ~ abdom + weight + wrist + forearm + neck + age + thigh + hip, data=d) summary(modeloaic) # como "hip" no es significativa, se descarta el modelo porque todas # las variables deben ser significativas modelobic<- lm(siri ~ abdom + weight + wrist + forearm, data=d) summary(modelobic) # SIRVE - Este modelo puede servir porque todas las variables son significativas modelocp<- lm(siri ~ abdom + weight + wrist + forearm + neck + age + thigh , data=d) summary(modelocp) # En este modelo hay alguna variables que no son significativas con alfa=0,10 modelof<- lm(siri ~ abdom + weight + wrist + forearm, data=d) summary(modelof) # SIRVE - Este modelo puede servir porque todas las variables son significativas modelor2<- lm(siri~ abdom + weight + wrist + forearm + neck + age + thigh + hip, data=d) summary(modelor2) # como "hip" no es significativa, se descarta el modelo porque todas # las variables deben ser significativas ############################### ## VERIFICACION DE SUPUESTOS ## ############################### # Ahora se verifican supuestos de los modelos elegidos: # modelobic<- lm(siri ~ abdom + weight + wrist + forearm, data=d) # summary(modelobic) # modelof<- lm(siri ~ abdom + weight + wrist + forearm, data=d) # summary(modelof) # Generación de residuales library(nortest) MOD<- lm(siri ~ abdom + weight + wrist + forearm, data=d) #modelobic resi<-residuals(MOD) #Verificación de Normalidad de los residuales shapiro.test(resi) #Prueba de Shapiro-Wilks lillie.test(resi) #Prueba de Lilliefors #Verificación de homocedasticidad de los residuales library(lmtest) bptest(MOD) #Prueba de Breusch Pagan gqtest(MOD) #Prueba de Golfeld-Quant #Verificación de independencia de los residuales dwtest(MOD) #Prueba de Durbin Watson # Generación de residuales library(nortest) MOD<- lm(siri ~ abdom + weight + wrist + forearm, data=d) #modelof resi<-residuals(MOD) #Verificación de Normalidad de los residuales shapiro.test(resi) #Prueba de Shapiro-Wilks lillie.test(resi) #Prueba de Lilliefors #Verificación de homocedasticidad de los residuales library(lmtest) bptest(MOD) #Prueba de Breusch Pagan gqtest(MOD) #Prueba de Golfeld-Quant #Verificación de independencia de los residuales - Ha: Autocorrelación >0 dwtest(d$siri~resi) #Prueba de Durbin Watson dwtest(MOD) # modelobic y modelof cumplen todos los supuestos, y pues obvio porque # no nos habiamos dado cuenta que es el mismo. ### Interpretación de los parámtros estimados ### MOD<- lm(siri ~ abdom + weight + wrist + forearm , data= d) MOD summary(MOD) # (Intercept) -34.85407 - no es estimable teniendo en cuenta el contexto # de la base de datos, pues el porcentaje de grasa corporal no puede ser # negativo # abdom -> 0.99575 - Por cada centimtro que aumenta el diamtro del abdomen, # el porcentaje de grasa dado por el coeficiente Siri aumenta en 0,99575, # manteniendo constante las otras tres variables del modelo seleccionado. # weight -> -0.13563 - Por cada libra adicional en el peso del individuo, # el porcentaje de grasa dado por el coeficiente Siri disminuye en 0.13563, # manteniendo constante las otras tres variables del modelo seleccionado. # wrist -> -1.50556 - Por cada centimetro adicional del diametro de la muñeca # en el individuo, el porcentaje de grasa dado por el coeficiente Siri disminuye # en 1.50556, manteniendo constante las otras tres variables del modelo # seleccionado. # forearm -> 0.47293 - Por cada centimetro que aumenta el diametro del antebrazo, # el porcentaje de grasa dado por el coeficiente Siri aumenta en 0.47293, # manteniendo constante las otras tres variables del modelo seleccionado.