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.

Librerias

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)  # Para gráficos
library(knitr)    # Para formateo de datos

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

2.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 = ventas~comerciales)

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

Encontrar el coeficiente de determinación 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: es igual al cuadrado del coeficiente de correlación: ", r^2)
## [1] "El coeficiente de determinación: 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='green') +
  geom_line(aes( x = datos$comerciales, y = predict(modelo, datos)), color = "yellow") +
  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
# Comprobar
y = a + b * x
y
## [1] 55.49402 53.07371 45.81275 36.13147 40.97211
  1. 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 = 'black')

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: es igual al cuadrado del coeficiente de correlación :", r^2)
## [1] "El coeficiente de determinación: 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

Grafica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = solido, y = oxigeno), colour='orange') +
  geom_line(aes( x = datos$solido, y = predict(modelo, datos)), color = "purple") +
  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 4,3.5,2.0,1

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
# Comprobar
y = a + b * x
y
## [1] 17.38428 21.90250 35.45715 39.97536 49.01179

Ejercicio 4. Caso de mediciones del cuerpo humano (Peso y Estatura) Mediciones del cuerpo humano en donde se buscar idntificar el coefieicnte de correlación r, el coeficiente de determinació r2 y el modelo de regresión lineal para predecir alturas en relación a el peso de una persona.

4.1. Cargar los datos La variable x independiente será la estatura La variable y dependiente será la peso

datos <- read.table("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/datos/body.dat.txt", quote="\"", comment.char="")

datos <- as.data.frame(datos)

colnames(datos)[23:25] <- c("peso", "estatura", "genero")

# Solo nos interesan las tres últimas columnas
datos <- select(datos, estatura, peso, genero)

kable(head(datos, 10), caption = "Datos de pesos y etaturas de personas")
Datos de pesos y etaturas de personas
estatura peso genero
174.0 65.6 1
175.3 71.8 1
193.5 80.7 1
186.5 72.6 1
187.2 78.8 1
181.5 74.8 1
184.0 86.4 1
184.5 78.4 1
175.0 62.0 1
184.0 81.6 1

4.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 valores de estatura y ‘y’ el peso.

r <- cor(datos$estatura, datos$peso)
r
## [1] 0.7173011

El coefiente de correlación con valor de 0.7173011 significa el grado de relación entre las variables y su valor se interpreta siendo $ r ≥ 0.75 = $ correlación positiva considerable (Hernández Sampieri et al., 2014).

4.3. Gráfica de dispersión

ggplot(data = datos, aes(x = estatura, y = peso)) +
  geom_point(colour = 'grey')

4.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 = peso~estatura)

modelo
## 
## Call:
## lm(formula = peso ~ estatura, data = datos)
## 
## Coefficients:
## (Intercept)     estatura  
##    -105.011        1.018

Encontrar el coeficiente de determinación r2

summary(modelo)
## 
## Call:
## lm(formula = peso ~ estatura, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.743  -6.402  -1.231   5.059  41.103 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -105.01125    7.53941  -13.93   <2e-16 ***
## estatura       1.01762    0.04399   23.14   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 9.308 on 505 degrees of freedom
## Multiple R-squared:  0.5145, Adjusted R-squared:  0.5136 
## F-statistic: 535.2 on 1 and 505 DF,  p-value: < 2.2e-16
paste("El coeficiente de determinación: es igual al cuadrado del coeficiente de correlación :", r^2)
## [1] "El coeficiente de determinación: es igual al cuadrado del coeficiente de correlación : 0.514520837538849"

El coeficiente de determinación r2 con valor de 0.5145 significa que el valor de la estatura de una persona representa el 51.45 % del peso de la misma. Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##   -105.0113
## estatura 
## 1.017617

Grafica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = estatura, y = peso), colour='pink') +
  geom_line(aes( x = datos$estatura, y = predict(modelo, datos)), color = "red") +
  xlab("Estarura") + 
  ylab("Peso") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

4.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(150, 160, 170, 175, 185, 190)

prediccion <- predict(object = modelo, newdata = data.frame(estatura = x))
prediccion
##        1        2        3        4        5        6 
## 47.63126 57.80743 67.98360 73.07168 83.24785 88.33593
# Comprobar
y = a + b * x
y
## [1] 47.63126 57.80743 67.98360 73.07168 83.24785 88.33593

INTERPRETACION DEL EJERCICIO

De que trata el ejercicio? El primer ejercicio nos da la informacion que es una empresa la cual invierte en publicidad por medio de los comerciales y tienen un historial de ventas que consta de 12 semanas, el segundo ejercicio trata de la contaminacion del agua y nos dice que de esto se encarga una industria dedicada a la peleteria y los valores de correlacion entre el solido y el oxigeno que nos da un porcentaje del o.95%.El tercer ejercicio es sobre el cuerpo humano donde tenemos que buscar los valores de correlacion r y r2, tambien el modelo de regresion lineal para alturas en relacion a una persona.

Que significado tienen las variables? El primer ejercicio son las semanas, comerciales y ventas En el segundo ejercicio son solido, oxigeno y seq En el tercer ejercicio son peso, estatura y genero

Cual es el valor del coeficiente de correlacion y que representa? En el primer ejercicio el valor es 0.9006, esto siginifica la relacion entre las ventas con los comerciales. En el segundo ejercicio el valor es 0.9554, la relacion entre el solido y el porcentaje del oxigeno. En el ultimo ejercicio es 0.7173, en relacion a el peso y la estatura.

Que representan los coeficiente a y b en la ecuación de mínimos cuadrados? El 81.11% en el primer ejercicio de las ventas y el de determinacion a y b un 36.13147% y por ultimo los comerciales con un 4.8706%. En el segundo ejercicio el valor solido de oxigeno que es un 91.29% y la determinacion 3.8296% y el solido 0.9036% En el tercer ejercicio la estatura con un 51.45% y la determinacion es 105.0113% y la estatura 1.0176%.

Que valores existen en la prediccion? En el ejercicio 1 son: 55.49402 53.07371 45.81275 36.13147 40.97211. En el ejercicio 2 son: 17.38428 21.90250 35.45715 39.97536 49.01179. En el ejercicio 3 son: 47.63126 57.80743 67.98360 73.07168 83.24785 88.33593.

Referencias bibliográficas Amat Rodrigo, J. (2016). Correlación lineal y regresión lineal simple. Correlación lineal y regresión lineal simple. https://www.cienciadedatos.net/documentos/24_correlacion_y_regresion_lineal

Hernández Sampieri, R., Fernández Collado, C., & Baptista Lucio, M. del P. (2014). Metodología de la investigación (Sexta).

Lind, D., Marchal, W., & Wathen, S. (2015). Estadística aplicada a los negocios y la economía (Decimo Sexta). McGraw-Hill.

Walpole, R. E., Myers, R. H., & Myers, S. L. (2012). Probabilidad y estadística para ingeniería y ciencias (Novena Edición). Pearson.

Walpole, R. E., Myers, R. H., Myers, S. L., & Ye, K. (2007). Probabilidad y estadística para ingeniería y ciencias (Octava Edición). Pearson Education.