Asunto: Recomendaciones para la compra de viviendas en Cali para la compañía internacional.
María, propietaria de la agencia de bienes raíces C&A en Cali, recibió una solicitud de asesoría por parte de una compañía internacional que busca adquirir dos viviendas en Cali para alojar a sus empleados y sus familias. Las características específicas solicitadas para las viviendas fueron cuidadosamente analizadas, y se utilizaron técnicas de modelación estadística para seleccionar las opciones más adecuadas.
Requisitos: Tipo: Casa Área construida: 200 m² Parqueaderos: 1 Baños: 2 Habitaciones: 4 Estrato: 4 o 5 Zona: Norte Crédito preaprobado: 350 millones de pesos Análisis y Resultados: Se realizó un análisis exhaustivo de las propiedades en la Zona Norte de Cali que cumplen con los criterios especificados. Se estimó un modelo de regresión lineal múltiple para predecir el precio de las viviendas en función de las características dadas. La opción más cercana a los requisitos establecidos es la propiedad con ID 1144.
ID: 1144 Precio: 320 millones de pesos Área Construida: 200 m² Parqueaderos: 2 Baños: 4 Habitaciones: 4 Estrato: 4 Ubicación: Zona Norte, Cali Esta opción es la más viable y está dentro del límite del crédito preaprobado. Se recomienda proceder con la compra de esta propiedad.
Requisitos: Tipo: Apartamento Área construida: 300 m² Parqueaderos: 3 Baños: 3 Habitaciones: 5 Estrato: 5 o 6 Zona: Sur Crédito preaprobado: 850 millones de pesos Análisis y Resultados: Se analizaron las opciones disponibles en la Zona Sur que cumplen con los requisitos especificados. Solo se encontró una opción que cumple con todos los criterios establecidos:
ID: 7512 Precio: 670 millones de pesos Área Construida: 300 m² Parqueaderos: 3 Baños: 5 Habitaciones: 6 Estrato: 5 Ubicación: Zona Sur, Cali Esta propiedad se encuentra por debajo del límite del crédito preaprobado y cumple con todos los requisitos, por lo que es la opción recomendada para la segunda solicitud.
Ambas propiedades recomendadas se han visualizado en un mapa interactivo para facilitar su ubicación. Este mapa ha sido proporcionado como un anexo para su revisión.
Se recomienda proceder con la adquisición de las dos propiedades identificadas, ya que cumplen con los criterios establecidos y se ajustan al presupuesto disponible. Las propiedades seleccionadas no solo ofrecen las características solicitadas, sino que también están ubicadas en zonas estratégicas de Cali.
# Cargar primero GGally
library(GGally)
## Warning: package 'GGally' was built under R version 4.3.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(ggplot2) # Cargar ggplot2 después de GGally
# Cargar otros paquetes necesarios
library(boot)
library(broom)
library(gridExtra)
library(knitr)
library(summarytools)
# Cargar el paquete y los datos
library(paqueteMODELOS)
data("vivienda")
# Verificar las primeras filas de los datos para asegurarnos de que se cargaron correctamente
head(vivienda)
## # A tibble: 6 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1147 Zona O… <NA> 3 250 70 1 3 6
## 2 1169 Zona O… <NA> 3 320 120 1 2 3
## 3 1350 Zona O… <NA> 3 350 220 2 2 4
## 4 5992 Zona S… 02 4 400 280 3 5 3
## 5 1212 Zona N… 01 5 260 90 1 2 3
## 6 1724 Zona N… 01 5 240 87 1 3 3
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
# Filtrar solo las ofertas de casas en la zona norte de la ciudad
filtro_norte_casas <- subset(vivienda, zona == "Zona Norte" & tipo == "Casa")
# Mostrar los primeros tres registros filtrados
head(filtro_norte_casas, 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 4057 Zona N… 02 6 750 445 NA 7 6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
# Instalar el paquete leaflet si no está instalado
if (!require(leaflet)) {
install.packages("leaflet")
}
# Cargar el paquete leaflet
library(leaflet)
# Cargar el paquete leaflet
library(leaflet)
# Crear un mapa para verificar la ubicación de las viviendas
leaflet(filtro_norte_casas) %>%
addTiles() %>%
addCircleMarkers(~longitud, ~latitud, label = ~as.character(barrio), radius = 3, color = "blue")
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
##
## Attaching package: 'plotly'
## 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
# Filtramos las columnas relevantes para el análisis
datos_filtrados <- filtro_norte_casas[, c("preciom", "areaconst", "estrato", "banios", "habitaciones")]
# Calculamos las correlaciones
correlaciones <- cor(datos_filtrados, use = "complete.obs")
# Visualizamos las correlaciones
plot_ly(
x = colnames(correlaciones),
y = rownames(correlaciones),
z = correlaciones,
type = "heatmap",
colorscale = "Viridis"
) %>%
layout(title = "Mapa de calor de correlaciones",
xaxis = list(title = ""),
yaxis = list(title = ""))
Precio (preciom) y Área Construida (areaconst): Hay una correlación positiva alta entre el precio y el área construida. Esto es esperado, ya que generalmente, a mayor área construida, mayor es el precio de la vivienda.
Precio (preciom) y Estrato: También existe una correlación positiva significativa entre el precio y el estrato socioeconómico. Las viviendas en estratos más altos suelen tener un precio más elevado.
Precio (preciom) y Baños (banios): La correlación es positiva, aunque no tan fuerte como con el área construida y el estrato. Esto indica que un mayor número de baños está asociado con un incremento en el precio, pero el efecto es menos pronunciado.
Precio (preciom) y Habitaciones: La correlación con el número de habitaciones es positiva pero más débil. Esto sugiere que, aunque el número de habitaciones influye en el precio, no lo hace de manera tan determinante como el área construida o el estrato.
Otras correlaciones: Hay una correlación significativa entre el área construida y el estrato, lo cual indica que en estratos más altos es más común encontrar viviendas con mayor área construida.
# Estimación del modelo de regresión lineal múltiple
modelo <- lm(preciom ~ areaconst + estrato + habitaciones + parqueaderos + banios, data = filtro_norte_casas)
# Resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = preciom ~ areaconst + estrato + habitaciones + parqueaderos +
## banios, data = filtro_norte_casas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -784.29 -77.56 -16.03 47.67 978.61
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -238.17090 44.40551 -5.364 1.34e-07 ***
## areaconst 0.67673 0.05281 12.814 < 2e-16 ***
## estrato 80.63495 9.82632 8.206 2.70e-15 ***
## habitaciones 7.64511 5.65873 1.351 0.177
## parqueaderos 24.00598 5.86889 4.090 5.14e-05 ***
## banios 18.89938 7.48800 2.524 0.012 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 155.1 on 429 degrees of freedom
## (287 observations deleted due to missingness)
## Multiple R-squared: 0.6041, Adjusted R-squared: 0.5995
## F-statistic: 130.9 on 5 and 429 DF, p-value: < 2.2e-16
Intercepto (Intercept): Estimate: -238.17090 Interpretación: Este valor representa el precio estimado de la vivienda cuando todas las variables independientes (área construida, estrato, número de habitaciones, número de parqueaderos y número de baños) son iguales a cero. Aunque no tiene un significado práctico directo, indica el punto de partida del modelo.
Área Construida (areaconst): Estimate: 0.67673 Interpretación: Por cada metro cuadrado adicional en el área construida, se espera que el precio de la vivienda aumente en aproximadamente 0.68 millones de pesos, manteniendo constantes las demás variables. Este coeficiente es altamente significativo (p < 2e-16), lo que refuerza su importancia en la determinación del precio.
Estrato (estrato): Estimate: 80.63495 Interpretación: Por cada incremento en un nivel de estrato, se espera que el precio de la vivienda aumente en aproximadamente 80.63 millones de pesos, manteniendo constantes las demás variables. Este es un coeficiente muy significativo, indicando que el estrato es un factor crucial en la determinación del precio.
Habitaciones (habitaciones): Estimate: 7.64511 Interpretación: Cada habitación adicional se asocia con un aumento en el precio de la vivienda de aproximadamente 7.65 millones de pesos, manteniendo constantes las demás variables. Sin embargo, este coeficiente no es estadísticamente significativo (p = 0.177), lo que sugiere que el número de habitaciones podría no ser un factor tan determinante.
Parqueaderos (parqueaderos): Estimate: 24.00598 Interpretación: Cada parqueadero adicional se asocia con un aumento en el precio de la vivienda de aproximadamente 24 millones de pesos, manteniendo constantes las demás variables. Este coeficiente es significativo (p < 0.001).
Baños (banios): Estimate: 18.89938 Interpretación: Cada baño adicional se asocia con un aumento en el precio de la vivienda de aproximadamente 18.9 millones de pesos, manteniendo constantes las demás variables. Este coeficiente es también significativo (p = 0.012).
R-cuadrado (Multiple R-squared): Valor: 0.6041 Interpretación: Aproximadamente el 60.41% de la variabilidad en el precio de las viviendas se explica por el modelo, lo cual es un buen ajuste, aunque existe espacio para mejorar.
Errores Estándar y Valores P: Interpretación: Los errores estándar de las estimaciones son relativamente pequeños para las variables significativas, lo que refuerza la confiabilidad de las estimaciones. Los valores p asociados indican que, excepto por el número de habitaciones, todas las demás variables son significativas en el modelo.
Conclusión: El modelo sugiere que el área construida, el estrato, el número de parqueaderos y el número de baños son factores importantes que afectan el precio de las viviendas en la Zona Norte de Cali. El número de habitaciones, aunque intuitivamente importante, no muestra una influencia estadísticamente significativa en el precio en este caso.
# Validación de supuestos del modelo
# 1. Residuals vs Fitted para detectar homocedasticidad
plot(modelo, which = 1)
# 2. Normal Q-Q plot para verificar normalidad de los residuos
plot(modelo, which = 2)
# 3. Scale-Location plot para revisar homocedasticidad
plot(modelo, which = 3)
# 4. Cook's distance para identificar puntos influyentes
plot(modelo, which = 4)
# 5. Multicolinealidad (VIF - Variance Inflation Factor)
library(car)
## Warning: package 'car' was built under R version 4.3.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.3.3
##
## Attaching package: 'car'
## The following object is masked from 'package:boot':
##
## logit
vif(modelo)
## areaconst estrato habitaciones parqueaderos banios
## 1.460998 1.307757 1.721015 1.226334 1.967421
Residuals vs Fitted: Observación: Este gráfico muestra cómo los residuos (diferencias entre los valores observados y los valores predichos por el modelo) se comportan frente a los valores ajustados. Idealmente, los residuos deberían estar distribuidos aleatoriamente alrededor de cero, sin mostrar ningún patrón claro. Interpretación: En tu gráfico, los residuos parecen estar distribuidos de manera relativamente aleatoria, pero hay cierta dispersión creciente en valores ajustados más altos, lo que podría sugerir problemas de homocedasticidad (varianza no constante de los residuos).
Normal Q-Q Plot: Observación: Este gráfico evalúa la normalidad de los residuos comparando la distribución de los residuos con una distribución normal teórica. Interpretación: En el gráfico Q-Q, los puntos se desvían de la línea diagonal en los extremos, lo que indica que los residuos no siguen perfectamente una distribución normal. Este es un problema común en muchos modelos de regresión y podría deberse a outliers o a una mala especificación del modelo.
Scale-Location Plot: Observación: Este gráfico verifica la homocedasticidad de los residuos (si la varianza de los residuos es constante en todos los niveles de los valores ajustados). Interpretación: El gráfico muestra una tendencia creciente, lo que sugiere heterocedasticidad (la varianza de los residuos aumenta con el valor ajustado). Esto indica que los supuestos de homocedasticidad no se cumplen completamente en el modelo.
Cook’s Distance: Observación: Este gráfico identifica puntos de datos influyentes que podrían estar afectando de manera desproporcionada los resultados del modelo. Interpretación: Hay varios puntos que se destacan en el gráfico de Cook’s Distance (por ejemplo, el punto 632), lo que indica que estos son observaciones influyentes. Estos puntos podrían estar ejerciendo una influencia significativa en la estimación de los coeficientes del modelo.
Multicolinealidad (VIF): Observación: El Factor de Inflación de la Varianza (VIF) mide cuánto aumenta la varianza de un estimador debido a la multicolinealidad. Interpretación: Los valores de VIF obtenidos están por debajo de 2, lo que indica que no hay problemas significativos de multicolinealidad entre las variables predictoras. Un VIF mayor de 10 generalmente se considera problemático, pero tus valores están muy por debajo de este umbral.
Conclusión y Sugerencias: Normalidad de Residuos: Los residuos no son perfectamente normales, lo que podría afectar la precisión de los intervalos de confianza y pruebas de hipótesis. Heterocedasticidad: Hay indicios de que la varianza de los residuos no es constante, lo que podría sesgar las estimaciones de los coeficientes estándar. Puntos Influyentes: Sería útil investigar las observaciones influyentes (como la observación 632) para determinar si deben excluirse o si indican la necesidad de un modelo diferente. Sugerencias: Podrías considerar transformar las variables (por ejemplo, aplicar logaritmos) o utilizar un modelo robusto que sea menos sensible a la heterocedasticidad y los outliers.
# Predicción del precio para la primera solicitud
nueva_vivienda <- data.frame(
areaconst = 200,
estrato = 4,
habitaciones = 4,
parqueaderos = 1,
banios = 2
)
prediccion_precio <- predict(modelo, nueva_vivienda)
prediccion_precio
## 1
## 312.101
El precio predicho es de aproximadamente 312 millones de pesos, lo cual está por debajo del límite del crédito preaprobado de 350 millones de pesos. Esto significa que la solicitud podría considerarse viable desde el punto de vista financiero.
# Filtrar posibles ofertas que se ajusten a la solicitud
ofertas_posibles <- subset(filtro_norte_casas,
areaconst >= 180 & areaconst <= 220 &
estrato == 4 &
habitaciones == 4 &
parqueaderos == 1 &
banios == 2 &
preciom <= 350)
# Mostrar las ofertas posibles
ofertas_posibles
## # A tibble: 0 × 13
## # ℹ 13 variables: id <dbl>, zona <chr>, piso <chr>, estrato <dbl>,
## # preciom <dbl>, areaconst <dbl>, parqueaderos <dbl>, banios <dbl>,
## # habitaciones <dbl>, tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
# Relajando criterios: ampliar el rango de área construida y el número de parqueaderos
ofertas_posibles_relajadas <- subset(filtro_norte_casas,
areaconst >= 180 & areaconst <= 220 &
estrato == 4 &
preciom <= 350)
# Mostrar las ofertas posibles con criterios relajados
ofertas_posibles_relajadas
## # A tibble: 5 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 4511 Zona N… <NA> 4 275 190 NA 2 3
## 2 5412 Zona N… <NA> 4 280 180 NA 3 3
## 3 2837 Zona N… <NA> 4 340 207 NA 4 4
## 4 1144 Zona N… <NA> 4 320 200 2 4 4
## 5 515 Zona N… <NA> 4 280 180 NA 3 4
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
Opciones disponibles: ID 4511:
Precio: 275 millones Área Construida: 190 m² Parqueaderos: No disponible Baños: 2 Habitaciones: 3 ID 5412:
Precio: 280 millones Área Construida: 180 m² Parqueaderos: No disponible Baños: 3 Habitaciones: 3 ID 2837:
Precio: 340 millones Área Construida: 207 m² Parqueaderos: No disponible Baños: 4 Habitaciones: 4 ID 1144:
Precio: 320 millones Área Construida: 200 m² Parqueaderos: 2 Baños: 4 Habitaciones: 4 ID 515:
Precio: 280 millones Área Construida: 180 m² Parqueaderos: No disponible Baños: 3 Habitaciones: 4 Análisis: Opción más cercana: La opción con ID 1144 es la que más se ajusta a las características solicitadas (estrato 4, 200 m² de área construida, 2 parqueaderos, 4 baños, 4 habitaciones) y está dentro del límite de 350 millones, con un precio de 320 millones. Es una opción viable y muy cercana a lo solicitado.
# Instalar y cargar el paquete leaflet
if (!require("leaflet")) {
install.packages("leaflet")
}
library(leaflet)
# Filtrar las opciones seleccionadas
opciones_seleccionadas <- filtro_norte_casas[filtro_norte_casas$id %in% c(4511, 5412, 2837, 1144, 515), ]
# Crear un mapa interactivo
mapa <- leaflet(opciones_seleccionadas) %>%
addTiles() %>%
addMarkers(~longitud, ~latitud,
popup = ~paste("ID:", id, "<br>",
"Precio:", preciom, "millones<br>",
"Área:", areaconst, "m²<br>",
"Habitaciones:", habitaciones, "<br>",
"Baños:", banios, "<br>",
"Parqueaderos:", parqueaderos))
# Mostrar el mapa
mapa
# Filtrar solo las ofertas de apartamentos en la zona sur de la ciudad
filtro_sur_apartamentos <- subset(vivienda, zona == "Zona Sur" & tipo == "Apartamento")
# Filtrar posibles ofertas que se ajusten a la segunda solicitud
ofertas_posibles_2 <- subset(filtro_sur_apartamentos,
areaconst >= 280 & areaconst <= 320 &
estrato %in% c(5, 6) &
parqueaderos >= 3 &
habitaciones >= 5 &
banios >= 3 &
preciom <= 850)
# Mostrar las ofertas posibles
ofertas_posibles_2
## # A tibble: 1 × 13
## id zona piso estrato preciom areaconst parqueaderos banios habitaciones
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 7512 Zona S… <NA> 5 670 300 3 5 6
## # ℹ 4 more variables: tipo <chr>, barrio <chr>, longitud <dbl>, latitud <dbl>
ID 7512: Precio: 670 millones Área Construida: 300 m² Parqueaderos: 3 Baños: 5 Habitaciones: 6 Estrato: 5 Análisis: Esta opción cumple con todos los criterios establecidos para la segunda solicitud y, además, el precio de 670 millones de pesos está por debajo del límite del crédito preaprobado de 850 millones de pesos. Esto hace que la opción sea muy viable y recomendable para la solicitud.
# Instalar y cargar el paquete leaflet
if (!require("leaflet")) {
install.packages("leaflet")
}
library(leaflet)
# Filtrar las dos opciones ganadoras
opciones_ganadoras <- vivienda[vivienda$id %in% c(1144, 7512), ]
# Crear un mapa interactivo con las dos opciones ganadoras
mapa_ganador <- leaflet(opciones_ganadoras) %>%
addTiles() %>%
addMarkers(~longitud, ~latitud,
popup = ~paste("ID:", id, "<br>",
"Precio:", preciom, "millones<br>",
"Área:", areaconst, "m²<br>",
"Habitaciones:", habitaciones, "<br>",
"Baños:", banios, "<br>",
"Parqueaderos:", parqueaderos))
# Mostrar el mapa
mapa_ganador
Informe Ejecutivo Asunto: Recomendaciones para la compra de viviendas en Cali para la compañía internacional. 1. Introducción: María, propietaria de la agencia de bienes raíces C&A en Cali, recibió una solicitud de asesoría por parte de una compañía internacional que busca adquirir dos viviendas en Cali para alojar a sus empleados y sus familias. Las características específicas solicitadas para las viviendas fueron cuidadosamente analizadas, y se utilizaron técnicas de modelación estadística para seleccionar las opciones más adecuadas.
ID: 1144 Precio: 320 millones de pesos Área Construida: 200 m² Parqueaderos: 2 Baños: 4 Habitaciones: 4 Estrato: 4 Ubicación: Zona Norte, Cali Esta opción es la más viable y está dentro del límite del crédito preaprobado. Se recomienda proceder con la compra de esta propiedad.
ID: 7512 Precio: 670 millones de pesos Área Construida: 300 m² Parqueaderos: 3 Baños: 5 Habitaciones: 6 Estrato: 5 Ubicación: Zona Sur, Cali Esta propiedad se encuentra por debajo del límite del crédito preaprobado y cumple con todos los requisitos, por lo que es la opción recomendada para la segunda solicitud.
Visualización y Ubicación: Ambas propiedades recomendadas se han visualizado en un mapa interactivo para facilitar su ubicación. Este mapa ha sido proporcionado como un anexo para su revisión.
Conclusión: Se recomienda proceder con la adquisición de las dos propiedades identificadas, ya que cumplen con los criterios establecidos y se ajustan al presupuesto disponible. Las propiedades seleccionadas no solo ofrecen las características solicitadas, sino que también están ubicadas en zonas estratégicas de Cali.
Propiedad 1: ID 1144 en la Zona Norte Propiedad 2: ID 7512 en la Zona Sur