Regresión lineal simple
La regresión lineal presenta la relación entre variables numéricas, mÔs expresamente entre una variable dependiente (y) y otra variable predictora (x). Intenta por tanto, predecir el valor de una variable cuantitativa en relación a otra.
La regresión lineal simple asume una solución de ecuación de la recta del tipo
\[y = \beta_{0} + \beta_{1} * x + \epsilon\]
donde \(\beta_{0}\)corresponde al valor de intersección en el eje de la ordenada de la variable dependiente (y), y \(\beta_{1}\) al valor de la pendiente de la lĆnea recta, ambos son valores constantes. Y ϵ es un error estimado dado por la diferencia entre la observación y el valor entregado por el modelo.
R-cuadrado
El R-cuadrado (R-square) o coeficiente de determinación, es una medida que indica quĆ© tan cerca se encuentran los datos de la lĆnea de regresión. Se establece entre 0 y 100%.
Nota: Cuanto mayor sea el R2, mejor serĆ” el ajuste el modelo a los datos.
library(readxl)
ESTATURA <- read_excel("C:/Users/user/Desktop/ESTATURA.xlsx")
View(ESTATURA)
summary(ESTATURA)
## ESTATURA
## Min. :1.61
## 1st Qu.:1.65
## Median :1.67
## Mean :1.69
## 3rd Qu.:1.71
## Max. :1.80
Función lm
La función āLinear Modelā lm() es la función principal dentro de R para el cĆ”lculo de ajuste de un modelo lineal simple
RaĆz del error cuadrĆ”tico medio
Esta mĆ©dida (Root Mean Squared Error RMSE), mide el error de predicción del modelo. Y que corresponde a la diferencia media entre los valores conocidos observados del resultado y el valor predicho por el modelo. El RMSE se calcula como la raĆz media((predicho - observado)^2) .
Nota: Cuanto menor sea el RMSE, mejor serĆ” el modelo.
\(RMSE =\sqrt[]{\dfrac{\sum\limits_{i=1}^{N} (yp -yr)^2}{N}}\)
library(mlbench)
library(tidyverse)
library(corrplot)
library(plotly)
library(caret)
library(caTools)
library(reshape2)
library(readxl)
DATOS <- read_excel("C:/Users/user/Desktop/DATOS.xlsx")
DATOS %>%
ggplot(aes(x = PESO, y = ESTATURA)) +
geom_point()
Normalidad de las variables
par(mfrow = c(1, 2))
hist(DATOS$PESO, breaks = 10, main = "", xlab = "PESO",border = "red")
hist(DATOS$ESTATURA, breaks = 10, main = "", xlab = "ESTATURA", border = "blue")
Regresión lineal
Estableciendo la regresión lineal mediante el uso de la función modelo lineal (lm()), el resultado es un objeto con los coeficientes que corresponden a:
-Intercept: el valor que cruza el eje de ordenadas de la variable dependiente (y).
-El valor de la pendiente para la variable predictora (x).
regresion <- lm(DATOS$ESTATURA ~ DATOS$PESO)
regresion
##
## Call:
## lm(formula = DATOS$ESTATURA ~ DATOS$PESO)
##
## Coefficients:
## (Intercept) DATOS$PESO
## 1.484969 0.002618
¿Qué tan bien se ajusta el modelo?
Para determinar la bondad del ajuste ver el \(R^2\):
summary(regresion)
##
## Call:
## lm(formula = DATOS$ESTATURA ~ DATOS$PESO)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.089654 -0.021799 -0.007764 0.016527 0.111291
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.4849693 0.0632567 23.475 < 2e-16 ***
## DATOS$PESO 0.0026181 0.0008013 3.267 0.00339 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04444 on 23 degrees of freedom
## Multiple R-squared: 0.317, Adjusted R-squared: 0.2873
## F-statistic: 10.68 on 1 and 23 DF, p-value: 0.003386
Quedando la ecuación:
\(y = 1.4849 + 0.00261 * x\)
R-squared: 0.2873 muy bajo sugiero cambiar la variable dependiente por la independiente de manera perse.
DATOS %>%
ggplot(aes(x = PESO, y = ESTATURA)) +
geom_point() +
geom_abline(slope = coef(regresion)[[2]],
intercept = coef(regresion)[[1]],
color = 'red') +
theme_bw()
cor(DATOS)
## ESTATURA PESO
## ESTATURA 1.0000000 0.5630364
## PESO 0.5630364 1.0000000
corrplot(round(cor(subset(DATOS)), digits = 3), type = "lower")
Son apenas dos variables
boxplot(DATOS)
boxplot(DATOS$ESTATURA)
boxplot(DATOS$PESO)