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. #### Mi descripcion Veremos datos bejo el modelaod de regresion lineal simple, se veran demasiados puntos esta unidad numero 5, formula de person y su correlacion en el grado de relacion entre variables y ayuda en la tecnicas de prediccion tanto en datos como en graficas. El análisis de regresión es un método para examinar una relación lineal entre dos variables y muy util, uno de los puntos que veremos sera graficas de dispercion y modelos de regresion linel. #### Fundamento teórico 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 (Hernández Sampieri et al., 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 (Hernández Sampieri et al., 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 (Hernández Sampieri et al., 2014).
Por otra parte (Walpole et al., 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:
Fórmula para correlación de Pearson \(r=∑ni=1(xi−x¯)⋅(yi−y¯)∑ni=1(xi−x¯)2⋅∑ni=1(yi−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, 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 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 et al., 2015).
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 En donde r es el coeficiente de correlación. * σy es la desviaci´pn estándrd de la variable ‘y’. * σx es la desviación estándard de la variable ‘x’. \(a=y¯−b⋅x¯\) ºSe requiere la media de y y¯ ºSe necesita la meda de x x¯ (Lind et al., 2015).
Un valor que es importante destacar en la regresión lineal, es el coeficiente de determinación también representado por r2 que se puede sacar elevando al cuadrado el coeficiente de correlación previamente determinado.
Cuando el coeficiente r de Pearson se eleva al cuadrado r2, 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) (Hernández Sampieri et al., 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 variabe independiente x. (Lind et al., 2015).
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)
## 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.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")
| 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 |
º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
ggplot(data = datos, aes(x = comerciales, y = ventas)) +
geom_point(colour = 'blue')
#### 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
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 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='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")
º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
º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. #### 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)
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")
| 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 |
º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
ggplot(data = datos, aes(x = solido, y = oxigeno)) +
geom_point(colour = 'red')
º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='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")
º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
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.
º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")
| 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 |
º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$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 = 'blue')
º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 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 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
ggplot() +
geom_point(data = datos, aes(x = estatura, y = peso), colour='blue') +
geom_line(aes( x = datos$estatura, y = predict(modelo, datos)), color = "red") +
xlab("Estarura") +
ylab("Peso") +
ggtitle("Linea de tendencia sobre Conjunto de Datos")
º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
Conforme a los datos obtenido de una muestra de mediciones del cuerpo humano en relacion 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 determinción r2 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 prediccón de peso es de 83.2478493 #### 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).