library(pacman)
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc", "readr", "ggplot2", "tidyr", "plotly", "DT")
setwd("~/PyE")

Importar datos

grasas <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt", header= TRUE)
names(grasas)
## [1] "peso"   "edad"   "grasas"

U4A2

  1. Ajusta el modelo que explica la cantidad de grasas en función del peso.
regresion <- lm(grasas ~   peso, data=grasas )
  1. Calcula y representa gráficamente la recta de regresión, junto con la correspondiente nube de puntos.
plot(grasas$peso, grasas$grasas, xlab="Peso", ylab="Grasas")
abline(regresion)

  1. ¿Cuánto vale el coeficiente de correlación al cuadrado en este caso?
summary(regresion)
## 
## Call:
## lm(formula = grasas ~ peso, data = grasas)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -127.729  -53.686   -9.239   46.537  128.404 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  199.298     85.818   2.322   0.0294 *
## peso           1.622      1.229   1.320   0.2000  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 76.65 on 23 degrees of freedom
## Multiple R-squared:  0.07038,    Adjusted R-squared:  0.02996 
## F-statistic: 1.741 on 1 and 23 DF,  p-value: 0.2

A partir de la salida anterior, vemos que su valor en este caso es Multiple R-squared: 0.07038.

  1. ¿Cuánto valen los estimadores de todos los parámetros del modelo? los estimadores de los parámetros β0 y β1 se encuentran en la columna Std Error de la salida anterior. En este caso sus valores son 85.818 y 1.229 respectivamente.

  2. Contrasta la hipótesis de que la pendiente de la recta es cero a nivel 0.05. En este caso podemos observar que H0:β0=.0294 H1:β1=.2000 Por lo tanto la hipotésis H0 se acepta y la hipotésis H1 se rechaza.

  3. Calula un intervalo de confianza para la pendiente de la recta de nivel 90%.

confint(regresion, level = 0.90)
##                    5 %       95 %
## (Intercept) 52.2166142 346.378389
## peso        -0.4847468   3.729432
  1. Calcula y representa los intervalos de confianza al 95% de la cantidad de grasas media para los individuos entre 30 y 90 kg. Lleva a cabo el diagnóstico del modelo
nuevospesos <- data.frame(peso=seq(30,90))
confint(regresion, level = .95)
##                  2.5 %     97.5 %
## (Intercept) 21.7696109 376.825392
## peso        -0.9209324   4.165618
plot(grasas$peso, grasas$grasas, xlab="Peso", ylab="Grasas")
abline(regresion)

#Intervalos de confianza de la respuesta media 
#ic es una matriz de tres columnas: la primera es la predicción, las otras son los extremos del intervalo
ic <- predict(regresion, nuevospesos, interval="confidence" )
lines(nuevospesos$peso, ic[, 2], lty =2, col="red"  )
lines(nuevospesos$peso, ic[, 3], lty =2, col="red"  )

  • Diagnostico del modelo
residuos <- rstandard(regresion)
valores.ajustados <- fitted(regresion)
plot(valores.ajustados, residuos)

qqnorm(residuos)
qqline(residuos)

Dado que los puntos están bastante alineados, la normalidad también parece aceptable.

Para esta asignacion reforzamos lo visto en clase sobre la recta de regresion y como diagnosticar modelos mediante rstandar, qqnorm y qqline.