Acontinuación vamos a cargar los datos de precios de vivienda para la zona (barrio) multicentro en Cali.
library(readxl)
datos = read_excel("~/Desktop/Datos_Vivienda2.xlsx")
datos
## # A tibble: 27 x 12
## Zona piso Estrato precio area parqueaderos Banos Habitaciones Tipo Barrio
## <chr> <chr> <dbl> <dbl> <dbl> <chr> <dbl> <dbl> <chr> <chr>
## 1 Zona… 3 5 250 86 NA 2 3 Apar… multi…
## 2 Zona… 3 5 385 118 2 3 4 Apar… multi…
## 3 Zona… NA 5 395 130 NA 3 4 Apar… multi…
## 4 Zona… 4 6 419 181 2 3 3 Apar… multi…
## 5 Zona… 4 5 240 86 1 2 3 Apar… multi…
## 6 Zona… 3 5 320 98 2 2 3 Apar… multi…
## 7 Zona… 4 5 480 170 2 4 4 Apar… multi…
## 8 Zona… 4 5 268 96 1 3 3 Apar… multi…
## 9 Zona… NA 5 240 85 1 3 3 Apar… multi…
## 10 Zona… 4 5 450 170 2 4 4 Apar… multi…
## # … with 17 more rows, and 2 more variables: cordenada_longitud <dbl>,
## # Cordenada_latitud <dbl>
Se observa que la base de datos contiene un total de 27 ofertas de vivienda (apartamentos) en el barrio multicentro. Con un total de 12 variables referentes a las caracteristicas de la vivienda como: precio, area, estrato entre otras.
summary(datos$precio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 240.0 252.5 320.0 366.1 402.5 1250.0
hist(datos$precio,col="gray")
datos2=datos[-25,]
summary(datos2$precio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 240.0 251.2 305.0 332.1 395.0 480.0
hist(datos2$precio,col="gray")
Inicialmente se observa un valor atipico en el precio de las viviendas de las de 1200 millones de pesos que se considera demasiado alto de acuerdo a los resultados. Se elimina este registro y genera nuevamente el histograma con un comportamiento bimodal (dos picos) indicando posiblemente dos tipos de vivienda con precios diferenciados.
plot(datos2$area,datos2$precio)
cor(datos2$area,datos2$precio)
## [1] 0.9190295
Se observa en la grafica de disperción una relación directa es decir a mayor area del apto mayor precio. Adicionalmente el coeficiente de correlación lineal de Pearson es 0.91 indicando una relación fuerte entre ellas dos.
mod=lm(precio~area,data=datos2)
mod
##
## Call:
## lm(formula = precio ~ area, data = datos2)
##
## Coefficients:
## (Intercept) area
## 86.234 2.124
Se observa que los valores optimos son \(\beta_0=86.23\) y \(\beta_1=2.12\) de acuerdo con MCO. Es decir el modelo estimado seria de la forma:
\(precio= \beta_0 + \beta_1*area\) es decir \(precio= 86.234 + 2.124*area\)
La interpretación de los valores es: teniendo en cuenta que \(\beta_0\) no se debe interpretar ya que el rango de X (area) no contiene el cero, vamos a suponer que este lo es. En tal caso diriamos que el precio de una vivienda cuya area contruida es de cero seria aproximadamente de 86.23 millones de pesos (ejemplo precio del lote sin construir). El \(\beta_1\) nos indica el cambio en el precio por cada metro cuadrado adicional de area. Es decir es el precio promedio del metro cuadrado construido en la zona.
plot(datos2$area,datos2$precio)
abline(mod,col="red")
Se observa que la linea roja es el modelo estimado por MCO que garantiza la menor suma de cuadrados del error. Menor distancia de los puntos a la linea.
¿Cual seria el precio estimado de un apartamento de 110 metros cuadrados en la zona de acuerdo al modelo?
predict(mod,list(area=110))
## 1
## 319.8706
El modelo predice que un apartamento de 110 metros cuadrados en promedio tiene un precio de 319.87 millones.
¿Si se esta negociando un apto de estas caracteristicas en 305 millones se considera buena oferta? Ahora si el precio se baja a 280 millones??
predict(mod,list(area=110),interval = "confidence",level = 0.95)
## fit lwr upr
## 1 319.8706 306.3133 333.4279
Se observa que el precio promedio de un apto de 110 mt2 en la zona se encuentra entre los 306 a 333 millones de pesos con un 95% de confianza. Es decir que la oferta de 305 es levemente interesante pero la de 280 si se encuentra por debajo del intervalo y se considera una buena oportunidad de negocio.