Regresión Lineal Simple

Objetivo

Determinar predicciones de datos bajo el modelo de regresión lineal simple

Descripción

De un conjunto de datos con dos variables (bivariable) en donde una de ellas es X variable independiente y otra de ellas Y variable dependiente, predecir el valor de Y conforme la historia de X.

Formula de minimo cuadrados para regresion lineal

\[Y= a+bx\]

Donde: * \(Y\) es el valor a predecir * \(a\) Es el valor del creuce del eje y * \(b\) es el valor de la pendiente o inclinacion * \(x\) el valor de la variable independiete

1. Librerías

library(ggplot2)  
## Warning: package 'ggplot2' was built under R version 4.0.3
library(knitr)  
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(mosaic)
## Warning: package 'mosaic' was built under R version 4.0.3
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
library(readr)
## Warning: package 'readr' was built under R version 4.0.3

2 Ejercicios ventas en función de comerciales

2.1. Cargar o generar los datos
  • De un conjunto de datos para una empresa que invierte dinero en comerciales se tienen un historial de ventas de doce semanas.
semanas <- c(1:12)
comerciales <- c(2,5,1,3,4,1,5,3,4,2,3,2)
ventas <- c(50,57,41,54,54,38,63,48,59,46, 45, 48 )

datos <- data.frame(semanas,comerciales,ventas)
kable(datos, caption = "Ventas en función de inversión en comerciales")
Ventas en función de inversión en comerciales
semanas comerciales ventas
1 2 50
2 5 57
3 1 41
4 3 54
5 4 54
6 1 38
7 5 63
8 3 48
9 4 59
10 2 46
11 3 45
12 2 48
2.2 Valor de correlación entre las varibles
  • Se determina la correlación de Pearson con la función cor(x,y) que establece el grado de relación entre dos variables; ‘x’ son los comerciales y ‘y’ las ventas.
r <- cor(datos$comerciales, datos$ventas)
r
## [1] 0.9006177
2.3 Gráfica de dispersión
ggplot(data = datos, aes(x = comerciales, y = ventas)) +
  geom_point(colour = 'blue')

2.4 Generar el modelo regresión lineal Y=a+bx
  • Determinar los coeficintes a y b por medio de la función lineal lm()

  • El caracter ‘~’ en la fórmula de la función lm() de regresión se interpreta como que la variable ‘y’ está en función de la variable ‘x’.

modelo <- lm(data = datos, formula = ventas~comerciales)

modelo
## 
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
## 
## Coefficients:
## (Intercept)  comerciales  
##      36.131        4.841
  • Elevando al cuadrado el coeficiente de correlación.

\[r^2\]

summary(modelo)
## 
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6534 -2.7331  0.1076  2.8357  4.1873 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  36.1315     2.3650  15.278 2.93e-08 ***
## comerciales   4.8406     0.7387   6.553 6.45e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.378 on 10 degrees of freedom
## Multiple R-squared:  0.8111, Adjusted R-squared:  0.7922 
## F-statistic: 42.94 on 1 and 10 DF,  p-value: 6.449e-05
paste("El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación: ", r^2)
## [1] "El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación:  0.811112191696598"
  • El coeficiente de determinación \[r^2\] con valor de 0.8111 significa que el valor de solido representa el 81.11 % del oxígeno.

Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##    36.13147
## comerciales 
##    4.840637
Gráfica de tendencia
ggplot() + 
  geom_point(data = datos, aes(x = comerciales, y = ventas), colour='blue') +
  geom_line(aes( x = datos$comerciales, y = predict(modelo, datos)), color = "red") +
  xlab("Comerciales") + 
  ylab("Ventas") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

2.5 Predecir conforme al modelo
  • Para predecir se puede usar la ecuación y=a+bx o utilizar la función predict()
  • Predecir para valores 4,3.5,2.0,1
x <- c(4,3.5,2,0,1)

prediccion <- predict(object = modelo, newdata = data.frame(comerciales = x))
prediccion
##        1        2        3        4        5 
## 55.49402 53.07371 45.81275 36.13147 40.97211
y = a + b * x
y
## [1] 55.49402 53.07371 45.81275 36.13147 40.97211

3. Ejercicio. Medidas de los sólidos y la demanda de oxígeno químico.

Uno de los problemas más desafiantes que se enfrentan en el área del control de la contaminación del agua lo representa la industria de la peletería (dedicada a la elaboración de indumentaria, cuero y piel animal).

Los desechos de ésta tienen una complejidad química. Se caracterizan por valores elevados de demanda de oxígeno bioquímico, sólidos volátiles y otras medidas de la contaminación. (Walpole et al., 2007)

3.1 Cargar o generar los datos
seq <- c(1:33)
solido <- c(3,7,11,15,18,27,29,30,30,31,31,32,33,33,34,36,36,36,37,38,39,39,39,40,41,42,42,43,44,45,46,47,50)
oxigeno <- c(5,11,21,16,16,28,27,25,35,30,40,32,34,32,34,37,38,34,36,38,37,36,45,39,41,40,44,37,44,46,46,49,51 )

datos <- data.frame(seq,solido,oxigeno)
kable(datos, caption = "Contaminante oxígeno en función de reducción de sólidos")
Contaminante oxígeno en función de reducción de sólidos
seq solido oxigeno
1 3 5
2 7 11
3 11 21
4 15 16
5 18 16
6 27 28
7 29 27
8 30 25
9 30 35
10 31 30
11 31 40
12 32 32
13 33 34
14 33 32
15 34 34
16 36 37
17 36 38
18 36 34
19 37 36
20 38 38
21 39 37
22 39 36
23 39 45
24 40 39
25 41 41
26 42 40
27 42 44
28 43 37
29 44 44
30 45 46
31 46 46
32 47 49
33 50 51
3.2 Valor de correlación entre las variables
  • Se determina la correlación de Pearson con la función cor(x,y) que establece el grado de relación entre dos variables; ‘x’ son los vlores de sólido y ‘y’ el porcentaje de oxígeno.
r <- cor(datos$solido, datos$oxigeno)
r
## [1] 0.9554794
3.3 Gráfica de dispersión
ggplot(data = datos, aes(x = solido, y = oxigeno)) +
  geom_point(colour = 'blue')

3.4 Generar el modelo regresión lineal Y=a+bx
  • Determinar los coeficientes a y b por medio de la función lineal lm()
  • El caracter ‘~’ en la fórmula de la función lm() de regresión se interpreta como que la variable ‘y’ está en función de la variable ‘x’.
modelo <- lm(data = datos, formula = oxigeno~solido)

modelo
## 
## Call:
## lm(formula = oxigeno ~ solido, data = datos)
## 
## Coefficients:
## (Intercept)       solido  
##      3.8296       0.9036

Encontrar el coeficiente de determinación r2

summary(modelo)
## 
## Call:
## lm(formula = oxigeno ~ solido, data = datos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -5.939 -1.783 -0.228  1.506  8.157 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.82963    1.76845   2.166   0.0382 *  
## solido       0.90364    0.05012  18.030   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.23 on 31 degrees of freedom
## Multiple R-squared:  0.9129, Adjusted R-squared:  0.9101 
## F-statistic: 325.1 on 1 and 31 DF,  p-value: < 2.2e-16
paste("El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación :", r^2)
## [1] "El coeficiente de determinación o Multiple R-squared: es igual al cuadrado del coeficiente de correlación : 0.912940801014387"
  • El coeficiente de determinación r2 con valor de 0.9129 significa que el valor de solido representa el 91.29 % del oxígeno.

**** Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##    3.829633
##    solido 
## 0.9036432
Gráfica de tendencia
ggplot() + 
  geom_point(data = datos, aes(x = solido, y = oxigeno), colour='blue') +
  geom_line(aes( x = datos$solido, y = predict(modelo, datos)), color = "red") +
  xlab("Reducción de sólido") + 
  ylab("% Oxígeno") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

3.5 Predecir conforme al modelo
  • Para predecir se puede usar la ecuación y=a+bx o utilizar la función predict()
  • Predecir para valores 15,20,35,40,50
x <- c(15,20,35,40,50)

prediccion <- predict(object = modelo, newdata = data.frame(solido = x))
prediccion
##        1        2        3        4        5 
## 17.38428 21.90250 35.45715 39.97536 49.01179
y = a + b * x
y
## [1] 17.38428 21.90250 35.45715 39.97536 49.01179

Interpretacion del Caso

En este caso se hablo sobre la regresin lineal simple es la técnica más utilizada, es una forma que permite modelar una relación entre dos conjuntos de variables. El resultado es una ecuación que se puede utilizar para hacer proyecciones o estimaciones sobre los datos.

Hablamos entonces de regresión en el sentido de los mínimos cuadrados. Las diferencias entre los valores observados $ y_i$ y los valores que predice el modelo $ f(x_i)$, se llaman los residuos. Si el modelo se ajusta de manera tal que la serie de los residuos sea centrada (de media nula), entonces el error cuadrático $ EQ(f)$ es la varianza de los residuos. La regresión lineal consiste en buscar $ f$ entre las funciones afines. La solución se expresa de manera simple a partir de las carácterísticas de $ x$ e $ y$

En el ejercicio 1 habla sobre las ventas en cuanto a los comerciales y a un conjunto de datos en los cuales una empresa invierte dinero, en la variable se guarda desde la semana 1 hasta la 12, a la vez que se saca el valor de “x” el cual son los comerciales y la “y” son las ventas. Las cuales establecen que entre estas dos da un 0.9 y a partir de aqui se va a crear el modelo de regresion lineal el cual es y = a+bx y para poder sacar los que serian los coeficientes se utiliza lo que es la funcion lineal.

En el ejercicio 2 se hablo sobre la demanda del oxigeno y las medidas de los solidos y se hizo el valor de corelaccion entre el oxigeno y el solidos el cual dio un 0.95 a la vez de que tambien se obtuvo el coeficiente de determinacion el cual se eleva al cuadrado y de dio como resultado el 0.91 y de resultado dio un 91.3%.