Determinar predicciones de datos bajo el modelo de regresión lineal simple.
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.
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 grado 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 correlación 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”.
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:
\[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\).
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].
\[Y = a + bx\]
En donde:
\[ b = r \cdot(\frac{ s_{y}}{s_x}) = r \cdot \frac{\sqrt{ \frac{\sum_{i=1}^n(y_i- \bar{y})^2}{n-1}}} {\sqrt{ \frac{\sum_{i=1}^n(x_i- \bar{x})^2}{n-1}}} \]
En donde:
\(r\) es el coeficiente de correlación.
\(S_y\) es la desviación estándar de \(y\). \(\text {es el denominador}\)
\(S_x\) es la desviación estándar de la variable \(x\). \(\text{es el numerador}\)
Y para determinar a:
\[a = \bar{y} - b \cdot\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].
library(dplyr)
library(mosaic)
library(readr)
library(ggplot2) # Para gráficos
library(knitr) # Para formateo de 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
r <- cor(datos$llamadas, datos$ventas)
r
## [1] 0.8646318
ggplot(data = datos, aes(x = llamadas, y = ventas)) +
geom_point(colour = 'blue')
modelo <- lm(data = datos, formula = ventas~llamadas)
modelo
##
## Call:
## lm(formula = ventas ~ llamadas, data = datos)
##
## Coefficients:
## (Intercept) llamadas
## 19.9800 0.2606
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"
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept)
## 19.98
## llamadas
## 0.260625
mean(datos$llamadas)
## [1] 96
mean(datos$ventas)
## [1] 45
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")
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

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")
| 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 |
r <- cor(datos$comerciales, datos$ventas)
r
## [1] 0.9006177
ggplot(data = datos, aes(x = comerciales, y = ventas)) +
geom_point(colour = 'blue')
modelo <- lm(data = datos, formula = ventas~comerciales)
modelo
##
## Call:
## lm(formula = ventas ~ comerciales, data = datos)
##
## Coefficients:
## (Intercept) comerciales
## 36.131 4.841
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"
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept)
## 36.13147
## comerciales
## 4.840637
mean(datos$comerciales)
## [1] 2.916667
mean(datos$ventas)
## [1] 50.25
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")
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

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.
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")
| 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 |
r <- cor(datos$solido, datos$oxigeno)
r
## [1] 0.9554794
ggplot(data = datos, aes(x = solido, y = oxigeno)) +
geom_point(colour = 'blue')
modelo <- lm(data = datos, formula = oxigeno~solido)
modelo
##
## Call:
## lm(formula = oxigeno ~ solido, data = datos)
##
## Coefficients:
## (Intercept) solido
## 3.8296 0.9036
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"
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept)
## 3.829633
## solido
## 0.9036432
mean(datos$solido)
## [1] 33.45455
mean(datos$oxigeno)
## [1] 34.06061
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")
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
Pendiente..

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.
datos <- read.table("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/body.dat.txt", quote="\"", comment.char="")
datos <- as.data.frame(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 ...
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")
| 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")
| 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 |
r <- cor(datos$estatura, datos$peso)
r
## [1] 0.7173011
ggplot(data = datos, aes(x = estatura, y = peso)) +
geom_point(colour = 'blue')
modelo <- lm(data = datos, formula = peso~estatura)
modelo
##
## Call:
## lm(formula = peso ~ estatura, data = datos)
##
## Coefficients:
## (Intercept) estatura
## -105.011 1.018
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"
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a ; b
## (Intercept)
## -105.0113
## estatura
## 1.017617
mean(datos$estatura)
## [1] 171.1438
mean(datos$peso)
## [1] 69.14753
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")
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
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 función de 1.0176168
Para una persona que mide 170 centímetros la predicción de peso es de 67.9835977
Para una persona que mide 185 centímetros la predicción de peso es de 83.2478493

Con los datos de “https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/players_20.csv” datos de FIFA. Se seleccionan las dos variables numéricas de interés, height_cm y weight_kg; se modifican los nombres de variables a altura y peso.
Y con los datos de Universidades “https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/world%20ranking%20universities.csv” y las variables de interés numéricas *publications y rank.*
datos_fifa = read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/players_20.csv")
datos_uni = read.csv("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/datos/world%20ranking%20universities.csv")
Para cada conjunto de datos:
¿Cuál es la variable independiente y cuál la variable dependiente?
En los datos de FIFA la variabel estatura es la variable independiente y peso la variable dependiente; para los datos de las universidades la variable indepediente es publications y la variable dependiente es rank .
¿Cuál es la estructura de los datos?
Las variables de interes nos mostraran las estaturas de los jugadores además de otra variable de interés donde muestra los pesos de los mismos.
Para los dos conjuntos de datos y las dos variables de interés, 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\).
¿Cómo se interpreta el valor del coeficiente de correlación?
correlacion_fifa = cor(x = datos_fifa$height_cm, y = datos_fifa$weight_kg)
correlacion_fifa
## [1] 0.7688164
correlacion_uni = cor(x = datos_uni$publications, y = datos_uni$rank, use = "complete.obs")
correlacion_uni
## [1] -0.7706753
Construir la dispersión de las variables para ambos conjuntos de datos
#f_diag.dispersion(data.frame(Altura = datos_fifa$height_cm, Peso = datos_fifa$weight_kg))
#f_diag.dispersion(data.frame(Publicaciones = datos_uni$publications, Ranking = datos_uni$rank))
Construir el modelo de regresión lineal para ambos conjuntos de datos
Para FIFA:
modelo_fifa <- lm(data = datos_fifa, formula = weight_kg ~ height_cm)
summary(modelo_fifa)
##
## Call:
## lm(formula = weight_kg ~ height_cm, data = datos_fifa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18.580 -2.976 0.005 2.816 37.420
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -70.158351 0.895418 -78.35 <2e-16 ***
## height_cm 0.801902 0.004934 162.53 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.507 on 18276 degrees of freedom
## Multiple R-squared: 0.5911, Adjusted R-squared: 0.5911
## F-statistic: 2.642e+04 on 1 and 18276 DF, p-value: < 2.2e-16
Para Universidades:
modelo_uni <- lm(data = datos_uni, formula = rank ~ publications)
summary(modelo_uni)
##
## Call:
## lm(formula = rank ~ publications, data = datos_uni)
##
## Residuals:
## Min 1Q Median 3Q Max
## -74.780 -26.394 -6.428 25.514 155.202
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.834e+02 5.565e+00 32.97 <2e-16 ***
## publications -7.063e-04 4.161e-05 -16.98 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 36.79 on 197 degrees of freedom
## (101 observations deleted due to missingness)
## Multiple R-squared: 0.5939, Adjusted R-squared: 0.5919
## F-statistic: 288.2 on 1 and 197 DF, p-value: < 2.2e-16
\(r^{2}\)
¿Cuál es el valor y qué significa el coeficiente de determinación?
El coeficiente de determinación indica el grado de dependencia entre dos variables. Si el coeficiente de determinación es alto, significa que existe una fuerte relación entre las variables y que los cambios en una variable se reflejarán en cambios en la otra variable en cierta dirección. Por otro lado, si el coeficiente de determinación es bajo, significa que hay una menor dependencia entre las variables y que los cambios en una variable tienen poco efecto sobre la otra variable.
r² de los datos de los jugadores de FIFA.
r_sq.fifa = correlacion_fifa ^ 2
r_sq.fifa
## [1] 0.5910786r² de los datos de las universidades.
r_sq.univ = correlacion_uni ^ 2
r_sq.univ
## [1] 0.5939405¿Cuáles son los valores de \(a\) y \(b\) en la ecuación de mínimos cuadrados? \(Y = a + b\cdot x\) para ambos conjuntos de datos
Para jugadores de FIFA.
a <- modelo_fifa$coefficients[1]
b <- modelo_fifa$coefficients[2]
a; b
## (Intercept)
## -70.15835
## height_cm
## 0.801902Datos de las universidades.
a1 <- modelo_uni$coefficients[1]
b1 <- modelo_uni$coefficients[2]
a1; b1
## (Intercept)
## 183.4489
## publications
## -0.0007062753ggplot() +
geom_point(data = datos_fifa, aes(x = height_cm, y = weight_kg), colour='pink') +
geom_point(aes(x = mean(datos_fifa$height_cm), y = mean(datos_fifa$weight_kg)), col = 'black') +
geom_line(aes( x = datos_fifa$height_cm, y = predict(modelo_fifa, datos_fifa)), color = "darkcyan") +
xlab("Altura") +
ylab("Peso") +
ggtitle("Linea de tendencia sobre Conjunto de Datos Jugadores de FIFA")
ggplot() +
geom_point(data = datos_uni, aes(x = publications, y = rank), colour = 'blue') +
geom_point(aes(x = mean(datos_uni$publications), y = mean(datos_uni$rank)), col = 'green') +
geom_line(aes(x = datos_uni$publications, y = predict(modelo_uni, datos_uni)), color = "red") +
xlab("Publications") +
ylab("Rank") +
ggtitle("Linea de tendencia sobre Conjunto de Datos de las Universidades")
## Warning: Removed 101 rows containing missing values (`geom_point()`).
## Warning: Removed 1 rows containing missing values (`geom_point()`).
Predecir el pesos en kgs de los jugadores de fútbol conforme a valores nuevos con la función predict() y verificar manualmente.
Para el conjunto de datos de FIFA y las variables estatura y peso, ¿cuál será el peso de un jugador de Fútbol que tiene estatura 172, 175 y 180.
x = c(172, 175, 180)
prediccion = predict(object = modelo_fifa, newdata = data.frame(height_cm = x))
prediccion
## 1 2 3
## 67.76879 70.17450 74.18401
a <- modelo_fifa$coefficients[1]
b <- modelo_fifa$coefficients[2]
# Comprobar
y = a + b * x
y
## [1] 67.76879 70.17450 74.18401
Para el conjunto de datos de Universidades y las variables publications y rank ¿cual debiera ser la predicción para una cantidad de predicciones de una universidad que publica 70000, 90000, y 100000 artículos.
x = c(70000, 90000, 100000)
prediccion = predict(object = modelo_uni, newdata = data.frame(publications = x))
prediccion
## 1 2 3
## 134.0096 119.8841 112.8214
a <- modelo_uni$coefficients[1]
b <- modelo_uni$coefficients[2]
# Comprobar
y = a + b * x
y
## [1] 134.0096 119.8841 112.8214
En este ejercicio se analizaron diferentes conjuntos de datos, uno relacionado con las estaturas y pesos de jugadores de la FIFA, y otro relacionado con las publicaciones y el ranking de universidades. Se utilizaron gráficas de dispersión para visualizar la relación entre las variables, así como modelos de regresión lineal para predecir valores futuros.
Para el caso de las estaturas, se realizaron predicciones para estaturas de 170, 175 y 180, mientras que para las universidades se realizaron predicciones para publicaciones de 70000, 90000 y 100000. Estas predicciones se obtuvieron a partir de los modelos de regresión lineal ajustados a los datos.
En resumen, se realizaron análisis y predicciones utilizando gráficas de dispersión y modelos de regresión lineal para estudiar las relaciones entre las variables en los conjuntos de datos de estaturas de jugadores y publicaciones de universidades.
El caso se enfoca en la aplicación del modelo de regresión lineal simple para predecir valores de una variable dependiente (Y) utilizando una variable independiente (X). Se destaca la importancia del coeficiente de correlación (r) en el análisis de la relación entre variables. El coeficiente de correlación proporciona una medida de la fuerza y dirección de la relación, y puede variar de -1 a 1. Valores negativos indican una correlación negativa, mientras que valores positivos indican una correlación positiva.
En resumen, el caso explora cómo utilizar la regresión lineal simple para predecir variables dependientes a partir de variables independientes. También se resalta el significado y cálculo del coeficiente de correlación, así como el coeficiente de determinación.