Regresion lineal simple
Importar
Datos
grasas <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt", header = TRUE)
names(grasas)## [1] "peso" "edad" "grasas"
Visualizar
## peso edad grasas
## 1 84 46 354
## 2 73 20 190
## 3 65 52 405
## 4 70 30 263
## 5 76 57 451
## 6 69 25 302
Analisis de correlación
- Matriz de diagramas de dispersion
A continuación se hará una cuantificacion del grado de relacion lineal, por medio de la matriz de coeficientes de correleacion.
## peso edad grasas
## peso 1.0000000 0.2400133 0.2652935
## edad 0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000
Con esto observamos que a medida que aumenta la edad de una persona, aumenta el contenido de grasas en su cuerpo con un indice de relacion de 83% Esto explicado con un coeficiente de correlacion de 0.8373534
Recta de minimos cuadrados
##
## Call:
## lm(formula = grasas ~ edad, data = grasas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -63.478 -26.816 -3.854 28.315 90.881
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 102.5751 29.6376 3.461 0.00212 **
## edad 5.3207 0.7243 7.346 1.79e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 43.46 on 23 degrees of freedom
## Multiple R-squared: 0.7012, Adjusted R-squared: 0.6882
## F-statistic: 53.96 on 1 and 23 DF, p-value: 1.794e-07
con base a lo estimado en el analisis de regresion lineal, obtenemos la ecuacion de la recta de minimos cuadrados
\[y = 102.5751 + 5.3207x\]
Grafica de la recta de minimos cuadrados
Modelación (Cálculo) de predicciones
## 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
Inferencia en el modo de regresion simple
*Suponemos ahora que los datos proceden de un modelo de regresión simple, de la forma:
\[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\)
- Los errores tipicos de los stimadores de los parametros \(\beta_0 y \beta_1\) se encuentran en la columa std error serian de manera correspondiente: 29.6376 y 0.7243
Cálculo del nivel de confianza
- Intervalo de confianza para el 95% de los datos
## 2.5 % 97.5 %
## (Intercept) 41.265155 163.885130
## edad 3.822367 6.818986
- Intervalo de confianza para el 90% de los datos
## 5 % 95 %
## (Intercept) 51.780153 153.370132
## edad 4.079335 6.562018
Representación gráfica de los intervalos de confianza
nuevas.edades <- data.frame(edad=seq(20,60))
#Gráfico 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 con tres 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)
#Intervalos 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")Como conclusion, se ve en el ejercicio como hay ciertos datos que tienen una relacion mas apegada a ciertos valores, aplicando ciertas funciones se puede llegar a concer los porcentajes, o valores que no se ven por si mismo en los datos como tal, nos puede ser muy util aprender a manejar las funciones que utilizamos en esta actividad, ya sea para comparaciones, saber predecir, sacar valores de confianza, etc.