Objetivo

Regresión lineal simple con el caso women del paquete base de T

Descripción

Realizar predicciones elementales dado el la altura de una mujer como variable independiente y el peso como variable dependiente

Proceso

1. Los datos

datos <- women

2. Las librerias

library(dplyr)
library(lubridate)
library(knitr)
library(ggplot2)

3. Explorar los datos

str(datos)
## 'data.frame':    15 obs. of  2 variables:
##  $ height: num  58 59 60 61 62 63 64 65 66 67 ...
##  $ weight: num  115 117 120 123 126 129 132 135 139 142 ...
summary(datos)
##      height         weight     
##  Min.   :58.0   Min.   :115.0  
##  1st Qu.:61.5   1st Qu.:124.5  
##  Median :65.0   Median :135.0  
##  Mean   :65.0   Mean   :136.7  
##  3rd Qu.:68.5   3rd Qu.:148.0  
##  Max.   :72.0   Max.   :164.0

4. Realizar la gráfica de dispersión

ggplot(datos, aes(x = height, y = weight)) +
    geom_point()

5. Determinar el coeficiente de correlación

  • −0.90 = Correlación negativa muy fuerte.
  • −0.75 = Correlación negativa considerable.
  • −0.50 = Correlación negativa media.
  • −0.25 = Correlación negativa débil.
  • −0.10 = Correlación negativa muy débil.
  • 0.00 = No existe correlación alguna entre las variables.
  • +0.10 = Correlación positiva muy débil.
  • +0.25 = Correlación positiva débil.
  • +0.50 = Correlación positiva media.
  • +0.75 = Correlación positiva considerable.
  • +0.90 = Correlación positiva muy fuerte.
  • +1.00 = Correlación positiva perfecta (“A mayor X, mayor Y” o “a menor X, menor Y”, de manera proporcional. Cada vez que X aumenta, Y aumenta siempre una cantidad constante).
CR <- cor(datos$height, datos$weight)
CR
## [1] 0.9954948

6. Modelo de regresión lineal simple

\[ y = a + b (x) \]

modelo <- lm(data = datos, formula = 
weight ~ height)

summary(modelo)
## 
## Call:
## lm(formula = weight ~ height, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7333 -1.1333 -0.3833  0.7417  3.1167 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
## height        3.45000    0.09114   37.85 1.09e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.525 on 13 degrees of freedom
## Multiple R-squared:  0.991,  Adjusted R-squared:  0.9903 
## F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14
a = modelo$coefficients[1]
b = modelo$coefficients[2]
a
## (Intercept) 
##   -87.51667
b
## height 
##   3.45
  • Graficando la linea de tendencia
ggplot(data = datos, mapping = aes(x = height, y = weight)) +
  geom_point(color = "firebrick", size = 2) +
  labs(title  =  'weight ~ height', x  =  'Altura') +
  geom_smooth(method = "lm", se = FALSE, color = "black") +
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5))

7. Predecir peso de una persona en función de su altura

  • Predecir conforme a la fórmula y = a + bx
x = c(64,70,62,80,76,66,65,68,54,53,58,55,63,73,74,64,67,59,61,71)
y = a + b * x
y
##  [1] 133.28333 153.98333 126.38333 188.48333 174.68333 140.18333 136.73333
##  [8] 147.08333  98.78333  95.33333 112.58333 102.23333 129.83333 164.33333
## [15] 167.78333 133.28333 143.63333 116.03333 122.93333 157.43333
  • Predecir conforme a la función predict()
  • Se utilizan los mismos valores de x
  • La función predict() requiere un modelo y el nuevo conjunto de datos que debe tener la variable independiente del mismo nombre height
prediccion <- predict(modelo, newdata = data.frame(height = x))
prediccion
##         1         2         3         4         5         6         7         8 
## 133.28333 153.98333 126.38333 188.48333 174.68333 140.18333 136.73333 147.08333 
##         9        10        11        12        13        14        15        16 
##  98.78333  95.33333 112.58333 102.23333 129.83333 164.33333 167.78333 133.28333 
##        17        18        19        20 
## 143.63333 116.03333 122.93333 157.43333

8. Interpretar el modelo de regresión lineal simple

El valor del coeficiente de correlación del conjunto de datos women de las variables height y weigth es de Correlación positiva muy fuerte. Dentro del modelo de regresión lineal podemos ver que los coeficientes tanto para el Height como para Intercept son bastante buenos y nos quiere decir que hay relación significativa entre las dos variables (height y weight) y hay bastante regresión lineal entre las dos variables. Igualmente, en el modelo podemos ver que en relación a las variables en un 99% de las ocasiones el peso de las personas es explicado en base a la estatura de las mismas personas. Y en la línea de tendencia también podemos ver que en algunas ocasiones en las predicciones e incluso en el conjunto de datos, si son interceptados los puntos por la línea, por lo tanto podemos decir que este conjunto de datos si presenta en casi toda su totalidad una fuerte regresión lineal.