Regresión lineal simple

Importar

Datos

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

Visualizar

head(grasas)
##   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 dispersión
pairs(grasas) #relaciona contra todas las variables 

A continuación se hará una cuantificación del grado de relación linea, por medio de la matriz de coeficientes de correlación.

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

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 del 83% Esto explicado con un coeficiente de correlación de: 0.8373534

Recta de minimos cuadrados

regresion <- lm(grasas ~ edad, data=grasas)
summary(regresion)
## 
## 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 regresión lineal, obtenemos la ecuación de la recta de minimos cuadrados

\[y = 102.5751 + 5.3207x \]

Grafica de la Recta de minimos cuadrados

plot(grasas$edad, grasas$grasas, xlab="Edad", ylab="Grasas")
abline(regresion)

Modelación (cálculo) de predicciones

nuevas.edades <- data.frame(edad=seq(20,60))
predict(regresion,nuevas.edades)
##        1        2        3        4        5        6        7        8 
## 208.9887 214.3093 219.6300 224.9507 230.2714 235.5921 240.9127 246.2334 
##        9       10       11       12       13       14       15       16 
## 251.5541 256.8748 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 
##       17       18       19       20       21       22       23       24 
## 294.1195 299.4402 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 
##       25       26       27       28       29       30       31       32 
## 336.6849 342.0056 347.3263 352.6469 357.9676 363.2883 368.6090 373.9296 
##       33       34       35       36       37       38       39       40 
## 379.2503 384.5710 389.8917 395.2123 400.5330 405.8537 411.1744 416.4950 
##       41 
## 421.8157

\[ 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

Intervalo de confianza

  • Intervalo de confianza para el 95% de los datos
confint(regresion, level=0,90)
##      50 % 50 %
## <NA>   NA   NA

Representacion grafica de los intervalos de confianza

nuevas.edades <- data.frame(edad=seq(20,60))
#Grafico de disprecion y recta
plot(grasas$edad, grasas$grasas, xlab="Edad", ylab="Grasas")
abline(regresion)

#Intervalos de confianza de la respuesta media
# ic es una matriz que tendrá 3 columnas:
# La 1ra que es la predicción, 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=3)

#Intervalos de predicción
ic <- predict(regresion, nuevas.edades, interval = "prediction")
lines(nuevas.edades$edad, ic[, 2], lty=2, col = "blue")
lines(nuevas.edades$edad, ic[, 3], lty=3, col = "blue")

Conclusión

En este Script, vemos acerca de los diferentes procesos y herramientas que podemos hacer con base los datos que agregamos, en este caso utilizamos los datos de edad, peso y grasa, vimos como dependen esos datos de uno de los otros, escogimos los datos de Edad y grasa ya que estos dependen mas de uno del otro, ya que depende de tu edad puedes tener tanta grasa, ya que el metabolismo es diferente a una tal edad, etc. Gracias a esto podemos predecir posibles grasas, dependiendo de las edades de las personas, posibles enfermedades o problemas. Vimos como graficar estas graficas, desde tales edades hasta tales edades, que escogimos.