Regresion lineal simple y dispersion

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.

Fuente: https://la.mathworks.com/discovery/linear-regression.html

library(readr)
prod <- read_csv("~/Aplicada/Prodmiel2018muni.csv",show_col_types = FALSE)
prod <- data.frame( volumen = prod$Volumen , valor = prod$Valor)

Dispersion

  • Varianza
var(prod$volumen)
## [1] 14278.97
  • Desviacion estandar
sd(prod$valor)
## [1] 4623.515
  • Media
mean(prod$volumen)
## [1] 41.4816
  • Matriz de diagramas de dispersion
pairs(prod)

Matriz de coeficientes de correlacion

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)
##           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 ) y 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)
summary(regresion)
## 
## Call:
## lm(formula = valor ~ volumen, data = prod)
## 
## 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$volumen, prod$valor, xlab="volumen", ylab = "valor", 
     cex = .5)
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. A partir de la salida anterior, vemos que su valor en este caso es Multiple R-squared: 0.701.

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

Inferencia en modelo de regresion lineal simple

La ecuacion de la recta, tiene la siguiente forma

$$

y_i = _0 + _1 x_i + _i,     i=1,,n,

$$ donde los errores aleatorios ϵi son independientes con distribución normal de media 0 y varianza σ2 .

Bajo este modelo,

Los errores típicos de los estimadores de los parámetros β0 y β1 se encuentran en la columna Std Error de la salida anterior. En el ejemplo, sus valores son 29.638 y 0.724 respectivamente.

La columna t value contiene el estadístico t, es decir, cociente entre cada estimador y su error típico. Estos cocientes son la base para llevar a cabo los contrastes H0:β0=0 y H0:β1=0 . Los correspondientes p-valores aparecen en la columna Pr(>|t|). En este caso son muy pequeños por lo que se rechazan ambas hipótesis para los niveles de significación habituales.

El estimador de la desviación típica de los errores σ aparece como Residual standard error y su valor en el ejemplo es 43.5

Los intervalos de confianza para los parámetros se obtienen con el comando confint. El parámetro level permite elegir el nivel de confianza (por defecto es 0.95):

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 de 0 a 2000 (los de predicción en rojo):

nuevos.volumenes  <- data.frame(volumen = seq(0,500))

#Grafico de dispersion y recta 
plot(prod$volumen, prod$valor, xlab="volumen", ylab = "valor",cex = .5)
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,col="#4b00ff")
lines(nuevos.volumenes$volumen, ic[, 3], lty = 2, col="#4b00ff")