Regresión Lineal
La regresión lineal es una técnica de modelado estadístico que se emplea para describir una variable de respuesta continua como una función de una o varias variables predictoras. Puede ayudar a comprender y predecir el comportamiento de sistemas complejos o a analizar datos experimentales, financieros y biológicos.
Datos de Producción de Miel
library(readr)
Prod_Miel <- read_csv("Prodmiel2018muni.csv")## Rows: 1549 Columns: 2
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## dbl (2): Volumen, Valor
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
Prod_Miel## # A tibble: 1,549 x 2
## Volumen Valor
## <dbl> <dbl>
## 1 245 11405
## 2 43 2003
## 3 13 585
## 4 22 1015
## 5 82 3820
## 6 7 339
## 7 15 710
## 8 9 397
## 9 42 1942
## 10 6 265
## # ... with 1,539 more rows
Matriz de coeficientes de correlacion
Matriz de diagramas de dispersion:
pairs(Prod_Miel)En estadística, el coeficiente de correlación de Pearson es una medida de dependencia lineal entre dos variables aleatorias cuantitativas. A diferencia de la covarianza, la correlación de Pearson es independiente de la escala de medida de las variables. De manera menos formal, podemos definir el coeficiente de correlación de Pearson como un índice que puede utilizarse para medir el grado de relación de dos variables siempre y cuando ambas sean cuantitativas y continuas.
cor(Prod_Miel)## Volumen Valor
## Volumen 1.0000000 0.9920269
## Valor 0.9920269 1.0000000
Calculo y representacion de la recta de minimos cuadrados
El comando básico es lm (linear models). El primer argumento de este comando es una fórmula y ~ x en la que se especifica cuál es la variable respuesta o dependiente (y), la cuál es la variable regresora o independiente (x). El segundo argumento, llamado data especifica cuál es el fichero en el que se encuentran las variables. El resultado lo guardamos en un objeto llamado regresion. Este objeto es una lista que contiene toda la información relevante sobre el análisis. Mediante el comando summary obtenemos un resumen de los principales resultados:
regresion <- lm (Valor ~ Volumen, data = Prod_Miel)
summary(regresion)##
## Call:
## lm(formula = Valor ~ Volumen, data = Prod_Miel)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6163.6 -168.9 -121.8 20.0 7667.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 186.117 15.677 11.87 <2e-16 ***
## Volumen 38.384 0.124 309.60 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 582.9 on 1547 degrees of freedom
## Multiple R-squared: 0.9841, Adjusted R-squared: 0.9841
## F-statistic: 9.585e+04 on 1 and 1547 DF, p-value: < 2.2e-16
Los parámetros de la ecuación de la recta de mínimos cuadrados que relaciona la cantidad de grasas en la sangre en función del peso vienen dados por la columna ´Estimate´ de la tabla ´Coefficients´ de la salida anterior. Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es:
\[ y = 186.117 + 38.384x \]
Representacion de la recta de minimos cuadrados:
plot(Prod_Miel$Volumen, Prod_Miel$Valor, xlab="Volumen", ylab = "Valor")
abline(regresion)El coeficiente de determinación (es decir, el coeficiente de correlación al cuadrado) mide la bondad del ajuste de la recta a los datos.
Calculo de predicciones:
nuevos.Volumenes <- data.frame(Volumen = seq(30,50))
predict(regresion, nuevos.Volumenes)## 1 2 3 4 5 6 7 8
## 1337.629 1376.013 1414.396 1452.780 1491.164 1529.548 1567.931 1606.315
## 9 10 11 12 13 14 15 16
## 1644.699 1683.083 1721.466 1759.850 1798.234 1836.618 1875.001 1913.385
## 17 18 19 20 21
## 1951.769 1990.153 2028.536 2066.920 2105.304
Intervalos de confianza
confint(regresion)## 2.5 % 97.5 %
## (Intercept) 155.36564 216.86758
## Volumen 38.14056 38.62692
Los intervalos de confianza para la respuesta media y los intervalos de predicción para la respuesta se pueden obtener usando el comando predict. Por ejemplo, el siguiente código calcula y representa los dos tipos de intervalos para el rango de volumenes que va desde el 500 hasta el 1000 (los de predicción en verde):
nuevos.Volumenes <- data.frame(Volumen = seq(0,1000))
#Grafico de dispersion y recta
plot(Prod_Miel$Volumen, Prod_Miel$Valor, xlab="Volumen", ylab = "Valor")
abline(regresion)
#Intervalo de confianza de la respuesta media
# ic es una matriz con tres columnas: la prediccion, el limite inferior y el limite superior
ic <- predict(regresion, nuevos.Volumenes, interval = 'confidence')
lines(nuevos.Volumenes$Volumen, ic[, 2], lty = 2)
lines(nuevos.Volumenes$Volumen, ic[, 3], lty = 2)
#Intervalo de prediccion
ic <- predict(regresion, nuevos.Volumenes, interval = 'prediction')
lines(nuevos.Volumenes$Volumen, ic[, 2], lty = 2, col = "green")
lines(nuevos.Volumenes$Volumen, ic[, 3], lty = 2, col = "green")Conclusión
Interpretando los valores de volumen y valor de las graficas es facil percatarse de saturacion de tendencia en los puntos bajos de la grafica, lo cuales significan que la apicultura en Mexico tiene un indice bajo de demanda y de atencion, la produccion se estanca en volumens demasiados bajos y de poco valor, un estanque masivo en el que la mayoria de la produccion tiende a asenturse en esa patron de rendimiento, es decir que el pais no tiene un desarrollo muy alto en apicultura.
Descarga este código
- Código de este archivo.
xfun::embed_file("Regresión_Lineal.Rmd")- Datos usados en este análisis.
xfun::embed_file("Prodmiel2018muni.csv")