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 crece del eje y * b es el valor de la pendiente o inclinacion * x el valor de la variable independiente.

1. Cargar Librerías.

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

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 = 'red')

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.

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 r2 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='red') +
  geom_line(aes( x = datos$comerciales, y = predict(modelo, datos)), color = "black") +
  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 = 'orange')

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='red') +
  geom_line(aes( x = datos$solido, y = predict(modelo, datos)), color = "black") +
  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

Lo visto anteriormente fué el caso 21 en el que se habla sobre la Regresión Lineal Simple, lo que se trata es determinar predicciones de datos bajo el modelo de regresión lineal simple,lo cual trata de explicarse con los 2 problemas siguientes:

Primer problema: Este ejercicio habla sobre las ventas en función de comerciales y 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,que se trata de la correlación de Pearson con la función cor(x,y) y la relación que establecen las dos es del 0.9. Después se crea 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(), el coeficiente de correlación es del 36.131 y el de Comerciales es del 4.81, se elevan los coeficientes de correlación y el resultado es del 0.811, el coeficiente de determinación fue 0.811, lo cual significa que el valor del solido es del 81.11% del oxígeno. Finalmente se hace una predicción, para hacerla se utiliza la función predict() y tenemos que predecir los valores 4,3,5,2,0,1.

Segundo problema: En el siguiente ejercicio se observan las medidas de los solidos y la demanda de oxígeno químico, que es especialmente sobre empresas que contaminan el agua, y, el valor de correlación entre el solido y el oxigeno es del 0.95, al igual que sobre el modelo de regresión lineal ya mencionado 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 elevó al cuadrado el de correlación y el resultado es del 0.9129, el coeficiente de determinación sabiendo que el resultado de determinación que fue de 0.9129, significa que el valor del solido representa el 91.29% de oxígeno y finalmente se predicen los valores de 15,20,35,40,50 para la comprobación.