1 Objetivo Aplicar un modelo de regresión lineal simple para evaluar y predecir valores .
2 Descripción De un conjunto de datos existentes llamado woman como ejemplo con dos variables de pesos y estaturas de mujeres americanas, elaborar un modelo de regresión lineal simple, hacer la correspondiente evaluación del mismo, predecir valores e interpretar el caso.
Con otros datos cargados con la función read_cvs() aplicar el mismo modelo de regresión lineal simple, evaluar, predecir e interpretar el modelo.
3 Marco teórico ¿Qué es el coeficiente de correlación de Pearson?, ¿qué es la regresión lineal simple?, ¿cómo se relaciona estos dos conceptos?, ¿en qué tipo de datos se aplica un modelo de regresión lineal?, ¿cómo se aplica el modelo de regresión lineal en R?, ¿con qué función?, ¿cómo se interpreta el modelo de regresión lineal simple?,
Estas preguntas se responde en los siguiente párrafos que integran este marco teórico.
3.1 Coeficiente de Correlación 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, Fernández Collado, and Baptista Lucio 2014).
En las correlaciones al igual que la regresión lineal simple, participan dos variables, una como independiente y a otra como dependiente, la correlación por si sola no evalúa la causalidad. La noción de causa-efecto(Hernández Sampieri, Fernández Collado, and Baptista Lucio 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 (Hernández Sampieri, Fernández Collado, and Baptista Lucio 2014).
La correlacion puede ser positiva o negativa de entre −1a1 y puede tener los siguientes valores y clasificarse de la siguiente manera:
−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, Fernández Collado, and Baptista Lucio 2014).
Por otra parte Walpole, (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 (Walpole, Myers, and Myers 2012).
Para determinar el coeficiente de correlación de Pearson de una muestra con dos variables se utiliza la siguiente fórmula:
3.1.1 Fórmula para correlación de Pearson r=∑ni=1(xi−x¯)⋅(yi−y¯)∑ni=1(xi−x¯)2⋅∑ni=1(yi−y¯)2−−
$$r =
$$ Como se observa en la fórmula, se requiere las medias x¯,y¯x¯,y¯ de las variables independiente xx y dependiente yy, además de hacer las sumatorias y operaciones correspondientes.
Siendo rr 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 xx y yy.
En lenguaje de programamción R, existe la función cor(var1, var2) para determinar el coeficiente de correlación de Pearson, tal vez de una manera más rápida, sin embargo, siempre es bueno conocer de donde proviene el valor y mucho mejor cuál es su interpretación.
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 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 rr, 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, Marchal, and Wathen 2015).
3.2.1 Fórmula de mínimo cuadrados para regresión lineal La respuesta YY se relaciona con la variable independiente xx a través de la ecuación
Y=a+b⋅x+ϵ
También se encuentra la fórmula como:
Y=α+β⋅x+ϵ
En donde:
Y es el valor a predecir o variable dependiente
a oα Es el valor del cruce del eje y d
b o β Es el valor de la pendiente o inclinación.
x el valor de la variable independiente
ϵ es es una variable aleatoria que se supone está distribuida con E(ϵ)=0 y Var(ϵ)=σ2, con frecuencia recibe el nombre de error aleatorio o alteración aleatoria, tiene varianza constante.
Debe recordarse que en la práctica se desconocen los coeficientes α y β, Y que deben estimarse a partir de los datos.
3.2.2 Fórmulas para coeficientes a y b en el método de mínimos cuadrados Para obtener los coeficientes a y b o α y β como mejor se identifique a los coeficientes, se aplicaría:
b=β=∑ni=1(xi−x¯)⋅(yi−y¯)∑ni=1(xi−x¯)2
y
a=y¯−b⋅x¯
o tambien se encuentra como:
α=y¯−β⋅x¯
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 de correlción 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).
Con lo anterior, cuando se determina el modelo de regresión lineal simple, y se conoce el coeficiente de determinación r2 es posible evaluar que tan eficiente es el modelo para predecir.
El coeficiente de determinación es la proporción y la explicación de la variación de la variable dependiente Y con respecto a la variable independiente x. (Lind et al., 2015).
4 Desarrollo 4.1 Cargar librerías La función library() significa cargar un paquete o librería previamente instalada con install.packages("").
library(readr)
library(ggplot2)
library(caret)
## Loading required package: lattice
Como parte de inicializar y preparar los datos, es buena práctica indicar una semilla para generación de valores aleatorios, más adelante se utiliza una función createDataPartition() y su comportamiento tiene que ver con una función que actúa de manera aleatoria, y establecer una semilla set.seed() asegurará generar los mismos datos.
set.seed(2021)
4.2 Cargar datos Se cargan los datos en un data.frame llamado datos
Las variables height representa la altura de una mujer americana dada en pulgadas.
La variable weight representa el peso de una persona mujer americana dada en libras.
datos <- women
datos
## height weight
## 1 58 115
## 2 59 117
## 3 60 120
## 4 61 123
## 5 62 126
## 6 63 129
## 7 64 132
## 8 65 135
## 9 66 139
## 10 67 142
## 11 68 146
## 12 69 150
## 13 70 154
## 14 71 159
## 15 72 164
4.3 Describir los datos 4.3.1 Visualizar la dispersión de los datos
ggplot(data = datos, mapping = aes(x = height, y = weight)) +
geom_point(color = "firebrick", size = 2) +
labs(title = 'Regresión lineal', x = 'Pesos en libras', y = 'Estatura en pulgadas')
4.3.2 Determinar el coeficiente de correlación r
r <- cor(datos$height, datos$weight)
paste("El valor de la correlación de Pearson es: ", r)
## [1] "El valor de la correlación de Pearson es: 0.995494767784216"
El valor de la correlación significa que tanto se relacionan las dos variables. El valor de la correlación de 0.9954948 significa correlación positiva muy fuerte.
4.4 Limpiar datos (posiblemente)
No es necesario limpiar los datos de women porque son pocos registros y están listos para ser utilizados.
4.5 Datos de entrenamiento y datos de validación Es este apartado será necesario partir el conjunto de datos original en dos partes: datos de entrenamiento y datos de validación.
Los datos de entrenamiento son los que se utilizar para construir el modelo.
Los datos de validación permitirán evaluar el modelo para predicciones de esos datos y comparar con los valores originales.
La función createDataPartition() tiene un comportamiento de aleatoriedad y básicamente tiene la finalidad de partir los datos en dos partes. El resultado de aplicar esta función es que devuelve las posiciones de cada observación que forman parte del primer conjunto, el atributo p indica el porcentaje a aplicar y que resulta la cantidad de observaciones para una parte y el complemento al %100%% sería para la otra partición; list significa que el resultado es una lista o matriz y times significa cuantas particiones realiza por default indicarle una sola vez.
entrena <- createDataPartition(y = datos$weight, p = 0.7, list = FALSE, times = 1)
# Datos entrenamiento
datos.entrenamiento <- datos[entrena, ] # [renglones, columna]
# Datos validación
datos.validacion <- datos[-entrena, ]
datos
## height weight
## 1 58 115
## 2 59 117
## 3 60 120
## 4 61 123
## 5 62 126
## 6 63 129
## 7 64 132
## 8 65 135
## 9 66 139
## 10 67 142
## 11 68 146
## 12 69 150
## 13 70 154
## 14 71 159
## 15 72 164
datos.entrenamiento
## height weight
## 2 59 117
## 3 60 120
## 4 61 123
## 6 63 129
## 7 64 132
## 8 65 135
## 9 66 139
## 10 67 142
## 11 68 146
## 13 70 154
## 14 71 159
## 15 72 164
datos.validacion
## height weight
## 1 58 115
## 5 62 126
## 12 69 150
Aquí se indica como usar función lm() para construir el modelo de regresión lineal simple con dos variables utilizando el conjunto de datos de entrenamiento.
El peso de una persona es variable independiente. La variable height representa esta variable.
La altura de una persona es la variable dependiente y que finalmente es Y en la fórmula de regresión lineal.
El caracter de virulilla o tilde significa que del lado izquierdo está la varibale dependiente y del lado derecho está la variable independiente y forma parte del atributo formula en la función lm(). El atributo data signifia indicarle de donde se obtienen los datos, y será precisamente los datos de entrenamiento.
summary(modelo) significa conocer algunas características del modelo construido para su evaluación e interpretación.
Se utilizan las variables a y b en código R para asignar los valores de los coeficientes que se buscan del modelo, modelo.coefficients[1] es el coeficiente a y modelo$coefficients[2] será el coeficiente bb de la ecuación Y=a+b⋅x
modelo <- lm(data = datos, formula = weight ~ height)
modelo
##
## Call:
## lm(formula = weight ~ height, data = datos)
##
## Coefficients:
## (Intercept) height
## -87.52 3.45
summary(modelo)
##
## Call:
## lm(formula = weight ~ height, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.7333 -1.1333 -0.3833 0.7417 3.1167
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -87.51667 5.93694 -14.74 1.71e-09 ***
## height 3.45000 0.09114 37.85 1.09e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.525 on 13 degrees of freedom
## Multiple R-squared: 0.991, Adjusted R-squared: 0.9903
## F-statistic: 1433 on 1 and 13 DF, p-value: 1.091e-14
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
Valor de a= -87.5166667 y valor de b= 3.45
4.7 Evaluar modelo Para evaluar el modelo es necerario interpretar la función summary()
4.8 Predecir valores Se utilizará el conjunto de datos de validación para predecir valores.
Finalmente se utilizarán nuevos valores diferentes a los del conjunto de datos de validación para predecir valores.
La función para predecir en R es predict() incorporando en ella los valores a predecir y conforme al modelo construido
predicciones <- predict(object = modelo, newdata = datos.validacion)
data.frame(datos.validacion, predicciones)
## height weight predicciones
## 1 58 115 112.5833
## 5 62 126 126.3833
## 12 69 150 150.5333
Otras predicciones nuevas con variable height porque así se llama la variable que participa en la construcción del modelo como variable independiente.
height <- c(68, 77) # es el valor de estatura
prediccion <- predict(object = modelo, newdata = data.frame(height))
prediccion
## 1 2
## 147.0833 178.1333
El valor del peso de una persona que mide height deberá ser prediccion conforme al modelo de regresión lineal simple.
4.8.1 Visualizando la recta de regresión Con el siguiente código se observa la recta de regresión conforme a los datos.
ggplot(data = datos, mapping = aes(x = height, y = weight)) +
geom_point(color = "firebrick", size = 2) +
labs(title = 'weight ~ height', x = 'Altura', y = 'Pesos') +
geom_smooth(method = "lm", se = FALSE, color = "black") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula 'y ~ x'
4.9 Interpretación De acuerdo al modelo de regresión lineal para este conjunto de datos de women el valor del coeficiente de determinación igual a r2r2 significa que el valor del peso de una persona del género femenino es representado por un 0.9910098 o lo que es lo mismo el valor del peso depende de depende de un 99% de los valores de la estatura.
Los coeficiente del modelo a=a=-87.5166667 y b=b= 3.45 significa que el peso de una persona es una predicción estará dada por Y = -87.5166667 + 3.45 ⋅x⋅x, siendo xx cualquier nuevo valor de la estatura de una persona y YY el valor a predecir.