library(glmtoolbox)
library(faraway)
data("fat")
#View(fat)
d<-fat[,-c(1)]
View(d)
#Full model - Con todas las variables
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 - criterio 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
###############################
## VERIFICACIÓN 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.
### Interpretación de los parámetros 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.