1 Objetivo

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

2 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.

3 Fundamento teórico

3.1 Coeficiente de Correlación \(r\)

La utilidad principal de los análisis correlacionales es saber cómo se puede comportar un concepto o una variable al conocer el comportamiento de otras variables vinculadas, por ejemplo: a mayor estudio mejor rendimiento; a mayor cantidad de sol mayor temperatura de ambiente; a mayor frecuencia de actividad social mayor porcentaje de contagios, entre muchos otros [@hernandez_sampieri_metodologiinvestigacion_2014].

La importancia de la correlación es conocer el grdo de relación entre variables y ayuda a las técnicas de predicción, es decir, intentar predecir el valor aproximado que tendrá un grupo de individuos o casos en una variable, a partir del valor que poseen en las variables relacionadas [@hernandez_sampieri_metodologiinvestigacion_2014].

La correlacion puede ser positiva o negativa de entre \(-1\) a \(1\) y significa que el coeficiente r de Pearson puede variar de −1.00 a +1.00, donde:

−1.00 = correlación negativa perfecta. (“A mayor X, menor Y”, de manera proporcional. Es decir, cada vez que X aumenta una unidad, Y disminuye siempre una cantidad constante). Esto también se aplica “a menor X, mayor Y”.

  • −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 neg ativa 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).

El signo indica la dirección de la correlación (positiva o negativa); y el valor numérico, la magnitud de la correlación [@hernandez_sampieri_metodologiinvestigacion_2014].

Por otra parte [@walpole_probabilidad_2012], menciona que el análisis de correlación intenta medir la intensidad de tales relaciones entre dos variables por medio de un solo número denominado coeficiente de correlación.

Para determinar el coeficiente de correlación de Pearson de una muestra se utiliza la siguiente fórmula:

3.1.1 Fórmula para correlación de Pearson

\[r = \frac{\sum_{i=1}^{n}(x_i - \bar{x})\cdot(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^{2}\cdot\sum_{i=1}^{n}(y_i - \bar{y})^{2}}}\]

Siendo \(r\) el valor del coeficiente de correlación. La correlación de Pearson funciona bien con variables cuantitativas que tienen una distribución normal. [@amat_rodrigo_correlacion_2016]

La idea básica del análisis de correlación es identificar la asociación entre dos variables; por lo general, se puede describir la relación graficando o elaborando un diagrama de dispersión entre \(x\) y \(y\).

3.2 Regresión lineal simple

La regresión lineal simple implica aplicar una ecuación matemática de mínimos cuadrados que permite pronosticar o predecir el valor de una variable con base en el valor de otra; este procedimiento se llama análisis de regresión.

El análisis de regresión es un método para examinar una relación lineal entre dos variables; se utiliza el concepto de correlación \(r\), sin embargo, la regresión proporciona mucho más información, además de permitir estimaciones o predicciones de la relación lineal con la ecuación de mínimos cuadrados [@lind_estadistica_2015].

3.3 Fórmula de mínimo cuadrados para regresión lineal

\[Y = a + bx\]

En donde:

  • \(Y\) es el valor a predecir
  • \(a\) Es el valor del cruce del eje y
  • \(b\) Es el valor de la pendiente o inclinación.
  • \(x\) el valor de la variable independiente
3.3.0.0.1 Fórmulas par obtener coeficientes a y b en el método de mínimos cuadrados

\[b = r \cdot(\frac{ s_{y}}{s_x}) = \frac{\sum(x_i - \bar{x})\cdot(y_i - \bar{y})}{\sum(x_i-\bar{x})^2}\] En donde:

  • \(r\) es el coeficiente de correlación.

  • \(S_y\) es la desviación estándar de \(y\).

  • \(S_x\) es la desviación etándar de la variable \(x\).

Y para determinar a:

\[a = \bar{y} - b \cdot\bar{x}\]

  • Se requiere la media de y \(\bar{y}\)
  • Se necesita la media de x \(\bar{x}\)

[@lind_estadistica_2015].

Un valor que es importante destacar en la regresión lineal, es el coeficiente de determinación también representado por \(r^{2}\) que se puede sacar elevando al cuadrado el coeficiente de correlación previamente determinado.

Cuando el coeficiente \(r\) de Pearson se eleva al cuadrado \(r^{2}\), se obtiene el coeficiente de determinación y el resultado indica la variabilidad de factores comunes. Esto es, el porcentaje de la variación de una variable debido a la variación de la otra variable y viceversa (o cuánto explica o determina una variable la variación de la otra) [@hernandez_sampieri_metodologiinvestigacion_2014].

El coeficiente de determinación es la proporción y la explicación de la variación total de la variable dependiente \(y\) con respecto a la variable independiente \(x\). [@lind_estadistica_2015].

4 Desarrollo

4.1 Las librerías

library(dplyr)
library(mosaic)
library(readr)
library(ggplot2)  # Para gráficos
library(knitr)    # Para formateo de datos

4.2 Ejercicio llamadas y ventas

4.2.1 Cargar los datos

Datos de llamadas que hacen vendedores y las ventas que realizan.

vendedores <- paste("V",1:15, sep="")
llamadas <- c(96, 40, 104, 128, 164, 76, 72, 80 , 36, 84, 180, 132, 120, 44, 84) 
ventas <- c(41, 41, 51, 60, 61, 29, 39, 50, 28, 43, 70, 56, 45, 31, 30)
datos <- data.frame(vendedores, llamadas, ventas)
datos
##    vendedores llamadas ventas
## 1          V1       96     41
## 2          V2       40     41
## 3          V3      104     51
## 4          V4      128     60
## 5          V5      164     61
## 6          V6       76     29
## 7          V7       72     39
## 8          V8       80     50
## 9          V9       36     28
## 10        V10       84     43
## 11        V11      180     70
## 12        V12      132     56
## 13        V13      120     45
## 14        V14       44     31
## 15        V15       84     30

4.2.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 llamadas y ‘y’ las ventas.
r <- cor(datos$llamadas, datos$ventas)
r
## [1] 0.8646318

4.2.3 Gráfica de dispersión

ggplot(data = datos, aes(x = llamadas, y = ventas)) +
  geom_point(colour = 'blue')

4.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~llamadas)
modelo
## 
## Call:
## lm(formula = ventas ~ llamadas, data = datos)
## 
## Coefficients:
## (Intercept)     llamadas  
##     19.9800       0.2606

4.2.5 Encontrar el coeficiente de determinación

  • Elevando al cuadrado el coeficiente de correlación. \[r^{2}\]
summary(modelo)
## 
## Call:
## lm(formula = ventas ~ llamadas, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -11.873  -2.861   0.255   3.511  10.595 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  19.9800     4.3897   4.552 0.000544 ***
## llamadas      0.2606     0.0420   6.205 3.19e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.72 on 13 degrees of freedom
## Multiple R-squared:  0.7476, Adjusted R-squared:  0.7282 
## F-statistic:  38.5 on 1 and 13 DF,  p-value: 3.193e-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.747588134135855"
  • El coeficiente de determinación \(r^{2}\) con valor de 0.7476 significa que el valor de llamadas representa y explica el 74.76 % de las ventas.

4.2.6 Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##       19.98
## llamadas 
## 0.260625

4.2.7 Medias de las variables

mean(datos$llamadas)
## [1] 96
mean(datos$ventas)
## [1] 45

4.2.8 Gráfica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = llamadas, y = ventas), colour='blue') +
  geom_point(aes(x= mean(datos$llamadas), y = mean(datos$ventas)), col = 'green') +
  geom_line(aes( x = datos$llamadas, y = predict(modelo, datos)), color = "red") +
  xlab("Llamadas") + 
  ylab("Ventas") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

4.2.9 Predecir conforme al modelo

  • Para predecir se puede usar la ecuación \(y=a+bx\) o utilizar la función predict()
  • Predecir para valores 100, 130 y 160
x <- c(100, 130, 160)
prediccion <- predict(object = modelo, newdata = data.frame(llamadas = x))
prediccion
##        1        2        3 
## 46.04250 53.86125 61.68000
# Comprobar
y = a + b * x
y
## [1] 46.04250 53.86125 61.68000

4.2.10 Interpretar el ejercicio

  • Se utilizó la función lm() para crear el modelo de regresión lineal y determinar los coeficientes de \(a\) y \(b\).
  • Se utilizó la función predict() para predecir nuevos valores de x o ventas.
  • Se comprobó las predicciones
  • Para un valor de 170 el valor de la predicción es 64.28 en ventas

4.3 Ejercicio ventas en función de comerciales

4.3.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

4.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 comerciales y ‘y’ las ventas.
r <- cor(datos$comerciales, datos$ventas)
r
## [1] 0.9006177

4.3.3 Gráfica de dispersión

ggplot(data = datos, aes(x = comerciales, y = ventas)) +
  geom_point(colour = 'blue')

4.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 = ventas~comerciales)
modelo
## 
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
## 
## Coefficients:
## (Intercept)  comerciales  
##      36.131        4.841

4.3.5 Encontrar el coeficiente de determinación

  • 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 comerciales representa el 81.11 % de las ventas.

4.3.6 Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##    36.13147
## comerciales 
##    4.840637

4.3.7 Medias de las variables

mean(datos$comerciales)
## [1] 2.916667
mean(datos$ventas)
## [1] 50.25

4.3.8 Gráfica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = comerciales, y = ventas), colour='blue') +
  geom_point(aes(x= mean(datos$comerciales), y = mean(datos$ventas)), col = 'green') +
  geom_line(aes( x = datos$comerciales, y = predict(modelo, datos)), color = "red") +
  xlab("Comerciales") + 
  ylab("Ventas") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

4.3.9 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 y 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

4.3.10 Interpretar el ejercicio

  • Se utilizó la función lm() para crear el modelo de regresión lineal y determinar los coeficientes de a y b.
  • Se utilizó la función predict() para predecir nuevos valores de x o comerciales.
  • Se comprobó las predicciones
  • Por ejemplo para un valor de 4 en comerciales la predicción de ventas es de 55.99.

4.4 Ejercicio. Medidas de los sólidos contaminantes y la demanda de oxígeno bioquí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_probabilidad_2007]

Tal vez si existen contaminantes sólidos se requiera mayor oxígeno bioquímico.

4.4.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 sólidos contaminantes")
Contaminante oxígeno en función de sólidos contaminantes
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

4.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 sólido y ‘y’ el porcentaje de oxígeno.
r <- cor(datos$solido, datos$oxigeno)
r
## [1] 0.9554794

4.4.3 Gráfica de dispersión

ggplot(data = datos, aes(x = solido, y = oxigeno)) +
  geom_point(colour = 'blue')

4.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 = oxigeno~solido)
modelo
## 
## Call:
## lm(formula = oxigeno ~ solido, data = datos)
## 
## Coefficients:
## (Intercept)       solido  
##      3.8296       0.9036

4.4.5 Encontrar el coeficiente de determinación \(r^{2}\)

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 \(r^{2}\) con valor de 0.9129 significa que el valor de solido representa el 91.29 % del oxígeno.

4.4.6 Determinar los valores de a y b

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##    3.829633
##    solido 
## 0.9036432

4.4.7 Medias de las variables

mean(datos$solido)
## [1] 33.45455
mean(datos$oxigeno)
## [1] 34.06061

4.4.8 Gráfica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = solido, y = oxigeno), colour='blue') +
  geom_point(aes(x= mean(datos$solido), y = mean(datos$oxigeno)), col = 'green') +
  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")

4.4.9 Predecir conforme al modelo

  • Para predecir se puede usar la ecuación \(y=a+bx\) o utilizar la función predict()
  • Predecir para valores \(x=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
# Comprobar
y = a + b * x
y
## [1] 17.38428 21.90250 35.45715 39.97536 49.01179

4.4.10 Interpretar el ejercicio

  • Se utilizó la función lm() para crear el modelo de regresión lineal y determinar los coeficientes de a y b.

  • Se utilizó la función predict() para predecir nuevos valores de x o solido.

  • Se comprobó las predicciones

  • Por ejemplo para el valor elevado de un solido volatil de un producto el solido es de un 40 entonces la predicción de demanda del mismo solido en el producto es de un 39.97.

4.5 Ejercicio Caso de mediciones del cuerpo humano (Peso y Estatura)

Mediciones del cuerpo humano en donde se buscar identificar el coeficiente de correlación \(r\), el coeficiente de determinación \(r^2\) y el modelo de regresión lineal para predecir peso en relación a la estatura de una persona.

4.5.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)

4.5.2 Estructura de los datos

Son 507 observaciones y 25 variables. Se identifican todas las variables de datos. Las variables de interés son las variables numéricas (columnas 23 y 24) y la columna 25 de género solo para ubicar género Masculino (1) o Femenino (2).

str(datos)
## 'data.frame':    507 obs. of  25 variables:
##  $ V1 : num  42.9 43.7 40.1 44.3 42.5 43.3 43.5 44.4 43.5 42 ...
##  $ V2 : num  26 28.5 28.2 29.9 29.9 27 30 29.8 26.5 28 ...
##  $ V3 : num  31.5 33.5 33.3 34 34 31.5 34 33.2 32.1 34 ...
##  $ V4 : num  17.7 16.9 20.9 18.4 21.5 19.6 21.9 21.8 15.5 22.5 ...
##  $ V5 : num  28 30.8 31.7 28.2 29.4 31.3 31.7 28.8 27.5 28 ...
##  $ V6 : num  13.1 14 13.9 13.9 15.2 14 16.1 15.1 14.1 15.6 ...
##  $ V7 : num  10.4 11.8 10.9 11.2 11.6 11.5 12.5 11.9 11.2 12 ...
##  $ V8 : num  18.8 20.6 19.7 20.9 20.7 18.8 20.8 21 18.9 21.1 ...
##  $ V9 : num  14.1 15.1 14.1 15 14.9 13.9 15.6 14.6 13.2 15 ...
##  $ V10: num  106 110 115 104 108 ...
##  $ V11: num  89.5 97 97.5 97 97.5 ...
##  $ V12: num  71.5 79 83.2 77.8 80 82.5 82 76.8 68.5 77.5 ...
##  $ V13: num  74.5 86.5 82.9 78.8 82.5 80.1 84 80.5 69 81.5 ...
##  $ V14: num  93.5 94.8 95 94 98.5 95.3 101 98 89.5 99.8 ...
##  $ V15: num  51.5 51.5 57.3 53 55.4 57.5 60.9 56 50 59.8 ...
##  $ V16: num  32.5 34.4 33.4 31 32 33 42.4 34.1 33 36.5 ...
##  $ V17: num  26 28 28.8 26.2 28.4 28 32.3 28 26 29.2 ...
##  $ V18: num  34.5 36.5 37 37 37.7 36.6 40.1 39.2 35.5 38.3 ...
##  $ V19: num  36.5 37.5 37.3 34.8 38.6 36.1 40.3 36.7 35 38.6 ...
##  $ V20: num  23.5 24.5 21.9 23 24.4 23.5 23.6 22.5 22 22.2 ...
##  $ V21: num  16.5 17 16.9 16.6 18 16.9 18.8 18 16.5 16.9 ...
##  $ V22: num  21 23 28 23 22 21 26 27 23 21 ...
##  $ V23: num  65.6 71.8 80.7 72.6 78.8 74.8 86.4 78.4 62 81.6 ...
##  $ V24: num  174 175 194 186 187 ...
##  $ V25: int  1 1 1 1 1 1 1 1 1 1 ...

4.5.3 Selección de variables de interés

Se seleccionan las columnas que tienen valores de peso en kilogramso y estaturas en centímetros de personas así como el género, Se muestran los primeros 10 y últimos 10 registros.

colnames(datos)[23:25] <- c("peso", "estatura", "genero")
# Solo interesan las tres últimas columnas
datos <- select(datos, estatura, peso, genero)
kable(head(datos, 10), caption = "Datos de pesos y estaturas de personas")
Datos de pesos y estaturas 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
kable(tail(datos, 10), caption = "Datos de pesos y estaturas de personas")
Datos de pesos y estaturas de personas
estatura peso genero
498 169.5 67.3 0
499 160.0 75.5 0
500 172.7 68.2 0
501 162.6 61.4 0
502 157.5 76.8 0
503 176.5 71.8 0
504 164.4 55.5 0
505 160.7 48.6 0
506 174.0 66.4 0
507 163.8 67.3 0

4.5.4 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\) estatura y \(y\) peso de una persona.
r <- cor(datos$estatura, datos$peso)
r
## [1] 0.7173011
  • El coeficiente de correlación con valor de 0.7173011 significa el grado de relación entre las variables y su valor se interpreta siendo \(0.50 \le r \le 0.75\) una correlación positiva de media a considerable [@hernandez_sampieri_metodologiinvestigacion_2014].

4.5.5 Gráfica de dispersión

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

4.5.6 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

4.5.7 Encontrar el coeficiente de determinación \(r^{2}\)

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 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.514520837538849"
  • El coeficiente de determinación \(r^{2}\) con valor de 0.5145 significa que el valor de la estatura de una persona representa el 51.45 % del peso de la misma.

4.5.8 Determinar los valores de a y b

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

4.5.9 Medias de las variables

mean(datos$estatura)
## [1] 171.1438
mean(datos$peso)
## [1] 69.14753

4.5.10 Gráfica de tendencia

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

4.5.11 Predecir conforme al modelo

  • Para predecir se puede usar la ecuación \(y=a+bx\) o utilizar la función predict()
  • Predecir para valores \(x = {150, 160, 170, 175, 185, 190}\)
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

4.5.12 Interpretar el ejercicio

Conforme a los datos obtenido de una muestra de mediciones del cuerpo humano en relación las variables independiente estatura y la variable dependiente el peso. Se concluye lo siguiente:

El valor de la correlación entre las variables estatura y peso es de 0.7173011 que significa y se interpreta como una correlación positiva considerable.

El valor del coeficiente determinación \(r^{2}\) significa que el valor de la estatura de una persona representa el 51.45 % del peso de la misma.

Por cada unidad de estatura en una persona el peso varía en funcíón de 1.0176168

Para una persona que mide 170 centímetros la prediccón de peso es de 67.9835977

Para una persona que mide 185 centímetros la predicción de peso es de 83.2478493

4.6 Ejercicio extra con los datos del caso 22 y 23

4.6.1 Cargar o construir los datos

Para este ejercicio se Usaran los datos Anteriores que fueron el Coeficiente Intelectual del Grupo A y su Calificaciones de la materia de Historia.

alumnos <- paste("A",1:100, sep="")
GrupoA <- c(45, 45, 46, 47, 48, 49, 50, 50, 51, 52, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 61, 62, 62, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 83, 84, 84, 85, 86, 87, 87, 88, 89, 89, 90, 91, 92, 93, 94, 95, 95, 96, 97, 98, 99, 99, 100, 100, 101, 102, 103, 104, 105, 106, 107, 107, 108, 108, 109, 109, 110, 111, 111, 112, 113, 114, 114, 115, 116, 116, 117, 118, 119, 119, 120, 121, 122, 123)

Historia<- c(0, 1, 1, 2, 1.3, 2, 2.5, 2, 3, 3.1, 0, 4, 3.5, 3.9, 4.3, 4.7, 2, 1.9, 0, 3.7, 4, 4, 4.2, 3, 4.5, 4, 4.8, 4, 5, 5, 5.4, 5.5, 5.3, 5.5, 5, 5.8, 5.9, 6.4, 6, 7.1, 6.1, 6.2, 6.2, 6, 4, 6, 6.5, 7, 6.8, 0, 6, 6.9, 7, 7.1, 7.1, 7.8, 8, 0, 7, 7.5, 7.9, 8.8, 7.9, 8.7, 8, 8.3, 8.8, 8.6, 8, 8.5, 8.2, 8.7, 8, 9, 8.9, 7.7, 1, 8.9, 9, 9.1, 9.3, 9, 9, 9, 9.4, 10, 9.3, 9.5, 9.9, 10, 9.8, 8, 7.9, 9.5, 8.8, 8.5, 9.5, 10, 10, 9.5)

datos <- data.frame(alumnos, GrupoA, Historia)
datos
##     alumnos GrupoA Historia
## 1        A1     45      0.0
## 2        A2     45      1.0
## 3        A3     46      1.0
## 4        A4     47      2.0
## 5        A5     48      1.3
## 6        A6     49      2.0
## 7        A7     50      2.5
## 8        A8     50      2.0
## 9        A9     51      3.0
## 10      A10     52      3.1
## 11      A11     52      0.0
## 12      A12     53      4.0
## 13      A13     54      3.5
## 14      A14     55      3.9
## 15      A15     56      4.3
## 16      A16     56      4.7
## 17      A17     57      2.0
## 18      A18     58      1.9
## 19      A19     59      0.0
## 20      A20     60      3.7
## 21      A21     61      4.0
## 22      A22     61      4.0
## 23      A23     62      4.2
## 24      A24     62      3.0
## 25      A25     63      4.5
## 26      A26     64      4.0
## 27      A27     65      4.8
## 28      A28     66      4.0
## 29      A29     67      5.0
## 30      A30     68      5.0
## 31      A31     68      5.4
## 32      A32     69      5.5
## 33      A33     70      5.3
## 34      A34     71      5.5
## 35      A35     72      5.0
## 36      A36     73      5.8
## 37      A37     74      5.9
## 38      A38     75      6.4
## 39      A39     76      6.0
## 40      A40     77      7.1
## 41      A41     78      6.1
## 42      A42     79      6.2
## 43      A43     80      6.2
## 44      A44     81      6.0
## 45      A45     82      4.0
## 46      A46     83      6.0
## 47      A47     83      6.5
## 48      A48     84      7.0
## 49      A49     84      6.8
## 50      A50     85      0.0
## 51      A51     86      6.0
## 52      A52     87      6.9
## 53      A53     87      7.0
## 54      A54     88      7.1
## 55      A55     89      7.1
## 56      A56     89      7.8
## 57      A57     90      8.0
## 58      A58     91      0.0
## 59      A59     92      7.0
## 60      A60     93      7.5
## 61      A61     94      7.9
## 62      A62     95      8.8
## 63      A63     95      7.9
## 64      A64     96      8.7
## 65      A65     97      8.0
## 66      A66     98      8.3
## 67      A67     99      8.8
## 68      A68     99      8.6
## 69      A69    100      8.0
## 70      A70    100      8.5
## 71      A71    101      8.2
## 72      A72    102      8.7
## 73      A73    103      8.0
## 74      A74    104      9.0
## 75      A75    105      8.9
## 76      A76    106      7.7
## 77      A77    107      1.0
## 78      A78    107      8.9
## 79      A79    108      9.0
## 80      A80    108      9.1
## 81      A81    109      9.3
## 82      A82    109      9.0
## 83      A83    110      9.0
## 84      A84    111      9.0
## 85      A85    111      9.4
## 86      A86    112     10.0
## 87      A87    113      9.3
## 88      A88    114      9.5
## 89      A89    114      9.9
## 90      A90    115     10.0
## 91      A91    116      9.8
## 92      A92    116      8.0
## 93      A93    117      7.9
## 94      A94    118      9.5
## 95      A95    119      8.8
## 96      A96    119      8.5
## 97      A97    120      9.5
## 98      A98    121     10.0
## 99      A99    122     10.0
## 100    A100    123      9.5

4.6.2 Valor de correlación entre las variables

Determinar la correlación de Pearson con la función cor(x,y) que establece el grado de relación entre dos variables; \(x\) e \(y\).

r <- cor(x = GrupoA, y = Historia)
r
## [1] 0.8511837

4.6.3 Gráfica de dispersión

ggplot(data = datos, aes(x = Historia, y = GrupoA)) +
  geom_point(color = 'green')

4.6.4 Construir el modelo regresión lineal \(Y = a + bx\)

modelo <- lm(data = datos, formula = GrupoA~Historia)
modelo
## 
## Call:
## lm(formula = GrupoA ~ Historia, data = datos)
## 
## Coefficients:
## (Intercept)     Historia  
##      42.341        6.875

4.6.5 Encontrar el coeficiente de determinación

\(r^{2}\)

summary(modelo)
## 
## Call:
## lm(formula = GrupoA ~ Historia, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.652  -7.792  -2.526   3.819  57.784 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  42.3413     2.8967   14.62   <2e-16 ***
## Historia      6.8746     0.4282   16.05   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.21 on 98 degrees of freedom
## Multiple R-squared:  0.7245, Adjusted R-squared:  0.7217 
## F-statistic: 257.7 on 1 and 98 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.724513765345862"
  • El coeficiente de determinación \(r^{2}\) con valor de 0.7245 significa que el valor del coeficiente de los alumnos del Grupo A representa y explica el 72.45 % de las Calificaciones de Historia.

4.6.6 Determinar los valores de a y b

¿Cuáles son los valores de \(a\) y \(b\) en la ecuación de mínimos cuadrados? \(Y = a + b\cdot x\)

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept) 
##    42.34131
## Historia 
## 6.874583

4.6.7 Medidas de Variables

mean(datos$GrupoA)
## [1] 84.51
mean(datos$Historia)
## [1] 6.134

4.6.8 Gráfica de tendencia

ggplot() + 
  geom_point(data = datos, aes(x = Historia, y = GrupoA), color='green') +
  geom_point(aes(x= mean(datos$Historia), y = mean(datos$GrupoA)), col = 'blue') +
  geom_line(aes( x = datos$Historia, y = predict(modelo, datos)), color = "red") +
  xlab("Historia") + 
  ylab("Grupo A") + 
  ggtitle("Linea de tendencia sobre Conjunto de Datos")

4.6.9 Predecir conforme al modelo

Predecir conforme a valores nuevos con la función predict() y verificar manualmente.

x <- c(8, 1, 5, 7,9)

prediccion <- predict(object = modelo, newdata = data.frame(Historia = x))
prediccion
##         1         2         3         4         5 
##  97.33797  49.21589  76.71422  90.46339 104.21255
y = a + b * x
y
## [1]  97.33797  49.21589  76.71422  90.46339 104.21255

4.6.10 Interpretar el ejercicio

  • Se utilizó la función lm() para crear el modelo de regresión lineal y determinar los coeficientes de aa y bb.

  • Se utilizó la función predict() para predecir nuevos valores de x o del GrupoA.

  • Se comprobó las predicciones

  • Por ejemplo para que un Alumno apruebe la Materia con una Calificacion de 7.0 en Historia la predicción de aprobacion es de un 90.46.

5 Interpretación

En este caso volvemos a retomar los conceptos del Coeficiente de Correlación de dos variables y el coeficiente de determinación, que se aproxima el cuanto del valor de la variable independiente representa del valor de la variable dependiente. También se presentaron algunos conceptos de regresión lineal simple, la cual esta consiste en predecir el valor de la variable dependiente mediante el valor de la variable independiente, de forma matemática, la cual se representa como una recta en el diagrama de dispersión de variables.

La formula de la recta-Pendiente es: Y = a + bX . Es por la cual que se pueden hacer predicciones de las variables del caso en que se requiera hacer predicciones.