Regresión simple

Caso: Población estudiantes VS ventas en restaurantes de Pizzas

  • Ejemplo: se recolectan datos de una muestra de 10 restaurantes de Pizza ubicados todos cerca de diversas escuelas de educación superior.
  • Las ventas dependen del número de estudiantes de cada escuela

Las librerías

library(ggplot2) # Para gráficas
library(stats) # Para regresion lineal

Los datos

restaurantes <- c(1:10)
estudiantes <- c(2,6,8,8,12,16,20,20,22,26)
ventas <- c(58,105,88,118,117,137,157,169,149,202)

datos <- data.frame(restaurantes,estudiantes,ventas)
datos
##    restaurantes estudiantes ventas
## 1             1           2     58
## 2             2           6    105
## 3             3           8     88
## 4             4           8    118
## 5             5          12    117
## 6             6          16    137
## 7             7          20    157
## 8             8          20    169
## 9             9          22    149
## 10           10          26    202

Diagrama de dispersión

plot(datos$estudiantes, datos$ventas,
     xlab = "Estudiantes",
     ylab = "Ventas $",
     main = "Diagrama de dispersión")

Diagrama de dispersión con ggplot2

ggplot(datos, aes(estudiantes, ventas))   +   geom_point()

#ggplot(data = datos) + 
#  geom_point(mapping = aes(x = estudiantes, y = ventas))

La regresión lineal

  • Las ventas de Pizzas de cada restaurante en función de los miles de estudiantes en escuelas cercanas a los restaurantes
modelo<-lm(ventas ~ estudiantes, datos) 
modelo
## 
## Call:
## lm(formula = ventas ~ estudiantes, data = datos)
## 
## Coefficients:
## (Intercept)  estudiantes  
##          60            5
  • y = a + bx
  • ventas = 60 + 5 * estudiantes
  • La pendiente de la línea de tendencia es 5
  • la intersección con el eje y (el punto en que la recta interseca el eje y) es 60.

Graficando la linea de tendencia con una predicción

y_predict <- predict(modelo, datos)

ggplot() + geom_point(data = datos, aes(x = estudiantes, y = ventas), size = 0.9) +
  geom_line(aes( x = datos$estudiantes, y = y_predict), color = "red") +
  xlab("Estudiantes") + 
  ylab("Ventas") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

Interpretación

  • La pendiente de la ecuación de regresión estimada (b1 = 5) es positiva, lo que implica que a medida que aumenta el tamaño de la población de estudiantes, aumentan las ventas.
  • Se concluye (basándose en las ventas dadas en miles de y en el tamaño de la población de estudiantes en miles) que un aumento de 1000 en el tamaño de la población de estudiantes corresponde a un aumento esperado de $5000 en las ventas;
  • Se espera que las ventas trimestrales aumenten $5 por cada aumento de un estudiante

Predecir valores de ventas de acuerdo a valores de cantidad de estudiantes

  • si se quisieran predecir las ventas trimestrales de un restaurante ubicado cerca de un campus de 16 mil; 32 mil; 64 mil; 96 mil estudiantes, se calcularía
  • De manera manual conforme a los coeficientes
  • Los coeficientes del modelo en R, son un veector de dos posiciones
  • [1] para intercepción ‘a’
  • [2] para la pendiente ‘b’
  • y = a + bx
  • En este ejemplo, x sería los valores: c(16, 32, 64, 96) determinados por un vector
a.coef.intercepcion = modelo$coefficients[1]
b.pendiente = modelo$coefficients[2]
y.prediccion <- a.coef.intercepcion + b.pendiente * c(16, 32, 64, 96)
# Las predicciones son:
y.prediccion
## [1] 140 220 380 540

Otra forma de determinar predicciones

  • De forma directa a través de la función predict()
  • Mismos valores a predecir que de manera manual
  • y = a + bx
prediccion <- predict(modelo,data.frame(estudiantes=c(16, 32, 64, 96)))
prediccion
##   1   2   3   4 
## 140 220 380 540

variables estadísticas de la regresión lineal

summary(modelo)
## 
## Call:
## lm(formula = ventas ~ estudiantes, data = datos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -21.00  -9.75  -3.00  11.25  18.00 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  60.0000     9.2260   6.503 0.000187 ***
## estudiantes   5.0000     0.5803   8.617 2.55e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.83 on 8 degrees of freedom
## Multiple R-squared:  0.9027, Adjusted R-squared:  0.8906 
## F-statistic: 74.25 on 1 and 8 DF,  p-value: 2.549e-05

Determinando el coeficiente de relación entre estudiantes y ventas

sqrt(0.9027)
## [1] 0.9501053
cor(datos$estudiantes, datos$ventas)
## [1] 0.950123
  • −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).
  • Metodología de la Investigación. Roberto Hernández Sampieri

Residuales y Suma de Cuadrados debida al Error SCE

modelo$residuals
##   1   2   3   4   5   6   7   8   9  10 
## -12  15 -12  18  -3  -3  -3   9 -21  12

SCE, SCT y SCR y Coeficiente de determinación

  • SCE Residuales o suma de cuadrados debida al error
  • STC. Suma total de cuadrados
  • Suma de cuadrados debida a a regresión
  • Relación entre variables: STC = SCR + SCE
  • Entonces SCR = STC - SCE
SCE <- sum(modelo$residuals ^ 2)
SCE
## [1] 1530
STC <- sum((modelo$model$ventas - mean(datos$ventas)) ^ 2)
STC
## [1] 15730
# Entonces

SCR <- STC - SCE
SCR
## [1] 14200
coefDeterm <- SCR / STC
coefDeterm
## [1] 0.9027336
coefCorre <- sqrt(coefDeterm)
coefCorre # Igual que cor()
## [1] 0.950123
cor(datos$estudiantes, datos$ventas)
## [1] 0.950123

Interpretación

  • Con el Coeficiente de determinación Se concluye que 90.27% de la variabilidad en las ventas se explica por la relación lineal que existe entre el tamaño de la población de estudiantes y las ventas
  • Con la recta de regresión y la correlación entre las variables se establece que si hay relación entre las variables. Correlación positiva muy fuerte.
  • En el caso de una relación lineal entre dos variables, tanto el coeficiente de determinación como el coeficiente de correlación muestral proporcionan medidas de la intensidad de la relación.
  • El coeficiente de determinación proporciona una medida cuyo valor va desde cero hasta uno, mientras que el coeficiente de correlación muestral proporciona una medida cuyo valor va desde –1 hasta +1.
  • El coeficiente de correlación lineal está restringido a la relación lineal entre dos variables, pero el coeficiente de determinación puede emplearse para relaciones no lineales y para relaciones en las que hay dos o más variables independientes.
  • Por tanto, el coeficiente de determinación tiene un rango más amplio de aplicaciones.

Error estándar de estimación y error cuadrado medio

  • Error cuadrado medio. ECM = SCE / (n - 2)
  • Error estándar de estimació. s = sqrt(ECM)
n <- nrow(datos) # Tamaño de la población
ECM <- SCE / (n - 2)
ECM
## [1] 191.25
s <- sqrt(ECM)
s
## [1] 13.82932
summary(modelo)
## 
## Call:
## lm(formula = ventas ~ estudiantes, data = datos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -21.00  -9.75  -3.00  11.25  18.00 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  60.0000     9.2260   6.503 0.000187 ***
## estudiantes   5.0000     0.5803   8.617 2.55e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.83 on 8 degrees of freedom
## Multiple R-squared:  0.9027, Adjusted R-squared:  0.8906 
## F-statistic: 74.25 on 1 and 8 DF,  p-value: 2.549e-05
  • En summary(modelo)
  • Residual standard error: 13.83 on 8 degrees of freedom
  • El error estándar de estimación (s) se emplea en la discusión acerca de las pruebas de significancia de la relación entre x & y. Prueba t, y prueba F
  • En la última línea de la salida anterior tenemos la información de la prueba de hipótesis sobre significancia de la regresión.
  • F-statistic: 74.25 on 1 and 8 DF, p-value: 2.549e-05
  • El valor-P de esta prueba es 2.549e-05 y por lo tanto podemos rechazar Ho a un nivel de significancia usual del 5%, eso significa que la variable estudiantes del modelo es significativa para explicar las ventas.
  • Adjusted R-squared: 0.8906 = R2ajustado
  • Adjusted R-squared introduce una penalización al valor del coeficiente de determinación por cada predictor que se introduce en el modelo.
  • El valor de la penalización depende del número de predictores utilizados y del tamaño de la muestra, es decir, del número de grados de libertad.
  • Cuanto mayor es el tamaño de la muestra, más predictores se pueden incorporar en el modelo. R2ajustado permite encontrar el mejor modelo, aquel que consigue explicar mejor la variabilidad de Y con el menor número de predictores.
  • Coeficiente de Determinación Ajustado = 1 - (1 - coefDeterm) X (n-1) / (n - k - 1)
  • n número de observaciones
  • k número de variables independientes, al menos 1
k = 1 # Una variable independiente: estudiantes
R2Ajusted <- 1 - (1 - coefDeterm) * (n-1) / (n - k - 1)
R2Ajusted
## [1] 0.8905753

Variables ANOVA

anova(modelo)
## Analysis of Variance Table
## 
## Response: ventas
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## estudiantes  1  14200 14200.0  74.248 2.549e-05 ***
## Residuals    8   1530   191.3                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • Valores de SCE residuales o suma de cuadrados debida al error
  • Valor de STC. Suma total de cuadrados
  • Valor del Error cuadrado medio. ECM = SCE / (n - 2)
  • Prueba F