Listado de Librerias que se usaran durante el tema de Regresión Lineal y Correlación:

library(fdth)
library(ggplot2)
library(psych)
library(moments)
library(plotly)
library(GGally)
library(ggpubr)

Regresión Lineal y Correlación

La Regresión Lineal es un modelo matemático usado para encontrar la relación de dependencia entre una variable dependiente Y, de variable independiente X y un término aleatorio E (Epsilon) que recoge todos aquellos factores de la realidad no controlables u observables y que por lo tanto se asocian con el azar, y es la que confiere al modelo su caracter estocástico.

El objetivo de la regresión lineal es usarla para predecir un comportamiento de una variable dado la relación de otra. El metodo usa la distancia de mínimos cuadrados para el cálculo.

El modelo de regresión lineal simple sólo está conformado por dos variables estadísticas llamadas X y Y. Considera una única variable independiente o explicativa, X, y una variable dependiente o respuesta, Y, asumiendo que la relación entre ambas es lineal. Para la regresión lineal simple, se asume que X y Y se relacionan mediante la relación funcional (siendo β1 y β0 estimadores): {Y={0}+{1}X+}

Primeramente aplicaremos herramientas estadísticas a los datos, diagrama de Dispersión, Valores de “r” para la Correlación y en base a lo anterior aplicamos la Regresión Lineal.

Es necesario analizar la correlación o asociación entre el par de datos, lo cuál nos dará una idea que tan fuerte es la relación entre dichos datos.

El Coeficiente de correlación lineal “r”, se define como el número que mide qué tan bien se ajustan los datos muestrales pareados a un patrón de línea recta al ser graficados.

Por lo tanto existe una correlación entre dos variables cuando los valores de una variable están de alguna manera asociados con los valores de la otra variable.

Cabe mencionar, que la Correlación no implica Causalidad

Los valores de “r” van de -1 a 1. Al estar mas cerca a los límites es mas fuerte la correlación.

La metodología para aplicar el modelo de Regresión Lineal la podemos definir de la siguiente manera:

Ejemplo 1

Definimos valores en dos vectores, uno llamado Ahorro y otro Rendimiento y los colocamos dentro de un dataframe llamado DF1.

Sabemos de antemano que entre mas ahorremos, el rendimiento es mayor y se puede pensar que el par de datos si tiene relación a simple vista.

# n valores pareados
Ahorro =      c(100, 200, 300, 100, 300, 400, 100, 200, 300, 500)
Rendimiento = c(105, 211, 315, 106, 317, 421, 106, 209, 317, 528)
DF1 <- data.frame(Ahorro, Rendimiento)

Exploración de Datos

Para la exploración de datos, usaremos summary , describe y ejecutamos str para saber de que tipo es el dataframe, y con head, tail, table para ver el contenido del dataframe.

summary(DF1)
##      Ahorro     Rendimiento   
##  Min.   :100   Min.   :105.0  
##  1st Qu.:125   1st Qu.:131.8  
##  Median :250   Median :263.0  
##  Mean   :250   Mean   :263.5  
##  3rd Qu.:300   3rd Qu.:317.0  
##  Max.   :500   Max.   :528.0
describe(DF1)
##             vars  n  mean     sd median trimmed    mad min max range skew
## Ahorro         1 10 250.0 135.40    250  237.50 148.26 100 500   400 0.36
## Rendimiento    2 10 263.5 142.83    263  250.25 156.41 105 528   423 0.37
##             kurtosis    se
## Ahorro         -1.23 42.82
## Rendimiento    -1.22 45.17
str(DF1)
## 'data.frame':    10 obs. of  2 variables:
##  $ Ahorro     : num  100 200 300 100 300 400 100 200 300 500
##  $ Rendimiento: num  105 211 315 106 317 421 106 209 317 528
head(DF1)
##   Ahorro Rendimiento
## 1    100         105
## 2    200         211
## 3    300         315
## 4    100         106
## 5    300         317
## 6    400         421
tail(DF1)
##    Ahorro Rendimiento
## 5     300         317
## 6     400         421
## 7     100         106
## 8     200         209
## 9     300         317
## 10    500         528
table(DF1)
##       Rendimiento
## Ahorro 105 106 209 211 315 317 421 528
##    100   1   2   0   0   0   0   0   0
##    200   0   0   1   1   0   0   0   0
##    300   0   0   0   0   1   2   0   0
##    400   0   0   0   0   0   0   1   0
##    500   0   0   0   0   0   0   0   1

La Regresión Líneal es muy suceptible a los valores atípicos o “outliers” así que es necesario ejecutar un boxplot para observar la dispersión de datos.

boxplot(DF1, horizontal = T) 
stripchart(DF1, method = "jitter", pch = 19, add = TRUE, col = "blue")

Resultados: No se observan valores atípicos o “outliers”, podemos usar herramientas mas avanzadas para detectar “outliers” la gráfica del boxplot es visual y nos da una idea de la distribución de los datos.

Diagrama de Dispersión y Correlación

Con el lenguaje R tenemos varias herramientas para gráficar y elaborar los Diagramas de Dispersión, aunque será redundate las gráficas, es solo para mostrar las herramientas que podemos utilizar.

Primeramente un “plot” para graficar los datos.

plot(DF1)

Resultados: Observamos que los datos “dibujan” una línea recta

Ahora utilizamos “ggscatter” de la librería ggpubr. Observemos que en los parametros podemos incluir el valor de R usando el metodo de Pearson, y el valor de p-value.

ggscatter(DF1, x = "Ahorro", y = "Rendimiento", 
          add = "reg.line", conf.int = TRUE, 
          cor.coef = TRUE, cor.method = "pearson",
          xlab = "Ahorro", ylab = "Rendimiento")
## `geom_smooth()` using formula 'y ~ x'

g = ggplot(DF1, aes(x = Ahorro, y = Rendimiento))
g = g + xlab("Ahorro en Millones")
g = g + ylab("Rendimiento en Millones")
g = g + geom_point(size = 7, colour = "black", alpha=0.6)
g = g + geom_point(size = 5, colour = "blue", alpha=0.2)
g = g + geom_smooth(method = "lm", colour = "black")
g
## `geom_smooth()` using formula 'y ~ x'

Ejecutemos el comando “cor” que nos regresa el valor de Correlación, existen varios métodos, usaremos “pearson” en el ejemplo, y en el mismo bloque graficaremos los datos con “pairs” y “ggpairs” que son otras gráficas de Dispersión y arrojan mas información.

# Sintaxis de cor
# cor(Ahorro, Rendimiento, method = c("pearson", "kendall", "spearman"))
cor(DF1, method = c("pearson"))
##                Ahorro Rendimiento
## Ahorro      1.0000000   0.9999779
## Rendimiento 0.9999779   1.0000000
pairs(DF1)

ggpairs(DF1)

ggplot(DF1, aes(x= Ahorro, y = Rendimiento)) + geom_point()

Resultados: Se observa la línea recta que se ajusta a los datos que son los puntos, y también tenemos el valor de R, es este ejemplo es igual a 1, lo cual nos indica que la correlación es muy fuerte. Al ser el valor positivo, decimos que la correlación positiva, esto significa que al incrementar el valor en X el valor en Y tambíén aumentará.

Correlación positiva ” / ”

Correlación negativa “\”

Sin Correlación “—”

Ya por último es necesario ejecutar una Prueba de normalidad de dichos datos y evaluamos el valor de p-value.

En la variable a analizar, si se tiene que p > 0.05 decimos que es una Distribución Normal, al contrario si el valor de P < 0.05 podemos decir tenemos una Distribución que no es Normal.

Usaremos la prueba de Shapiro, que es una de las más utilizadas.

# 
shapiro.test(DF1$Ahorro)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF1$Ahorro
## W = 0.90926, p-value = 0.276
shapiro.test(DF1$Rendimiento)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF1$Rendimiento
## W = 0.91094, p-value = 0.2875

Evaluemos con un “if” el p.value, de esa manera evaluamos el p.value en forma automática

# 
shapiro.test(DF1$Ahorro)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF1$Ahorro
## W = 0.90926, p-value = 0.276
DF1.Ahorro <- shapiro.test(DF1$Ahorro)
  if (DF1.Ahorro$p.value > 0.05) {
     "Es Normal"
  }else "No es Normal"
## [1] "Es Normal"
shapiro.test(DF1$Rendimiento)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF1$Rendimiento
## W = 0.91094, p-value = 0.2875
DF1.Rendimiento <- shapiro.test(DF1$Rendimiento)
  if (DF1.Rendimiento$p.value > 0.05) {
     "Es Normal"
  }else "No es Normal"
## [1] "Es Normal"

Resultados: Interpretando los resultados, en ambos casos los valores de p-value son mayores a 0.05 que es nuestro nivel de significancia, por lo tanto asumimos que los valores siguen una distribución Normal.

Regresión Lineal

Dada una colección de datos muestrales pareados, la línea de regresión (o línea de mejor ajuste, o línea de mínimos cuadrados) es la línea recta que “mejor” se ajusta al diagrama de dispersión de los datos. La ecuación de regresión describe algebraicamente la línea de regresión. La ecuación de regresión expresa una relación entre x (llamada variable explicativa, variable predictora, o variable independiente) y y^ (llamada variable de respuesta o variable dependiente).

Para la Regresión Lineal usaremos el comando “lm” y para visualizar los resultados ejecutaremos summary .

mod_1 <- lm(Rendimiento ~ Ahorro, data = DF1)
summary(mod_1)
## 
## Call:
## lm(formula = Rendimiento ~ Ahorro, data = DF1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7576 -0.6136  0.4849  0.7500  0.7879 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.21212    0.69717  -0.304    0.769    
## Ahorro       1.05485    0.00248 425.272   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.008 on 8 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 1.809e+05 on 1 and 8 DF,  p-value: < 2.2e-16
mod_1$coefficients
## (Intercept)      Ahorro 
##  -0.2121212   1.0548485
plot(mod_1$model)

plot(mod_1$residuals, type = "l")

plot(x=c(tail(mod_1$residuals, -1),0),y=mod_1$residuals)

Resultados:

Nos podemos guiar primeramente por la cantidad de “asteristicos” en este caso tenemos 3”*” para Rendimiento.

Segundo el valor absoluto de t value, mayor a 2, tenemos un resultado de 425.272, que es mayor a 2.

Tercero el valor de Multiple R-squared = 1 y Adjusted R-squared = 1, este valor nos explica que tanto se ajusta el modelo, el valor va de 0 a 1, 0 no existe ajuste, 1 se ajusta perfectamente, y los valores intermedios que nos explicara el porciento de que tanto se ajustan.

Cuarto el valor de p-value menor a 0.05

La intención del ejemplo anterior es mostrar un caso cercano a lo optimo de una regresión lineal con una correlación de 1

Ahora pasemos a calcular la predicción, recordemos la ecuación de la Recta que es y = m + bx; para la Regresión Lineal se explica de la siguiente manera:

y = b0 + b(x)

y = -0.21212 + 1.05485 (Valor de Predicción), es decir si ahorramos $350 al sustituir el valor en la ecuación:

y = -0.21212 + 1.05485 * (350) = 368.9854

y = -0.21212 + 1.05485 * (350)
print(paste("El rendimientos es", y))
## [1] "El rendimientos es 368.98538"

Otra manera de realizar el cálculo usando los coeficientes:

mod_1$coefficients[1]
## (Intercept) 
##  -0.2121212
mod_1$coefficients[2]
##   Ahorro 
## 1.054848
y1 = mod_1$coefficients[1] + mod_1$coefficients[2] * (350)
print(paste("El rendimientos es", y1))
## [1] "El rendimientos es 368.984848484848"

Otra manera de obtener la predición.

beta1 <- cor(Rendimiento, Ahorro) * sd(Rendimiento) / sd(Ahorro)
beta0 <- mean(Rendimiento) - beta1 * mean(Ahorro)
rbind (c(beta0, beta1), coef(lm(Rendimiento ~ Ahorro)))
##      (Intercept)   Ahorro
## [1,]  -0.2121212 1.054848
## [2,]  -0.2121212 1.054848
y2 <- beta0 + beta1 * (350)
print(paste("El rendimientos es", y2))
## [1] "El rendimientos es 368.984848484848"

Otra manera de obtener los coeficientes con el comando “fit”. Insertaremos 3 elementos para realizar los cálculos de la predicción.

fit <- lm(Rendimiento ~ Ahorro, data = DF1)
coef (fit)
## (Intercept)      Ahorro 
##  -0.2121212   1.0548485
newx <- c(350, 425, 560)
coef (fit)[1] + coef(fit)[2] * newx
## [1] 368.9848 448.0985 590.5030

Ahora usaremos “predict” para predecir los valores de Y.

newx <- c(350, 425, 560)
predict(fit, newdata = data.frame(Ahorro = newx))
##        1        2        3 
## 368.9848 448.0985 590.5030

Ejemplo 2

En el siguiente ejemplo, veremos como interactua un KPI (Key Performance Indicator) interno en un resultado externo.

KPIin = c(54,69,65,106,74,66,108,120,94,98,85,77,86,65,62,67)
KPIOut = c(22,17,9,3,23,37,23,29,22,21,14,24,12,10,9,12)
DF2 <- data.frame(KPIin, KPIOut)

Exploración de Datos

Para la exploración de datos, usaremos summary , describe y ejecutamos str para saber de que tipo es el dataframe, y con head, tail, table para ver el contenido del dataframe.

summary(DF2)
##      KPIin            KPIOut     
##  Min.   : 54.00   Min.   : 3.00  
##  1st Qu.: 65.75   1st Qu.:11.50  
##  Median : 75.50   Median :19.00  
##  Mean   : 81.00   Mean   :17.94  
##  3rd Qu.: 95.00   3rd Qu.:23.00  
##  Max.   :120.00   Max.   :37.00
describe(DF2)
##        vars  n  mean    sd median trimmed   mad min max range skew kurtosis
## KPIin     1 16 81.00 19.33   75.5   80.14 15.57  54 120    66 0.51    -1.10
## KPIOut    2 16 17.94  8.75   19.0   17.64  8.90   3  37    34 0.30    -0.66
##          se
## KPIin  4.83
## KPIOut 2.19
str(DF2)
## 'data.frame':    16 obs. of  2 variables:
##  $ KPIin : num  54 69 65 106 74 66 108 120 94 98 ...
##  $ KPIOut: num  22 17 9 3 23 37 23 29 22 21 ...
head(DF2)
##   KPIin KPIOut
## 1    54     22
## 2    69     17
## 3    65      9
## 4   106      3
## 5    74     23
## 6    66     37
tail(DF2)
##    KPIin KPIOut
## 11    85     14
## 12    77     24
## 13    86     12
## 14    65     10
## 15    62      9
## 16    67     12
table(DF2)
##      KPIOut
## KPIin 3 9 10 12 14 17 21 22 23 24 29 37
##   54  0 0  0  0  0  0  0  1  0  0  0  0
##   62  0 1  0  0  0  0  0  0  0  0  0  0
##   65  0 1  1  0  0  0  0  0  0  0  0  0
##   66  0 0  0  0  0  0  0  0  0  0  0  1
##   67  0 0  0  1  0  0  0  0  0  0  0  0
##   69  0 0  0  0  0  1  0  0  0  0  0  0
##   74  0 0  0  0  0  0  0  0  1  0  0  0
##   77  0 0  0  0  0  0  0  0  0  1  0  0
##   85  0 0  0  0  1  0  0  0  0  0  0  0
##   86  0 0  0  1  0  0  0  0  0  0  0  0
##   94  0 0  0  0  0  0  0  1  0  0  0  0
##   98  0 0  0  0  0  0  1  0  0  0  0  0
##   106 1 0  0  0  0  0  0  0  0  0  0  0
##   108 0 0  0  0  0  0  0  0  1  0  0  0
##   120 0 0  0  0  0  0  0  0  0  0  1  0

La Regresión Líneal es muy subsetible a los valores atípicos o “outliers” así que es necesario ejecutar un boxplot para observar la dispersión de datos.

boxplot(DF2, horizontal = T) 
stripchart(DF2, method = "jitter", pch = 19, add = TRUE, col = "blue")

Resultados: No se observan valores atípicos o “outliers”, podemos usar herramientas mas avanzadas para detectar “outliers” la gráfica del boxplot es visual y nos da una idea de la distribución de los datos.

Diagrama de Dispersión y Correlación

Con R tenemos varias herramientas para gráficar y elaborar los Diagramas de Dispersión, aunque será redundate las gráficas, es solo para mostrar las herramientas que podemos utilizar.

Primeramente un “plot” para graficar los datos.

plot(DF2)

Resultados: Observamos que los datos casi “dibujan” una línea recta.

Ahora utilizamos “ggscatter” de la librería ggpubr. Observemos que en los parametros podemos incluir el valor de “r” usando el metodo de Pearson, y el valor de p-value.

ggscatter(DF2, x = "KPIin", y = "KPIOut", 
          add = "reg.line", conf.int = TRUE, 
          cor.coef = TRUE, cor.method = "pearson",
          xlab = "KPI Entrada", ylab = "KPI Salida")
## `geom_smooth()` using formula 'y ~ x'

g = ggplot(DF2, aes(x = KPIin, y = KPIOut))
g = g + xlab("KPI Entrada")
g = g + ylab("KPI Salida")
g = g + geom_point(size = 7, colour = "black", alpha=0.6)
g = g + geom_point(size = 5, colour = "blue", alpha=0.2)
g = g + geom_smooth(method = "lm", colour = "black")
g
## `geom_smooth()` using formula 'y ~ x'

Ejecutemos el comando “cor” que nos regresa el valor de Correlación, existen varios métodos, usaremos “pearson” en el ejemplo, y en el mismo bloque graficaremos los datos con “pairs” y “ggpairs” que son otras gráficas de Dispersión y arrojan mas información.

# Sintaxis de cor
# cor(Ahorro, Rendimiento, method = c("pearson", "kendall", "spearman"))
cor(DF2, method = c("pearson"))
##            KPIin    KPIOut
## KPIin  1.0000000 0.1312108
## KPIOut 0.1312108 1.0000000
pairs(DF2)

ggpairs(DF2)

ggplot(DF2, aes(x= KPIin, y = KPIOut)) + geom_point()

Resultados: Se observa la línea recta que se ajusta a los datos que son los puntos, y también tenemos el valor de la correlación, es este ejemplo es igual a 0.131, lo cual nos indica que la correlación es muy debil. Al ser el valor positivo, decimos que la correlación positiva, esto significa que al incrementar el valor en X el valor en Y tambíén aumentará.

Ya por último es necesario ejecutar una Prueba de normalidad de dichos datos y valoramos el valor de p-value.

# 
shapiro.test(DF2$KPIin)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF2$KPIin
## W = 0.93009, p-value = 0.2446
shapiro.test(DF2$KPIOut)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF2$KPIOut
## W = 0.9608, p-value = 0.6764
# 
shapiro.test(DF2$KPIin)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF2$KPIin
## W = 0.93009, p-value = 0.2446
DF2.KPIin <- shapiro.test(DF2$KPIin)
  if (DF2.KPIin$p.value > 0.05) {
     "Es Normal"
  }else "No es Normal"
## [1] "Es Normal"
shapiro.test(DF2$KPIOut)
## 
##  Shapiro-Wilk normality test
## 
## data:  DF2$KPIOut
## W = 0.9608, p-value = 0.6764
DF2.KPIOut <- shapiro.test(DF2$KPIOut)
  if (DF2.KPIOut$p.value > 0.05) {
     "Es Normal"
  }else "No es Normal"
## [1] "Es Normal"

Resultados: Interpretando los resultados, en ambos casos los valores de p-value son mayores a 0.05 que es nuestro nivel de significancia, por lo tanto asumimos que los valores siguen una distribución normal.

Regresión Lineal

Para la Regresión Lineal usaremos el comando “lm” y para visualizar los resultados ejecutaremos “summary”

mod_2 <- lm(KPIOut ~ KPIin, data = DF2)
summary(mod_2)
## 
## Call:
## lm(formula = KPIOut ~ KPIin, data = DF2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.422  -6.423   0.914   5.525  19.953 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  13.1260     9.9717   1.316    0.209
## KPIin         0.0594     0.1200   0.495    0.628
## 
## Residual standard error: 8.981 on 14 degrees of freedom
## Multiple R-squared:  0.01722,    Adjusted R-squared:  -0.05298 
## F-statistic: 0.2453 on 1 and 14 DF,  p-value: 0.6281
mod_2$coefficients
## (Intercept)       KPIin 
## 13.12604798  0.05940064
plot(mod_1$model)

plot(mod_1$residuals, type = "l")

plot(x=c(tail(mod_1$residuals, -1),0),y=mod_1$residuals)

Resultados:

Nos podemos guiar primeramente por la cantidad de “asteristicos” en este caso no tenemos para KPIin.

Segundo el valor absoluto de t value, mayor a 2, tenemos un resultado de 0.495 que es menor a 2.

Tercero el valor de Multiple R-squared = 0.01722 Adjusted R-squared = -0.05298, este valor nos explica que tanto se ajusta el modelo, el valor va de 0 a 1, 0 no existe ajuste, 1 se ajusta perfectamente, y los valores intermedios que nos explicara el porciento de que tanto se ajustan.

Cuarto el valor de p-value es mayor a 0.05

La intención del ejemplo anterior es mostrar un ejemplo de una regresión lineal con una correlación casi nula, lo cuál nos indica que no hay correlación, puede ser debido a varios factores, una puede ser que los datos no sean los suficientes, se recomiendan al menos 30 datos, la segunda es que realmente no existe correlación entre dichos datos.

Aún asi continuaremos con las predicciones para medios didácticos.

Recordemos la ecuación de la Recta que es y = m + bx; para la Regresión Lineal se explica de la siguiente manera:

y = b0 + b(x)

y = 13.12604798 + 0.05940064 (Valor de Predicción), es decir si el KPIin es 44 al sustituir el valor en la ecuación:

y = 13.12604798 + 0.05940064 * (44) = 15.73967614

y1 = 13.12604798 + 0.05940064 * (44)
print(paste("El KPIOut es igual a", y1))
## [1] "El KPIOut es igual a 15.73967614"

Otra manera de realizar el cálculo, usando los coeficientes:

mod_2$coefficients[1]
## (Intercept) 
##    13.12605
mod_2$coefficients[2]
##      KPIin 
## 0.05940064
y1 = mod_2$coefficients[1] + mod_2$coefficients[2] * (44)
print(paste("El KPIOut es igual a", y1))
## [1] "El KPIOut es igual a 15.7396762397431"

Otra manera de obtener la predicción:

beta1 <- cor(KPIOut, KPIin) * sd(KPIOut) / sd(KPIin)
beta0 <- mean(KPIOut) - beta1 * mean(KPIin)
rbind (c(beta0, beta1), coef(lm(KPIOut ~ KPIin)))
##      (Intercept)      KPIin
## [1,]    13.12605 0.05940064
## [2,]    13.12605 0.05940064
y2 <- beta0 + beta1 * (44)
print(paste("El KPIOut es igual a ", y2))
## [1] "El KPIOut es igual a  15.7396762397431"

Otra manera de obtener los coeficientes, usando el comando “fit”:

fit <- lm(KPIOut ~ KPIin, data = DF2)
coef (fit)
## (Intercept)       KPIin 
## 13.12604798  0.05940064
newx <- c(44, 55, 44)
coef (fit)[1] + coef(fit)[2] * newx
## [1] 15.73968 16.39308 15.73968

Ahora usaremos “predict” para predecir los valores de Y

newx <- c(44, 55, 180)
predict(fit, newdata = data.frame(KPIin = newx))
##        1        2        3 
## 15.73968 16.39308 23.81816

Ahora que el tema fue brevemente explicado, agrega datos a DF1 y analiza los nuevos resultados.

Ahorro: 10, 1000, 3000, 55

Rendimiento: 30, 1500, 2800, 320

¿Hay valores atípicos?

¿Siguen el conjunto de datos siendo normales?

¿Que sucede con la Std. Error en el modelo lm?

¿Que importancia tienen los valores residuales en el modelo de Regresión Lineal?

Conclusión:

Al aplicar regresión simple, debemos de entender e identificar el problema a resolver, no solo hacer gráficas elegantes, la interpretación de los resultados es vital, tenemos que tener cuidado de la metodología de cada modelo, ya que si no cumple con las condiciones, el metodo empleado para dicha resolucion del problema debe ser cambiado.

Aplicar exploración de datos, Diagramas de Dispersión y Correlación, Pruebas de Normalidad y Regresión Multiple, teniendo en cuenta lo antes dicho podemos proceder con la predicción.

¿Por que entender el problema o saber el tema a analizar?, ver la siguiente página con algunos ejemplos

https://www.xataka.com/magnet/a-margarina-divorcios-11-divertidos-ejemplos-que-correlacion-no-implica-causalidad


This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

Referencias:

https://rpubs.com/Cpepi/832141

https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal

http://www.mat.uda.cl/hsalinas/cursos/2011/2do/clase2.pdf

https://r-coder.com/grafico-barras-r/

https://www.rdocumentation.org/

K cpepi

cpepi@yahoo.com

Versión 1.5, Revisión 01.05.2024.mx

May 1, 2024