ACTIVIDAD

Ejecute nuevamente los procedimientos vistos en clase con las variables:medv y rm.

Regresión lineal simple

Se pretende predecir el valor de la vivienda en función de la cantidad de habitaciones por vivienda

library(readxl)
datos <- read_excel("base de datos.xlsx")

Como se trata de regresión lineal simple, entonces vamos escoger solo dos variables:
Variable independiente X: Promedio de habitaciones por vivienda
Variable dependiente Y: Valor mediano de las casas ocupadas por el dueño en unidades de $1000s

X<-datos$rm
Y<-datos$medv
data<-data.frame(X,Y)
head(data)
##       X    Y
## 1 6.575 24.0
## 2 6.421 21.6
## 3 7.185 34.7
## 4 6.998 33.4
## 5 7.147 36.2
## 6 6.430 28.7

Empleando la función lm() se genera un modelo de regresión lineal por mínimos cuadrados en el que la variable respuesta es medv (Y) y el predictor lstat (X). La sintaxis de la función lm requiere indicar primero la ecuación que se desea estimar, indicando primero la variable dependiente y después del signo s las variables independientes, en este caso al ser una regresión simple, solo se indica una variable, finalmente se debe indicar en la opción data el nombre del objeto donde tomará los datos en este caso el objeto que llamamos data :

modelo <- lm(Y ~ X, data=data)
modelo$coefficients
## (Intercept)           X 
##  -34.670621    9.102109

De donde: \(\hat{\beta}_0=-34.67\) y \(\hat{\beta}_1=9.10\).Con estos datos, podemos decir que la ecuación de regresión estimada es:
\[y = -34.67+9.10x\].

Intervalo de confianza

coefci(modelo, level=.95)
##                  2.5 %     97.5 %
## (Intercept) -39.876641 -29.464601
## X             8.278855   9.925363

La interpretación de este intervalo de confianza es: Dado el coeficiente de confianza de 95%, en 95 de cada 100 casos, los intervalos como 8.28 ≤ β1 ≤ 9.93 contendrán al verdadero valor de β1.

Otra forma de hallar el intervalo de confianza

library(broom)
resultado<-modelo %>%
tidy()
names(resultado)<-c("Variable", "beta", "Error_estandar","t","p_value")
resultado
## # A tibble: 2 × 5
##   Variable      beta Error_estandar     t  p_value
##   <chr>        <dbl>          <dbl> <dbl>    <dbl>
## 1 (Intercept) -34.7           2.65  -13.1 6.95e-34
## 2 X             9.10          0.419  21.7 2.49e-74

Prueba de hipótesis de la regresión

\(H_0\): \(\beta_1\) \(=\) 0 (El promedio de habitaciones por vivienda no influye en el valor mediano de las casas ocupadas por el dueño.)
\(H_a\): \(\beta_1\) \(\neq\) 0 (El promedio de habitaciones por vivienda influye en el valor mediano de las casas ocupadas por el dueño.)

modelo %>% aov() %>% summary()
##              Df Sum Sq Mean Sq F value Pr(>F)    
## X             1  20654   20654   471.8 <2e-16 ***
## Residuals   504  22062      44                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

El punto crítico para esta prueba es \(F_{0.95,1,504}=3.86\) y dado que \(F_{cal} = 471.8 > F_{0.95,1,504}=3.86\) se rechaza la \(H_0\) , por lo tanto; al nivel de 0.05 de significancia, existe suficiente evidencia estadística para indicar que el promedio de habitaciones por vivienda influye en el valor mediano de las casas ocupadas por el dueño ocupadas por el dueño.

\(p − valor\) < 0.05, se rechaza la Ho

Estimación de la variabilidad

summary(modelo)$sigma**2 # Varianza de la regresión
## [1] 43.77357
summary(modelo)$sigma # desviación estandar de regresión o error estándar de regresión
## [1] 6.61616

Intervalo de confianza para la varianza de la regresión con \(\alpha\) = 0.10

Limite inferior:

LI.var = sum(modelo$residuals**2)/qchisq(0.95,df=504)
LI.var
## [1] 39.58462

Limite superior:

LS.var = sum(modelo$residuals**2)/qchisq(0.05,df=504)
LS.var
## [1] 48.70828

Ajuste del modelo

Coeficiente de determinación

summary(modelo)$r.squared
## [1] 0.4835255

Estimación y predicción

Estimación de la media \(\mu Y/X_o\)
predConf<-predict(modelo,interval="confidence",level=0.95)
ICMeanY<-cbind(X, Y,predConf)
head(ICMeanY)
##       X    Y      fit      lwr      upr
## 1 6.575 24.0 25.17575 24.55039 25.80110
## 2 6.421 21.6 23.77402 23.18536 24.36269
## 3 7.185 34.7 30.72803 29.78817 31.66790
## 4 6.998 33.4 29.02594 28.20203 29.84984
## 5 7.147 36.2 30.38215 29.46676 31.29755
## 6 6.430 28.7 23.85594 23.26582 24.44606

Para \(x_0 = 6.575\) se obtiene un intervalo de confianza de \(24.6 \leq \mu Y/X_o \leq25.80\) esto es, si el procentaje de promedio de habitaciones por vivienda es de 6.575% se estima que en promedio el valor mediano de las casas ocupadas por el dueño se encuentre entre 24.6 y 25.80

Predicción para una nueva observación \(y_o\)

S<-data
head(S)
##       X    Y
## 1 6.575 24.0
## 2 6.421 21.6
## 3 7.185 34.7
## 4 6.998 33.4
## 5 7.147 36.2
## 6 6.430 28.7
predY<-predict(modelo,S,interval="prediction",level=0.95)
IPY<-cbind(X, Y,predY)
head(IPY)
##       X    Y      fit      lwr      upr
## 1 6.575 24.0 25.17575 12.16206 38.18943
## 2 6.421 21.6 23.77402 10.76205 36.78599
## 3 7.185 34.7 30.72803 17.69545 43.76062
## 4 6.998 33.4 29.02594 16.00120 42.05067
## 5 7.147 36.2 30.38215 17.35131 43.41299
## 6 6.430 28.7 23.85594 10.84390 36.86798

Tambien para un valor específico de xo se puede hacer la predicción; por ejemplo para xo = 8.5

xo<-data.frame(X=8.5)
predY<-predict(modelo,xo,interval="prediction",level=0.95)
cbind(xo, predY)
##     X      fit      lwr      upr
## 1 8.5 42.69731 29.55862 55.83599

Para \(x_o\) = 10.5 se obtiene el intervalo de confianza \(29.6 \leq \mu Y/X_o \ 55.84.\) si el procentaje de promedio de habitaciones por vivienda es de 8.5%, se estima que el valor mediano de las casas ocupadas por el dueño se encuentre entre 29.6 y 55.84.