grasas <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt",header = TRUE)
*Matriz de diagramas de dispersion
pairs(grasas)
A continuacion se hara una cuantidicacion del grado de relacion lineal, por medio de la matriz de coeficientes de correlacion
cor(grasas)
## peso edad grasas
## peso 1.0000000 0.2400133 0.2652935
## edad 0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000
regresion <- lm(grasas ~ edad, data=grasas)
summary(grasas)
## peso edad grasas
## Min. :27.00 Min. :20.00 Min. :181.0
## 1st Qu.:63.00 1st Qu.:30.00 1st Qu.:254.0
## Median :69.00 Median :37.00 Median :303.0
## Mean :68.68 Mean :39.12 Mean :310.7
## 3rd Qu.:76.00 3rd Qu.:50.00 3rd Qu.:374.0
## Max. :89.00 Max. :60.00 Max. :451.0
\[y = 102.5751 + 5.3207x \]
plot(grasas$edad, grasas$grasas, xlab = "Edad", ylab ="Grasas")
abline(regresion)
nuevas.edades <- data.frame(edad = seq(30,50))
predict(regresion, nuevas.edades)
## 1 2 3 4 5 6 7 8
## 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 294.1195 299.4402
## 9 10 11 12 13 14 15 16
## 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 336.6849 342.0056
## 17 18 19 20 21
## 347.3263 352.6469 357.9676 363.2883 368.6090
\[y_i = \beta_0 + \beta_1 x_i + \epsilon_i, \ \ \ \ i=1,\ldots,n, \] Donde: * Los errores aleatorios \(\epsilon_i\) son independientes con distribucion normal 0 y varianza \(\sigma^2\)
confint(regresion)
## 2.5 % 97.5 %
## (Intercept) 41.265155 163.885130
## edad 3.822367 6.818986
confint(regresion, level=0.90)
## 5 % 95 %
## (Intercept) 51.780153 153.370132
## edad 4.079335 6.562018
nuevas.edades <- data.frame(edad = seq(30,60))
# Grafico de dispersion y recta
plot(grasas$edad, grasas$grasas, xlab = "Edad", ylab ="Grasas")
abline(regresion)
# Intervalos de confianza de la respuesta media
# ic es una matriz de 3 columnas:
# La primera es la prediccion, y las otras son los extremos del intervalo
ic <- predict(regresion, nuevas.edades, interval = "confidence")
lines(nuevas.edades$edad, ic[,2], lty = 2)
lines(nuevas.edades$edad, ic[,3], lty = 2)
# Intervalo de predicción
ic <- predict(regresion, nuevas.edades, interval = "prediction")
lines(nuevas.edades$edad, ic[,2], lty = 2, col = "red")
lines(nuevas.edades$edad, ic[,3], lty = 2, col = "red")