Regresion lineal simple

El análisis de la regresión lineal se utiliza para predecir el valor de una variable según el valor de otra.

Importar datos

setwd("~/Aplicada")
library(readr)
miel <- read_csv("miel.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.
View(miel)
names(miel)
## [1] "Volumen" "Valor"

Matriz de diagramas de dispersión

pairs(miel)

Matriz de coeficientes de correlacion

Es una medida de la relación (covariación) lineal entre dos variables cuantitativas contínuas (x, y). La manera más sencilla de saber si dos variables están correlacionadas es determinar si co-varían (varían conjuntamente).

cor(miel
    )
##           Volumen     Valor
## Volumen 1.0000000 0.9920269
## Valor   0.9920269 1.0000000

Estimacion 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 = miel )
summary(regresion)
## 
## Call:
## lm(formula = Valor ~ Volumen, data = 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.384 x \]

Representacion de la recta de minimos cuadrados

plot(miel$Valor, miel$miel, xlab="Volumen", ylab = "Valor")
## Warning: Unknown or uninitialised column: `miel`.
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.

Estimacion de predicciones

nuevas.Volumen <- data.frame(Volumen = seq(20, 220))
predict(regresion, nuevas.Volumen)
##         1         2         3         4         5         6         7         8 
##  953.7915  992.1752 1030.5589 1068.9427 1107.3264 1145.7102 1184.0939 1222.4777 
##         9        10        11        12        13        14        15        16 
## 1260.8614 1299.2451 1337.6289 1376.0126 1414.3964 1452.7801 1491.1639 1529.5476 
##        17        18        19        20        21        22        23        24 
## 1567.9313 1606.3151 1644.6988 1683.0826 1721.4663 1759.8501 1798.2338 1836.6175 
##        25        26        27        28        29        30        31        32 
## 1875.0013 1913.3850 1951.7688 1990.1525 2028.5362 2066.9200 2105.3037 2143.6875 
##        33        34        35        36        37        38        39        40 
## 2182.0712 2220.4550 2258.8387 2297.2224 2335.6062 2373.9899 2412.3737 2450.7574 
##        41        42        43        44        45        46        47        48 
## 2489.1412 2527.5249 2565.9086 2604.2924 2642.6761 2681.0599 2719.4436 2757.8274 
##        49        50        51        52        53        54        55        56 
## 2796.2111 2834.5948 2872.9786 2911.3623 2949.7461 2988.1298 3026.5136 3064.8973 
##        57        58        59        60        61        62        63        64 
## 3103.2810 3141.6648 3180.0485 3218.4323 3256.8160 3295.1998 3333.5835 3371.9672 
##        65        66        67        68        69        70        71        72 
## 3410.3510 3448.7347 3487.1185 3525.5022 3563.8859 3602.2697 3640.6534 3679.0372 
##        73        74        75        76        77        78        79        80 
## 3717.4209 3755.8047 3794.1884 3832.5721 3870.9559 3909.3396 3947.7234 3986.1071 
##        81        82        83        84        85        86        87        88 
## 4024.4909 4062.8746 4101.2583 4139.6421 4178.0258 4216.4096 4254.7933 4293.1771 
##        89        90        91        92        93        94        95        96 
## 4331.5608 4369.9445 4408.3283 4446.7120 4485.0958 4523.4795 4561.8633 4600.2470 
##        97        98        99       100       101       102       103       104 
## 4638.6307 4677.0145 4715.3982 4753.7820 4792.1657 4830.5495 4868.9332 4907.3169 
##       105       106       107       108       109       110       111       112 
## 4945.7007 4984.0844 5022.4682 5060.8519 5099.2357 5137.6194 5176.0031 5214.3869 
##       113       114       115       116       117       118       119       120 
## 5252.7706 5291.1544 5329.5381 5367.9218 5406.3056 5444.6893 5483.0731 5521.4568 
##       121       122       123       124       125       126       127       128 
## 5559.8406 5598.2243 5636.6080 5674.9918 5713.3755 5751.7593 5790.1430 5828.5268 
##       129       130       131       132       133       134       135       136 
## 5866.9105 5905.2942 5943.6780 5982.0617 6020.4455 6058.8292 6097.2130 6135.5967 
##       137       138       139       140       141       142       143       144 
## 6173.9804 6212.3642 6250.7479 6289.1317 6327.5154 6365.8992 6404.2829 6442.6666 
##       145       146       147       148       149       150       151       152 
## 6481.0504 6519.4341 6557.8179 6596.2016 6634.5854 6672.9691 6711.3528 6749.7366 
##       153       154       155       156       157       158       159       160 
## 6788.1203 6826.5041 6864.8878 6903.2715 6941.6553 6980.0390 7018.4228 7056.8065 
##       161       162       163       164       165       166       167       168 
## 7095.1903 7133.5740 7171.9577 7210.3415 7248.7252 7287.1090 7325.4927 7363.8765 
##       169       170       171       172       173       174       175       176 
## 7402.2602 7440.6439 7479.0277 7517.4114 7555.7952 7594.1789 7632.5627 7670.9464 
##       177       178       179       180       181       182       183       184 
## 7709.3301 7747.7139 7786.0976 7824.4814 7862.8651 7901.2489 7939.6326 7978.0163 
##       185       186       187       188       189       190       191       192 
## 8016.4001 8054.7838 8093.1676 8131.5513 8169.9351 8208.3188 8246.7025 8285.0863 
##       193       194       195       196       197       198       199       200 
## 8323.4700 8361.8538 8400.2375 8438.6213 8477.0050 8515.3887 8553.7725 8592.1562 
##       201 
## 8630.5400

Inferencia en modelo de regresion lineal simple

Los datos vienen de esta ecuacion:

\[ y_i = \beta_0 + \beta_1 x_i + \epsilon_i, \ \ \ \ i=1,\ldots,n, \] donde los errores aleatorios ϵi son independientes con distribución normal de media 0 y varianza σ2

Intervalos de confianza

confint(regresion)
##                 2.5 %    97.5 %
## (Intercept) 155.36564 216.86758
## Volumen      38.14056  38.62692
confint(regresion, level=0.90)
##                  5 %      95 %
## (Intercept) 160.3143 211.91889
## Volumen      38.1797  38.58779

Representacion grafica de los intervalos de confianza

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.

  • 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 intervalos de confianza para los parámetros se obtienen con el comando confint. El parámetro level permite elegir el nivel de confianza:

nuevas.Volumen <- data.frame(Volumen = seq(20, 220))
# Grafico de dispersion y recta 
plot(miel$Valor, miel$miel, xlab="Volumen", ylab = "Valor")
## Warning: Unknown or uninitialised column: `miel`.
abline(regresion)

# Intervalos de confianza de la respuesta media
# ic es una matriz con tres columnas: prediccion, las otras 2 son los extremos del intervalo

ic <- predict(regresion, nuevas.Volumen, interval = "confidence")
lines(nuevas.Volumen$Volumen, ic[, 2], lty = 2    )  #lwr
lines(nuevas.Volumen$Volumen, ic[, 3], lty = 3    )  #upr

# Intervalos de prediccion

ic <- predict(regresion, nuevas.Volumen, interval = "prediction")
lines(nuevas.Volumen$Volumen, ic[, 2], lty = 2, col="red"   )  #lwr
lines(nuevas.Volumen$Volumen, ic[, 3], lty = 3, col="red"   )  #upr

  • La tabla de analisis de Varianza
anova(regresion)
## Analysis of Variance Table
## 
## Response: Valor
##             Df     Sum Sq    Mean Sq F value    Pr(>F)    
## Volumen      1 3.2566e+10 3.2566e+10   95855 < 2.2e-16 ***
## Residuals 1547 5.2558e+08 3.3974e+05                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnostico del modelo

residuos <- rstandard(regresion)
valores.ajustados <- fitted(regresion)
plot(valores.ajustados, residuos)