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
setwd("~/ESTADISTICA")
library(readr)
tablamiel <- read.csv("Prodmiel2018muni.csv" , header = TRUE)
names(tablamiel)
## [1] "Volumen" "Valor"
View(tablamiel)
var(tablamiel$Volumen)
## [1] 14278.97
var(tablamiel$Valor)
## [1] 21376889
sd(tablamiel$Valor)
## [1] 4623.515
sd(tablamiel$Volumen)
## [1] 119.4946
mean(tablamiel$Volumen)
## [1] 41.4816
mean(tablamiel$Valor)
## [1] 1778.336
pairs(tablamiel)
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(tablamiel)
## Volumen Valor
## Volumen 1.0000000 0.9920269
## Valor 0.9920269 1.0000000
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 = tablamiel)
summary(regresion)
##
## Call:
## lm(formula = Valor ~ Volumen, data = tablamiel)
##
## 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 del volumen de la mie en función del valor 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(tablamiel$Volumen, tablamiel$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.
nuevos.Volumenes <- data.frame(Volumen = seq(0,100))
predict(regresion, nuevos.Volumenes)
## 1 2 3 4 5 6 7 8
## 186.1166 224.5003 262.8841 301.2678 339.6516 378.0353 416.4191 454.8028
## 9 10 11 12 13 14 15 16
## 493.1865 531.5703 569.9540 608.3378 646.7215 685.1053 723.4890 761.8727
## 17 18 19 20 21 22 23 24
## 800.2565 838.6402 877.0240 915.4077 953.7915 992.1752 1030.5589 1068.9427
## 25 26 27 28 29 30 31 32
## 1107.3264 1145.7102 1184.0939 1222.4777 1260.8614 1299.2451 1337.6289 1376.0126
## 33 34 35 36 37 38 39 40
## 1414.3964 1452.7801 1491.1639 1529.5476 1567.9313 1606.3151 1644.6988 1683.0826
## 41 42 43 44 45 46 47 48
## 1721.4663 1759.8501 1798.2338 1836.6175 1875.0013 1913.3850 1951.7688 1990.1525
## 49 50 51 52 53 54 55 56
## 2028.5362 2066.9200 2105.3037 2143.6875 2182.0712 2220.4550 2258.8387 2297.2224
## 57 58 59 60 61 62 63 64
## 2335.6062 2373.9899 2412.3737 2450.7574 2489.1412 2527.5249 2565.9086 2604.2924
## 65 66 67 68 69 70 71 72
## 2642.6761 2681.0599 2719.4436 2757.8274 2796.2111 2834.5948 2872.9786 2911.3623
## 73 74 75 76 77 78 79 80
## 2949.7461 2988.1298 3026.5136 3064.8973 3103.2810 3141.6648 3180.0485 3218.4323
## 81 82 83 84 85 86 87 88
## 3256.8160 3295.1998 3333.5835 3371.9672 3410.3510 3448.7347 3487.1185 3525.5022
## 89 90 91 92 93 94 95 96
## 3563.8859 3602.2697 3640.6534 3679.0372 3717.4209 3755.8047 3794.1884 3832.5721
## 97 98 99 100 101
## 3870.9559 3909.3396 3947.7234 3986.1071 4024.4909
La ecuacion de la recta es así:
$$
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.
La columna t value contiene el estadístico t, es decir, cociente entre cada estimador y su error típico. Los correspondientes p-valores aparecen en la columna Pr(>|t|).
El estimador de la desviación típica de los errores σ aparece como Residual standard error
Los intervalos de confianza para los parámetros se obtienen con el comando confint. El parámetro level permite elegir el nivel 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 edades que va de 0 a 100 (los de predicción en rojo):
nuevos.Volumenes <- data.frame(Volumen = seq(0,1000))
#Grafico de dispersion y recta
plot(tablamiel$Volumen, tablamiel$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)
ANOVA
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
El análisis de varianza (ANOVA) puede determinar si las medias de tres o más grupos son diferentes. ANOVA utiliza la prueba F para evaluar estadísticamente la igualdad de las medias. En esta publicación, les mostraré cómo funcionan el ANOVA y la prueba F utilizando un ejemplo de ANOVA de un solo factor.
Pero, esperen un momento ¿alguna vez se han detenido a pensar por qué usarían un análisis de varianza para determinar si las medias son diferentes? También les mostraré de qué manera las varianzas proveen información sobre las medias.
Prueba F, F de Fisher La prueba F llevan el nombre de su estadística de prueba, F, que fue nombrado así en honor al científico inglés Ronald Fisher. La estadística F es simplemente un cociente de dos varianzas. Las varianzas son una medida de dispersión, es decir, qué tan dispersos están los datos con respecto a la media. Los valores más altos representan mayor dispersión.
La varianza es el cuadrado de la desviación estándar. Para nosotros los seres humanos, las desviaciones estándar son más fáciles de entender que las varianzas, porque están en las mismas unidades que los datos y no en unidades elevadas al cuadrado. Sin embargo, muchos análisis en realidad utilizan las varianzas en los cálculos.
Las estadísticas F se basan en la proporción de cuadrados medios. El término “cuadrados medios” puede parecer confuso, pero simplemente es una estimación de la varianza de la población que explica los grados de libertad (GL) utilizados para calcular esa estimación.
A pesar de ser una relación de varianzas, la prueba F se puede utilizar en una amplia variedad de situaciones. Como era de esperar, la prueba F puede evaluar la igualdad de las varianzas. Sin embargo, al cambiar las varianzas que se incluyen en la relación, la prueba F se convierte en una prueba muy flexible. Por ejemplo, las estadísticas F y las pruebas F se pueden utilizar para evaluar la significancia general de un modelo de regresión, para comparar el ajuste de diferentes modelos, para probar términos de regresión específicos y para evaluar la igualdad de las medias.
Los valores ajustados ŷ i y los residuos ei=ŷ i−yi se pueden obtener con los comandos fitted y residuals respectivamente. Los residuos estandarizados se obtienen con rstandard. Por ejemplo, el siguiente código obtiene una representación de los residuos estandarizados frente a los valores ajustados, que resulta útil al llevar a cabo el diagnóstico del modelo:
residuos <- rstandard(regresion)
valores.ajustados <- fitted(regresion)
plot(valores.ajustados, residuos)
En estadística se dice que un modelo predictivo presenta homocedasticidad cuando la varianza del error condicional a las variables explicativas es constante a lo largo de las observaciones.1.
No se observa ningún patrón especial, por lo que tanto la homocedasticidad como la linealidad resultan hipótesis razonables.
Grafico QQ
qqnorm(residuos)
qqline(residuos)
Al estar realizando esta actividad, siguiendo las instrucciones del profesor y prestando atención a cada cosa que explicaba, en este ejercicio aprendí como funcionan los intervalos de confianza y de prediccion, asi como tambien aprendí que los datos son normales cuando la mayoria de los datos se acewrcan hacia la media aritmetica.