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(dplyr)
## 
## 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 object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## 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)
library(ggplot2)  
library(knitr)    

2 Ejercicios ventas en función de comerciales

2.1. Cargar o generar los datos

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

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

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

modelo
## 
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
## 
## Coefficients:
## (Intercept)  comerciales  
##      36.131        4.841

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

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

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

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

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"

**** 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

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 el caso 21 hablaremos sobre la Regresión Lineal Simple, el objetivo importante es Determinar predicciones de datos bajo el modelo de regresión lineal simple, y como en los casos anteriores explicare un poco a detalle con 2 ejercicios de regresión lineal simple.

Ejercicio 1: Este ejercicio trata sobre las ventas en función de comerciales y de un conjunto de datos para cualquier empresa que invierte dinero en comerciales se tiene un historial de ventas de doce semanas, en la variable de semanas se guarda el numero desde la semana 1 hasta la 12, en la de comerciales es la cantidad de comerciales por cada semana y en el de ventas es la cantidad de ventas que se hicieron por semana. Se saca también el valor de la correlación entre “x” que son los comerciales y “y” que son las ventas, se trata de la correlación de Pearson con la función cor(x,y) y la relación que establecen estas dos es del 0.9. Después crearemos el modelo de regresión lineal de Y=a+bx y para determinar los dos coeficientes a y b se utiliza la función lineal lm(), y el Coeficiente de correlación es del 36.131 y el de Comerciales es del 4.81, elevamos dichos coeficientes de correlación y el resultado es del 0.811, el coeficiente de determinación como fue 0.811 significa que el valor del solido es del 81.11% del oxígeno. Por ultimo hacemos una predicción, para hacer dicha predicción se utiliza la función predict() y tenemos que predecir los valores 4,3,5,2,0,1.

Ejercicio 2: En el ejercicio 2 es sobre las medidas de los solidos y la demanda de oxígeno químico, que es específicamente sobre empresas que contaminan el agua. Y el valor de correlación entre el solido y el oxigeno es del 0.95, y sobre el modelo de regresión lineal que ya mencionamos anteriormente sobre el coeficiente de correlación ahora es del 3.8296 y del solido es del 0.90, para encontrar el coeficiente de determinación se eleva al cuadrado el de correlación y el resultado es del 0.9129, el coeficiente de determinación, tomando en cuenta que el resultado del de determinación que fue de 0.9129, eso quiere decir que el valor del solido representa el 91.29% de oxígeno. Ya por último predecimos los valores de 15,20,35,40,50 para comprobar.