Carga de librerías e Importación de Datos
suppressWarnings({
library(ggplot2)
library(ggmap)
library(dplyr)
library(naniar)
library(mice)
library(plotly)
library(datasets)
library(gridExtra)
library(leaflet)
library(boot)
library(paqueteMODELOS)
data("vivienda")
})
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
## Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
## OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.
##
## Attaching package: 'dplyr'
##
##
## The following objects are masked from 'package:stats':
##
## filter, lag
##
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
##
##
## Attaching package: 'mice'
##
##
## The following object is masked from 'package:stats':
##
## filter
##
##
## The following objects are masked from 'package:base':
##
## cbind, rbind
##
##
##
## Attaching package: 'plotly'
##
##
## The following object is masked from 'package:ggmap':
##
## wind
##
##
## The following object is masked from 'package:ggplot2':
##
## last_plot
##
##
## The following object is masked from 'package:stats':
##
## filter
##
##
## The following object is masked from 'package:graphics':
##
## layout
##
##
##
## Attaching package: 'gridExtra'
##
##
## The following object is masked from 'package:dplyr':
##
## combine
##
##
## Loading required package: broom
##
## Loading required package: GGally
##
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Loading required package: knitr
##
## Loading required package: summarytools
La compañía C&A recibió una solicitud de una empresa internacional para ubicar a dos de sus empleados y sus familias en la ciudad de Cali mediante la compra de dos viviendas. La agencia encontró en su análisis para la primera vivienda, que el precio promedio de las casas de estrato 4 en la zona norte que cumplen las condiciones de compra es de $328.4 millones. C&A desarrolló un Modelo de Regresión Lineal Múltiple (MRLM) para generar una oferta de 5 casas potenciales que cumplen con las condiciones de compra. El precio de las 5 casas es de $330 millones. De las 5 casas sugeridas, 3 de ellas se encuentran en estrato 4 y dos en estrato 5. Si se tuvieran el área construida y el número de habitaciones como criterios de elección, las casas con id 952 y id 3043 son las más grandes y cuentan con 275m² y 5 habitaciones. Estas dos opciones tienen 3 baños, uno más de lo establecido en las condiciones. Algo similar sucede con los parqueaderos ya que se registran 2 parqueaderos y en las condiciones de venta se establece 1. Las otras 3 opciones cuentan con 4 habitaciones y dos de ellas tienen 4 baños (ids 7471 y 1849). Para la segunda vivienda solicitada, C&A desarrolló un MRLM con el cual encontró que un apartamento que cumpla con las condiciones de compra en estrato 5 tiene un valor promedio de $653.2 millones y en estrato 6 de $794.7 millones. La agencia presenta en este caso, la oferta de 2 apartamentos potenciales que cumplen las condiciones de venta y cuyo precio es inferior a $850 millones. De los 2 apartamentos sugeridos, el de mayor valor tiene un área de 573m², 3 parqueaderos, 8 baños y 5 habitaciones, mientras que la otra opción tiene un área de 300m², 3 parqueaderos, 5 baños y 6 habitaciones. Para la solicitud concerniente a la casa en zona norte, la agencia recomienda las casas con id 952 y id 3043 por su tamaño, número de habitaciones y estrato. En el caso de la solicitud de apartamento en zona sur, C&A recomienda el apartamento con id 7512 de 300m² que cuenta con 6 habitaciones, 5 baños y 3 parqueaderos.
El siguiente informe ejecutivo profundiza en el análisis integral realizado por C&A agencia inmobiliaria, en respuesta a una solicitud de una empresa internacional. La corporación buscó ayuda para conseguir alojamiento residencial adecuado para dos de sus empleados y sus familias en la ciudad de Cali. Con criterios específicos delineados tanto para una casa en la región norte como para un apartamento en el distrito sur de Cali, este informe ilustra la minuciosa metodología empleada por C&A para identificar opciones residenciales óptimas que se alineen con las preferencias y consideraciones presupuestarias del cliente. El informe comienza explicando la metodología aplicada por C&A, aclarando los pasos involucrados en el filtrado y análisis del extenso conjunto de datos para discernir los conocimientos pertinentes. Posteriormente, el informe profundiza en los resultados obtenidos del análisis, arrojando luz sobre hallazgos clave sobre precios de propiedades, factores influyentes y opciones recomendadas adaptadas a las especificaciones del cliente. A través de este análisis integral, C&A se esfuerza por brindar al cliente recomendaciones prácticas destinadas a facilitar la toma de decisiones informadas y garantizar la adquisición de propiedades residenciales que encapsulen comodidad, conveniencia y valor. Como tal, este informe sirve como guía para el cliente, ofreciendo ideas estratégicas y recomendaciones para navegar por el confuso panorama de la adquisición de bienes raíces en Cali.
La compañía C&A recibió una solicitud de una empresa internacional para ubicar a dos de sus empleados y sus familias en la ciudad de Cali mediante la compra de dos viviendas. La primera vivienda tenía las siguientes condiciones: casa con área construida de 200m², 4 habitaciones, 2 baños, 1 parqueadero, estrato 4 o 5, ubicada en la zona norte de la ciudad y con un crédito preaprobado por el valor de $350 millones. La segunda vivienda tenía entre sus condiciones que fuera apartamento de 300m², 5 habitaciones, 3 baños, 3 parqueaderos, estrato 5 o 6, ubicada en la zona sur y con un preaprobado de $850 millones. La metodología para abordar cada solicitud consistió en los siguientes pasos: filtrado de los datos según las condiciones de compra, análisis exploratorio de datos enfocado a la correlación de cada variable independiente con el precio de la vivienda, construcción de MRLM para estimar precio en función de las condiciones de compra, validación de los supuestos del modelo, predicción del precio según las condiciones de compra y estimación de las ofertas potenciales.
En el filtrado de los datos a partir de las condiciones de compra se obtuvieron 432 registros para las casas en zona norte y 1495 registros para apartamentos en zona sur. A continuación, se muestran los primeros 3 registros de cada solicitud:
vivCasaZonaNorte <- subset(vivienda,
tipo=="Casa" &
zona=="Zona Norte" &
(estrato == 4 | estrato == 5))
head(vivCasaZonaNorte, 3)
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1209 Zona N… 02 5 320 150 2 4 6
## 2 1592 Zona N… 02 5 780 380 2 3 3
## 3 4460 Zona N… 02 4 625 355 3 5 5
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
vivAptoZonaSur <- subset(vivienda,
tipo=="Apartamento" &
zona=="Zona Sur" &
(estrato == 5 | estrato == 6))
head(vivAptoZonaSur, 3)
## # A tibble: 3 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 8199 Zona S… <NA> 6 875 194 2 5 3
## 2 8102 Zona S… 05 5 344 107 2 2 3
## 3 7073 Zona S… 02 6 910 182 2 4 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
En el EDA se realizaron los siguientes pasos: revisión de datos faltantes, imputación de datos de parqueaderos para ambas solicitudes y análisis de la correlación entre cada variable con el precio. El siguiente pasó consistió en la construcción del MRLM para estimar el precio de las viviendas en función de los atributos de las condiciones. Para este fin se utilizó el método de mínimos cuadrados ordinarios a través de la función “lm”. Posteriormente, se realizó la validación de los supuestos de los modelos seleccionando índices aleatorios, con el fin de conformar conjuntos de entrenamiento con el 70% de los datos disponibles en cada solicitud. Finalmente, se realizó la predicción del precio de la vivienda usando como condicionantes los criterios de compra definidos en la solicitud y se analizaron las opciones de oferta para cada tipo de vivienda. El detalle de cada uno de los aspectos metodológicos y sus respectivos resultados se pueden apreciar en el anexo de Metodología y Resultados.
Correlación entre precio de las casas y área construida
vivCasaZonaNortePro <- select(vivCasaZonaNorte, -zona, -tipo, -piso)
# Scatter plot de precio vs. area
plot_ly(data = vivCasaZonaNortePro, x = ~areaconst, y = ~preciom, mode = "markers", text = ~paste("Precio: $", preciom)) %>%
layout(title = "Precio vs. Área",
xaxis = list(title = "Área"),
yaxis = list(title = "Precio"))
## No trace type specified:
## Based on info supplied, a 'scatter' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter
Influencia del número de habitaciones sobre el precio de las casas
# Box plot de precio por número de alcobas
plot_ly(data = vivCasaZonaNortePro, x = ~habitaciones, y = ~preciom, type = "box", color = ~factor(habitaciones)) %>%
layout(title = "Precio según Número de Habitaciones",
xaxis = list(title = "Número de Habitaciones"),
yaxis = list(title = "Precio"))
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Influencia del número de baños sobre el precio de las casas
# Box plot de precio por número de alcobas
plot_ly(data = vivCasaZonaNortePro, x = ~banios, y = ~preciom, type = "box", color = ~factor(banios)) %>%
layout(title = "Precio según Número de Baños",
xaxis = list(title = "Número de Baños"),
yaxis = list(title = "Precio"))
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Influencia del estrato sobre el precio de las casas
# Box plot de precio por número de alcobas
plot_ly(data = vivCasaZonaNortePro, x = ~estrato, y = ~preciom, type = "box", color = ~factor(estrato)) %>%
layout(title = "Precio según el estrato",
xaxis = list(title = "Estrato"),
yaxis = list(title = "Precio"))
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
## Warning in RColorBrewer::brewer.pal(N, "Set2"): minimal value for n is 3, returning requested palette with 3 different levels
Correlación entre precio de los apartamentos y área construida
vivAptoZonaSurPro <- select(vivAptoZonaSur, -zona, -tipo, -piso)
# Scatter plot de precio vs. area
plot_ly(data = vivAptoZonaSurPro, x = ~areaconst, y = ~preciom, mode = "markers", text = ~paste("Precio: $", preciom)) %>%
layout(title = "Precio vs. Área",
xaxis = list(title = "Área"),
yaxis = list(title = "Precio"))
## No trace type specified:
## Based on info supplied, a 'scatter' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter
Influencia del número de habitaciones sobre el precio de los apartamentos
# Box plot de precio por número de alcobas
plot_ly(data = vivAptoZonaSurPro, x = ~habitaciones, y = ~preciom, type = "box", color = ~factor(habitaciones)) %>%
layout(title = "Precio según Número de Habitaciones",
xaxis = list(title = "Número de Habitaciones"),
yaxis = list(title = "Precio"))
Influencia del número de baños sobre el precio de los apartamentos
# Box plot de precio por número de alcobas
plot_ly(data = vivAptoZonaSurPro, x = ~banios, y = ~preciom, type = "box", color = ~factor(banios)) %>%
layout(title = "Precio según Número de Baños",
xaxis = list(title = "Número de Baños"),
yaxis = list(title = "Precio"))
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Se utilizó el método de mínimos cuadrados ordinarios a través de la función lm
lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios, data = vivCasaZonaNortePro, subset = train)
Residuals: Min 1Q Median 3Q Max -769.48 -82.42 -23.43 55.51 949.09
Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) -71.09323 100.12633 -0.710 0.47825
areaconst 0.95051 0.06715 14.154 < 2e-16 * estrato 35.11993
20.93035 1.678 0.09443 .
habitaciones 21.23055 7.13524 2.975 0.00317 parqueaderos
6.30737 8.67489 0.727 0.46776
banios 5.52591 9.49877 0.582 0.56118
— Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05
‘.’ 0.1 ‘ ’ 1
Residual standard error: 168.6 on 292 degrees of freedom Multiple R-squared: 0.5398, Adjusted R-squared: 0.5319 F-statistic: 68.5 on 5 and 292 DF, p-value: < 2.2e-16
La agencia encontró en su análisis para la primera vivienda, que el precio promedio de las casas de estrato 4 en la zona norte que cumplen las condiciones de compra es de $328.4 millones. C&A desarrolló un Modelo de Regresión Lineal Múltiple (MRLM) con el cual evidenció que las variables que más influyen en el precio de las casas en orden de importancia son: el área, el número de baños, el estrato y el número de habitaciones. Para el caso del área, la agencia encontró que el incremento de 1 metro² equivale a un aumento estimado de $0.94 millones en el precio de la casa. En el caso de los baños, si la casa cuenta con 1 baño más el precio de la casa se incrementa en aproximadamente $19.42 millones. Para el caso del estrato, el cambio de éste de 4 a 5 significa un aumento en el precio promedio de la casa de $42.6 millones. La agencia estimó que el tener una habitación más incrementa el valor promedio de la casa en $12.4 millones.
lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios, data = vivAptoZonaSurPro)
Residuals: Min 1Q Median 3Q Max -1022.84 -52.87 1.80 43.33 889.80
Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) -711.57312 39.27457 -18.118 < 2e-16
areaconst 1.24594 0.06299 19.779 < 2e-16 estrato
141.50801 7.46654 18.952 < 2e-16 habitaciones -16.07190
5.47219 -2.937 0.00336 parqueaderos 75.47675 5.25944 14.351
< 2e-16 banios 45.79788 4.32974 10.578 < 2e-16
* — Signif. codes: 0 ‘’ 0.001 ‘’ 0.01
‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 110.7 on 1489 degrees of freedom Multiple R-squared: 0.7396, Adjusted R-squared: 0.7387 F-statistic: 845.8 on 5 and 1489 DF, p-value: < 2.2e-16
La agencia encontró en su análisis para la segunda vivienda, que el precio promedio de los aptos en la zona sur que cumplen las condiciones de compra en estrato 5 tiene un valor promedio de $653.2 millones y en estrato 6 de $794.7 millones. C&A desarrolló un MRLM con el cual evidenció que todas las variables a excepción del número de habitaciones influyen en el precio de los aptos. Para el caso del área, la agencia encontró que el incremento de 1 metro² equivale a un aumento estimado de $1.24 millones en el precio del apartamento. En el caso de los baños, si el apartamento cuenta con 1 baño más el precio de éste se incrementa en aproximadamente $47 millones. Para el caso del estrato, el cambio de éste de 5 a 6 significa un aumento en el precio promedio de los apartamentos de $142.7 millones.
Las ofertas potenciales de casas en modo tabular y en mapa de la ciudad se pueden visualizar en el anexo.
Las ofertas potenciales de apartamentos en modo tabular y en mapa de la ciudad se pueden visualizar en el anexo.
Refinamiento de los criterios de selección: Se sugiere revisar y ponderar los criterios de selección de las viviendas para tener criterios que faciliten la escogencia considerando las opciones planteadas.
Estrategia de negociación: Desarrollar una estrategia de negociación para garantizar el mejor trato posible para el cliente. Esto podría implicar aprovechar los conocimientos obtenidos de los MRLM para justificar las negociaciones de precios basadas en características específicas de la propiedad.
Consultar al cliente: Participar en consultas exhaustivas con el cliente para garantizar que las propiedades recomendadas satisfagan sus necesidades y preferencias. Esto puede implicar presentar opciones adicionales o ajustar los criterios de selección en función de los comentarios de los clientes.
Selección Óptima de Propiedades: A partir del análisis realizado, C&A ha identificado varias propiedades que cumplen con los criterios del cliente tanto para una casa en la zona norte como para un apartamento en la zona sur de Cali. Estas propiedades se han seleccionado en función de factores como el área, el número de habitaciones y la ubicación, así como su cumplimiento de las restricciones presupuestarias especificadas.
Información del análisis de regresión: El análisis de regresión reveló información clave sobre los factores que influyen en los precios de las propiedades, como el área, la cantidad de baños, el estrato y la cantidad de habitaciones. Estos hallazgos han informado el proceso de selección y han proporcionado una valiosa orientación para identificar propiedades que ofrecen el mejor valor para el cliente.
Recomendaciones a medida: C&A ha personalizado sus recomendaciones para cada propiedad basándose en un conocimiento integral de los requisitos y preferencias del cliente. Al presentar una lista seleccionada de opciones que se alinean con las necesidades del cliente, C&A tiene como objetivo facilitar un proceso de toma de decisiones informado y garantizando la satisfacción del cliente.