U1A8

Andrea Felix

25/9/2020

Regresión lineal simple

Importar paquete

Paquete

library(readxl)

Buscar ruta del archivo

file.choose()
## [1] "C:\\Users\\Andrea\\Documents\\U1A8.Rmd"

##Cargar excel de las temperaturas entre los dos estados: SONORA y TAMAULIPAS

temp <-"C:\\Users\\Andrea\\Documents\\PROBABILIDAD\\TEMPE.xlsx"

##Cargar datos: SONORA y TAMAULIPAS

tempo <- read_excel(temp)

names(tempo)
## [1] "SONORA"     "TAMAULIPAS"

Visualizar: SONORA y TAMAULIPAS

head(tempo)
## # A tibble: 6 x 2
##   SONORA TAMAULIPAS
##    <dbl>      <dbl>
## 1   14.7       19.5
## 2   15.7       19.1
## 3   17.7       25.2
## 4   21         27.7
## 5   25.8       28.2
## 6   29.8       28.7

Análisis de correlación

  • Matriz de diagramas de dispersión
pairs(tempo)

A continuación se hará una cuantificación del grado de relación lineal, por medio de la matriz de coeficientes de correlación.

cor(tempo)
##              SONORA TAMAULIPAS
## SONORA     1.000000   0.887487
## TAMAULIPAS 0.887487   1.000000

Recta de mínimos cuadrados

regresion <- lm(SONORA ~ TAMAULIPAS, data=tempo)
summary(regresion)
## 
## Call:
## lm(formula = SONORA ~ TAMAULIPAS, data = tempo)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -5.153 -2.008  1.364  2.194  3.831 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) -14.8376     8.2571  -1.797  0.12247   
## TAMAULIPAS    1.4798     0.3137   4.717  0.00327 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.641 on 6 degrees of freedom
## Multiple R-squared:  0.7876, Adjusted R-squared:  0.7522 
## F-statistic: 22.25 on 1 and 6 DF,  p-value: 0.003267

Con base a lo estimado en el análisis de regresión lineal, obtenemos la ecuación de la recta de mínimos cuadrados

\[y = -14.8376 + 1.479x \]

Gráfica de la recta de mínimos cuadrados

plot (tempo$SONORA, tempo$TAMAULIPAS, xlab="SONORA",ylab="TAMAULIPAS")
abline(regresion)

Modelación (cálculo) de predicciones

nuevas.TAMAULIPAS <- data.frame(TAMAULIPAS=seq(20,60))
predict(regresion,nuevas.TAMAULIPAS)
##        1        2        3        4        5        6        7        8 
## 14.75864 16.23845 17.71826 19.19807 20.67788 22.15769 23.63750 25.11731 
##        9       10       11       12       13       14       15       16 
## 26.59712 28.07693 29.55674 31.03655 32.51636 33.99617 35.47598 36.95579 
##       17       18       19       20       21       22       23       24 
## 38.43560 39.91541 41.39522 42.87503 44.35484 45.83465 47.31446 48.79427 
##       25       26       27       28       29       30       31       32 
## 50.27408 51.75389 53.23370 54.71351 56.19332 57.67313 59.15294 60.63275 
##       33       34       35       36       37       38       39       40 
## 62.11256 63.59237 65.07218 66.55199 68.03180 69.51161 70.99142 72.47123 
##       41 
## 73.95104

Inferencia en el modelo de regresión simple

*Suponemos ahora que los datos proceden de un modelo de regresión simple, de la forma:

\[y_i = \beta_0 + \beta_1 x_i + \epsilon_i, \ \ \ \ i=1,\ldots,n, \] Donde:

  • Los errores aleatorios \(\epsilon_i\) son independientes con distribución normal 0 y varianza \(\sigma^2\)

  • Los errores típicos de los stimadores de los parámetros $ _0 y _1 $ se encuentran en la columna std error serían de manera correspondiente: 29.6376 y 0.7243

Cálculo del nivel de confianza

  • Intervalo de confianza para el 95% de los datos
confint(regresion)
##                   2.5 %   97.5 %
## (Intercept) -35.0419798 5.366861
## TAMAULIPAS    0.7122189 2.247401
  • Intervalo de confianza para el 90% de los datos
confint(regresion, level=0.90)
##                     5 %     95 %
## (Intercept) -30.8826128 1.207494
## TAMAULIPAS    0.8702384 2.089382

Representación gráfica de los intervalos de confianza

nuevas.TAMAULIPAS <- data.frame(TAMAULIPAS=seq(20,60))
#Gráfico de dispersión y recta
plot (tempo$TAMAULIPAS, tempo$SONORA, xlab="TAMAULIPAS",ylab="SONORA")
abline(regresion)

# Intervalos de confianza de la respuesta media
# ic es una matriz con tres columnas:
#La primera es la predicción, y las otras son los extremos del intervalo
ic <- predict(regresion,nuevas.TAMAULIPAS, interval = "confidence")
lines(nuevas.TAMAULIPAS$TAMAULIPAS, ic[, 2], lty=2)
lines(nuevas.TAMAULIPAS$TAMAULIPAS, ic[, 3], lty=2)

#Intervalos de predicción
ic <- predict(regresion,nuevas.TAMAULIPAS, interval = "prediction")
lines(nuevas.TAMAULIPAS$TAMAULIPAS, ic[, 2], lty=2, col = "red")
lines(nuevas.TAMAULIPAS$TAMAULIPAS, ic[, 3], lty=2, col = "red")