Actividad - Regresión Lineal Simple

Se utilizan los datos de ofertas de vivienda descargadas del portal Fincaraiz

library(readxl)
dvivienda <- read_excel("C:/Users/pocho/Desktop/datos_vivienda (1).xlsx")
bd_vivienda = data.frame(dvivienda)

Punto 1

Análisis exploratorio: Se puede apreciar para ambos datos (Area_contruida y precio_millon) los valores mas representativos como:

summary(bd_vivienda)
##  Area_contruida  precio_millon  
##  Min.   : 80.0   Min.   :240.0  
##  1st Qu.: 86.0   1st Qu.:251.2  
##  Median : 97.0   Median :305.0  
##  Mean   :115.7   Mean   :332.1  
##  3rd Qu.:130.0   3rd Qu.:395.0  
##  Max.   :195.0   Max.   :480.0
require(ggplot2)
require(plotly)

gg1=ggplot(data = bd_vivienda, aes(y=bd_vivienda$Area_contruida)) + geom_boxplot()
ggplotly(gg1)
gg2=ggplot(data = bd_vivienda, aes(y=bd_vivienda$precio_millon)) + geom_boxplot()
ggplotly(gg2)

Punto 2

Análisis bivariado enfocado en la relación : y= precio y x=área

Coeficiente de correlación de Pearson de las variables: El coeficiente arroja 0,91 es decir que hay una relación lineal positifa fuerte

cor(bd_vivienda$Area_contruida,bd_vivienda$precio_millon)
## [1] 0.9190295

Grafico de dispersión

plot(x=bd_vivienda$Area_contruida, y=bd_vivienda$precio_millon,main="Gráfico dispersión", xlab = "Área Vivienda", ylab = "Precios Vivienda", pch=16)
abline(lm(bd_vivienda$precio_millon ~ bd_vivienda$Area_contruida))

Punto 3

Modelo de regresión lineal simple entre precio = f(area) +e

En el modelo de regresión lineal se muestra como el area es una variable con alta relacion y significancia (***) para el precio de la vivienda y explica el precio en un 84%

mod=lm(bd_vivienda$precio_millon~bd_vivienda$Area_contruida)
summary(mod)
## 
## Call:
## lm(formula = bd_vivienda$precio_millon ~ bd_vivienda$Area_contruida)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -51.673 -25.612  -6.085  24.875  67.650 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  86.234     22.479   3.836 0.000796 ***
## bd_vivienda$Area_contruida    2.124      0.186  11.422 3.45e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33.05 on 24 degrees of freedom
## Multiple R-squared:  0.8446, Adjusted R-squared:  0.8381 
## F-statistic: 130.5 on 1 and 24 DF,  p-value: 3.45e-11

Ahora para explicar \(y = \beta 0 + \beta 1x + u\) sobre los datos area y precio, siendo \(\beta 0\) el intercepto 86.23387 y \(\beta 1\) el parámetro que cambia cuando se producen modificaciones en x igual a 2.12397

Es decir que, si encontramos una vivienda con un area de 170 metros cuadrados el valor probable de esta vivienda puede ser 447 millones de pesos.

mod$coefficients
##                (Intercept) bd_vivienda$Area_contruida 
##                   86.23387                    2.12397
## Una casa que tenga 170 metros cuadrados puede constar:

86.23387+(2.12397 *170)
## [1] 447.3088

Punto 4

Intervalo de confianza (95%) para el coeficiente β1

confint(mod,mod$coefficients,level = 0.95)
##                              2.5 %   97.5 %
## <NA>                            NA       NA
## bd_vivienda$Area_contruida 1.74017 2.507771

Con esto se puede entender que el precio puede variar un poco (1.7 millones) con una confiaza del 95%

Punto 5

Calcular e interpretar el indicador de bondad y ajuste R\(^{2}\).

Como lo explica el coeficiente de determinacion y bondad, este resultado de 0.8446152 tiende a 1 y con rango entre 0.7 y 0.9 tiene un ajuste bueno

a=summary(mod)
a$r.squared
## [1] 0.8446152

Punto 6

Precio promedio estimado para un apartamento de 110 metros cuadrados: 319.8 millones de pesos

Precio por encima de un apartamento de 110 metros cuadrados: 333.4 millones de pesos

Precio por debajo de un apartamento de 110 metros cuadrados: 306.3 millones de pesos

bd_vivienda$Area_contruida[1]=110
b=data.frame(predict.lm(mod,newdata = list(bd_vivienda$Area_contruida),interval = "confidence",level = 0.95))

b[1,]
##        fit      lwr      upr
## 1 319.8706 306.3133 333.4279

¿Considera entonces con este resultado que un apartemento en la misma zona con 110 metros cuadrados en un precio de 200 millones seria una buena oferta?

R// No, puesto que claramente estaría por debajo de lo que se espera como minimo (306 millones), claramente se tiene que verificar temas como habitaciones, temas lo reparaciones y estado de la casa pero sigue siendo un valor muy bajo como propuesta.

Punto 7

Supuestos: Donde se observa que la tabla de normalidad se ajusta (no del todo) a la linea de normalidad

par(mfrow=c(2,2))

plot(mod)

Punto 8

bd_vivienda$Area_contruida
##  [1] 110.00 118.00 130.00 181.00  86.00  98.00 170.00  96.00  85.00 170.00
## [11]  87.00 118.42  86.00  85.00  96.00  86.00  86.00 130.00 134.00  80.00
## [21] 130.00  87.00 130.00  89.00 195.00 170.00
mod1=lm(bd_vivienda$precio_millon~log(bd_vivienda$Area_contruida))
summary(mod1)
## 
## Call:
## lm(formula = bd_vivienda$precio_millon ~ log(bd_vivienda$Area_contruida))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -76.880 -19.637   0.661  22.853  57.853 
## 
## Coefficients:
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                      -946.81     105.15  -9.005 3.65e-09 ***
## log(bd_vivienda$Area_contruida)   270.97      22.24  12.184 9.12e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 31.28 on 24 degrees of freedom
## Multiple R-squared:  0.8608, Adjusted R-squared:  0.855 
## F-statistic: 148.4 on 1 and 24 DF,  p-value: 9.119e-12
par(mfrow=c(2,2))
plot(mod1)