Introducción

El presente informe responde a la solicitud de asesoría realizada por una compañía internacional interesada en adquirir dos viviendas en la ciudad de Cali para alojar a sus empleados. Cada vivienda presenta condiciones específicas relacionadas con el área construida, parqueaderos, estrato socioeconómico, tipo de inmueble, número de habitaciones, localización geográfica y precio de la vivienda.

Para dar respuesta, se diseñó una estrategia metodológica basada en el análisis exploratorio de datos (EDA), la modelación econométrica mediante regresión lineal múltiple, la validación de los supuestos clásicos del modelo y la georreferenciación de las ofertas inmobiliarias.

El documento se divide en dos partes: i) un informe ejecutivo con los principales hallazgos y recomendaciones, y ii) anexos técnicos con el detalle de las estimaciones, gráficos y modelos utilizados.

Analisis

Para dar respuesta a la solicitud, se llevó a cabo un proceso de filtrado y modelación de la base de datos inmobiliaria disponible. El análisis comenzó con la selección de las viviendas que cumplen las condiciones específicas planteadas por la compañía, seguido de un estudio exploratorio orientado a identificar patrones de comportamiento entre el precio y las principales características de los inmuebles.

Grafico 1

# Realizamos el grafico
ggplot(vivi_clean_impu, aes(x = longitud, y = latitud, color = as.factor(cluster_kmeans))) +
  geom_point(alpha = 0.6) +
  geom_label(data = centroides,
             aes(x = centroide_long, y = centroide_lat,
                 label = nombres_zonas[as.character(cluster_kmeans)]),
             color = "black",
             fill = "white",
             alpha = 0.8,
             size = 3,
             fontface = "bold") +
  labs(title = "Mapa de viviendas en Cali",
       x = "Longitud",
       y = "Latitud",
       color = "Cluster") +
  theme_minimal() +
  scale_color_discrete(labels = nombres_zonas)

El ráfico 1 permite identificar cinco zonas geográficas de concentración de viviendas en la ciudad, distribuidas en Norte, Sur, Oriente, Occidente y Centro. Cada color en el gráfico representa una zona distinta, lo que evidencia cómo las viviendas tienden a agruparse según su proximidad espacial.

Si bien podrían existir subdivisiones adicionales, como Nororiente o Suroriente, que reflejarían un nivel de agrupación más profundo, se observan con claridad las delimitaciones espaciales principales. No obstante, es posible que algunos barrios se ubiquen en zonas de transición, por ejemplo, más próximos al Norte que al Occidente, o más cercanos al Centro que al Sur.

Estos resultados permiten establecer divisiones espaciales relativamente homogéneas, lo cual facilita el estudio comparativo de precios y características de los inmuebles en cada sector, aportando así una base sólida para el análisis posterior del mercado de vivienda en la ciudad.

Analisis para casas en la zona norte

Teniendo en cuenta los requerimientos de la empresa internacional para el empleado que requiere una vivienda con las siguientes categorias:

1. Tipo: Casa
2. Área construida: 200 m2
3. parqueaderos: 1
4. baños: 2
5. habitaciones: 4
6. estrato: 4 o 5
7. zona: Norte

Y se cuenta con un crédito preaprobado de 350 millones

Mapa interactivo de la ciudad de Cali

  # CASA EN LA ZONA NORTE DE CALI

# Filtrar solo casas en zona norte
base1 <- subset(vivi_clean_impu, tipo == "Casa" & cluster_kmeans_reord == 4)

# Mapa iterectivo real
leaflet(base1) %>%
  addTiles() %>%  
  addCircleMarkers(
    lng = ~longitud,
    lat = ~latitud,
    popup = ~paste0(
      "<b>Barrio:</b> ", barrio, "<br>",
      "<b>Precio:</b> ", preciom, " millones<br>",
      "<b>Área:</b> ", areaconst, " m²<br>",
      "<b>Habitaciones:</b> ", habitaciones, "<br>",
      "<b>Baños:</b> ", banios
    ),
    radius = 5,
    color = "blue",
    fillOpacity = 0.7
  )

En este grafico iteractivo, observamos uno de los requisitos solicitados por la empresa internacional para uno de sus empleados, que requiere una casa en el norte de la ciudad y miraremos algunas particularidades de la zona y de las casa.

Indicadores descriptivos de las viviendas

##   promedio_precio promedio_banios promedio_habitaciones promedio_parqueaderos
## 1             403               3                     4                     2
##   promedio_areaconst
## 1                244

Aqui podemos observar entonces que

  1. El precio promedio de las casa es de 403 millones de pesos
  2. las casas cuenta con un promedio de 3 baños, 4 habitaciones, 2 parqueaderos y una área construida de 244 m2

Barrios con mayor cantidad de casa

En esta grafica observamos los 6 barrios con la mayor oferta de casa en la zona norte

Estrato con mayor cantidad de casa

En esta grafica podemos observar que la mayor cantidad de ofertas de casa en la zona norte, estan ubiccadas en el estrato 3 y 5

Modelo

## 
## Call:
## lm(formula = log_precio ~ areaconst + estrato_4 + estrato_5 + 
##     estrato_6 + habitaciones + parqueaderos + banios, data = train_data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.19460 -0.15131 -0.02323  0.16623  1.15404 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.8273010  0.0430235 112.201  < 2e-16 ***
## areaconst    0.0012051  0.0001008  11.960  < 2e-16 ***
## estrato_4    0.3233888  0.0403438   8.016 1.15e-14 ***
## estrato_5    0.4332099  0.0373917  11.586  < 2e-16 ***
## estrato_6    0.7137295  0.0756735   9.432  < 2e-16 ***
## habitaciones 0.0182696  0.0106663   1.713   0.0875 .  
## parqueaderos 0.0560985  0.0124849   4.493 9.13e-06 ***
## banios       0.0773411  0.0144657   5.346 1.49e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2779 on 411 degrees of freedom
## Multiple R-squared:  0.752,  Adjusted R-squared:  0.7477 
## F-statistic:   178 on 7 and 411 DF,  p-value: < 2.2e-16

Los resultados del modelo muestran que el área construida afecta positivamente al precio de la vivienda, interpretandose como por 1 m² adicional el precio de la vivienda aumentara en 0.12%, teniendo en cuenta que este efecto es acumulativo, en el caso que aumentara 10 m², el precio de la vivienda incrementaria en 1.2%. Ademas el numero de baños como parqueaderos afectan positivamente al precio, cada baño adicional aumentará el precio en 7.73% y el incremento de un parqueadero, tambien aumentará el precio de la vivienda en un 5.60% Por otra parte, la variable categorica, no muestra un efecto positivo que se incrementa a medida que se sube de estrato, concerniente a lo que establece la ley 412 de 1994 sobre la estratificacion en Colombia, entonces que la casa este ubicada en estrato 4 aumentará el precio en 32.33%, en el estrato 5 aumentará 43.32% y el estrato 6 aumentará 71.37%. En el caso de las habitaciones, tienen un efecto positivo por la adicion de una habitacion el precio aumentará en 1.82%, pero no existen una fuerte evidencia sobre esto.

## (Intercept) 
##    124.8735

El caso mas particular es el intercepto,que me indica que cuando el área construida, el estrato 4, 5 y 6, habitaciones, parqueaderos y baños fuesen cero (0), cuanto seria el valor un terreno para construir una vivienda en estrato 3, que seria de 124 millones de pesos.

Predicciones

##   areaconst parqueaderos banios habitaciones estrato estrato_4 estrato_5
## 1       200            1      2            4       4         1         0
## 2       200            1      2            4       5         0         1
##   estrato_6 Precio_Predicho
## 1         0             292
## 2         0             326

Aqui podemos observar que con las indicaciones que la empresa internacional requirio para uno de sus empleados, manteniendo las caracteristricas de la casa, exceptuando el estrato, y como el modelo nos idnca, el pasar de un estrato a otro (4 a 5), incrementa el valor de la vivienda y en este caso una vivienda en estrato 4 tiene un valor de 298 millones su compra y con la misma condiciones pero en estrato 5 cuesta 333 millones. Se recomienda adquirir la vivienda en estrato 5, teniendo en cuenta que se cuenta con un credito pre aprobado de 350 millones y que en este estrato los barrios son mas tranquilos, comodos y con buena ubicacion en barrios como el bosque, la campiña, santa monica residencial o la merced.

Analisis para apartamentos en la zona sur

Teniendo en cuenta los requerimientos de la empresa internacional para el empleado que requiere una vivienda con las siguientes categorias:

1. Tipo: Apartamento 2. Área construida: 300 m2
3. parqueaderos: 3
4. baños: 3
5. habitaciones: 5
6. estrato: 4 o 5
7. zona: Sur

Y se cuenta con un crédito preaprobado de 850 millones

Mapa interactivo de la ciudad de Cali

# Mapa iterectivo real
leaflet(base2) %>%
  addTiles() %>%  
  addCircleMarkers(
    lng = ~longitud,
    lat = ~latitud,
    popup = ~paste0(
      "<b>Barrio:</b> ", barrio, "<br>",
      "<b>Precio:</b> ", preciom, " millones<br>",
      "<b>Área:</b> ", areaconst, " m²<br>",
      "<b>Habitaciones:</b> ", habitaciones, "<br>",
      "<b>Baños:</b> ", banios
    ),
    radius = 5,
    color = "blue",
    fillOpacity = 0.7
  )

En este grafico iteractivo, observamos el otro requisito solicitados por la empresa internacional para uno de sus empleados, que requiere un apartamento al sur de la ciudad y miraremos algunas particularidades de la zona y de los aptos.

Indicadores descriptivos de las viviendas

##   promedio_precio promedio_banios promedio_habitaciones promedio_parqueaderos
## 1             329               3                     3                     1
##   promedio_areaconst
## 1                100

Aqui podemos observar entonces que

  1. El precio promedio de los apartamentos es de 392 millones de pesos
  2. los apartamentos cuenta en promedio con 3 baños, 3 habitaciones, 1 parqueaderos y una área construida de 100 m2

Barrios con mayor cantidad de apartamentos

Aqui se muestran los 6 barrios con mayor oferta de apartamentos en la zona sur.

Estrato con mayor cantidad de casa

En esta grafica podemos observar que la mayor cantidad de ofertas de apartamentos en la zona sur, estan ubicados en el estrato 4 y 5

Modelo

# Modelo lineal multiple
modelo2 <- lm(log_precio ~ areaconst + estrato_4 + estrato_5 + estrato_6 + habitaciones + parqueaderos + banios, data = train_data2)

# Resumen del modelo
summary(modelo2)
## 
## Call:
## lm(formula = log_precio ~ areaconst + estrato_4 + estrato_5 + 
##     estrato_6 + habitaciones + parqueaderos + banios, data = train_data2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8440 -0.1389 -0.0012  0.1456  1.0207 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.2583405  0.0435838  97.705  < 2e-16 ***
## areaconst    0.0022715  0.0001588  14.300  < 2e-16 ***
## estrato_4    0.2800372  0.0329017   8.511  < 2e-16 ***
## estrato_5    0.5043800  0.0335182  15.048  < 2e-16 ***
## estrato_6    0.7657347  0.0377648  20.276  < 2e-16 ***
## habitaciones 0.0401891  0.0122422   3.283  0.00106 ** 
## parqueaderos 0.1752398  0.0147395  11.889  < 2e-16 ***
## banios       0.1240916  0.0105791  11.730  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2184 on 1298 degrees of freedom
## Multiple R-squared:  0.8372, Adjusted R-squared:  0.8363 
## F-statistic: 953.3 on 7 and 1298 DF,  p-value: < 2.2e-16

Los resultados del segundo modelo muestran que el área construida afecta positivamente al precio de la vivienda, interpretandose como por 1 m² adicional el precio de la vivienda aumentará en 0.22%, teniendo en cuenta que este efecto es acumulativo, en el caso que aumentara 10 m², el precio de la vivienda incrementaria en 2.2%. Ademas el numero de baños como parqueaderos afectan positivamente al precio, cada baño adicional aumentará el precio en 12.40% y el incremento de un parqueadero, tambien aumentará el precio de la vivienda en un 17.52% Por otra parte, la variable categorica, no muestra un efecto positivo que se incrementa a medida que se sube de estrato, concerniente a lo que establece la ley 412 de 1994 sobre la estratificacion en Colombia, entonces que la casa este ubicada en estrato 4 aumentará el precio en 28%, en el estrato 5 aumentará 50.04% y el estrato 6 aumentará 76,57%. En el caso de las habitaciones, tienen un efecto positivo por la adicion de una habitacion el precio aumentará en 4.01%,.

## (Intercept) 
##    70.69257

El caso mas particular es el intercepto,que me indica que cuando el área construida, el estrato 4, 5 y 6, habitaciones, parqueaderos y baños fuesen cero (0), cuanto seria el valor de un apartamento en planos en estrato 3, que seria de 70 millones de pesos.

Predicciones

##   areaconst parqueaderos banios habitaciones estrato estrato_5 estrato_6
## 1       300            3      3            5       5         1         0
## 2       300            3      3            5       6         0         1
##   estrato_4 Precio_Predicho
## 1         0             694
## 2         0             902

Aqui podemos observar que con las indicaciones que la empresa internacional requirio para uno de sus empleados, manteniendo las caracteristricas de la casa, exceptuando el estrato, y como el modelo nos idnca, el pasar de un estrato a otro (5 a 6), incrementa el valor de la vivienda y en este caso una vivienda en estrato 5 tiene un valor de 694 millones su compra y con la misma condiciones pero en estrato 6 cuesta 902 millones. Se recomienda adquirir la vivienda en estrato 5, teniendo en cuenta que se cuenta con un credito pre aprobado de 850 millones, ademas en este estrato los barrios son como en la zona norte mas tranquilos, comodos y con buena ubicacion en barrios como Valle del lili, pance, Ciudad jardin, el ingenio, entre otros.

Anexos

Test del modelo de casa en zona norte

##    Real Predicho
## 1   320 392.4680
## 2   780 453.7192
## 9   780 453.7192
## 15  250 221.4915
## 17  243 238.5686
## 18  750 174.1700
## 19  240 175.4943
## 37  270 210.0530
## 38  210 231.3259
## 44  100 160.6808

Observamos que los valores predichos estan cercanos a los valores reales, teniendo en cuneta que los predichos se les aplico una transformacion logarítmica para el modelo.

Metricas de evaluacion

VIF

##    areaconst    estrato_4    estrato_5    estrato_6 habitaciones parqueaderos 
##     1.619014     1.440595     1.794914     1.412334     1.835876     1.366910 
##       banios 
##     2.168887

El Factor de inflacion de la varianza (VIF), nos indica la intensidad de la multicolinealidad (cuando las variables predictoras estan correlacionadas), y en este caso podemos observar que presenta un correlacion moderada, ya que las variabls estan por debajo de 5, que es el punto maximo para una multicolinealidad moderada.

Metricas de evaluación

## # A tibble: 1 × 12
##   r.squared adj.r.squared sigma statistic   p.value    df logLik   AIC   BIC
##       <dbl>         <dbl> <dbl>     <dbl>     <dbl> <dbl>  <dbl> <dbl> <dbl>
## 1     0.752         0.748 0.278      178. 3.40e-120     7  -54.0  126.  162.
## # ℹ 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>

1. r cuadrado: el 75.2% de la variacion del precio es explicada por las variables areaconst, estrato_4, estrato_5, estrato_6, habitaciones, parqueaderos y banios.

2. r cuadrado ajustado: es parecido al anterior, y nos indica cuantas variables basuras tiene el modelo, si este es menor que el anterior.

3. sigma: nos muestra los error residuales, que nos indica que el modelo se equivoca en la predicion 27%± y entre mas bajo mucho mejor.

4. estadistico f: esto nos indica que el conjunto de variables explican significativamente la variable dependiente.

5. p.value: es practicamente cero, y nos indica que el modelo es significativamente alto en su conjunto.

6. AIC y BIC: son metricas de compracion, en el caso que se usara otro modelo, se tomaria en cuenta el menos numero en cada criterio.

Metricas del error

## MAE:  87.78386
## RMSE:  131.4368
## R² en test:  0.6754685

Grafico de predicciones

ggplot(comparacion, aes(x = Real, y = Predicho)) +
  geom_point(color = "blue", alpha = 0.6) +
  geom_abline(slope = 1, intercept = 0, color = "red", linetype = "dashed") +
  labs(
    title = "Predicción vs Real (Datos de Test)",
    x = "Precio Real",
    y = "Precio Predicho"
  )

Aqui podemos observar que los datos van alineados con la linea roja, lo que indica que las prediciones se alinean con los datos reales, exceptuando algunos valores que son demasiados altos y que el modello tiende a subestimar o sobrestimar.

Test del modelo de casa en zona sur

# 1. Predicciones en log(precio)
pred_log_test2 <- predict(modelo2, newdata = test_data2)

# 2. Convertir a pesos (aplicamos la inversa del logaritmo)
pred_precio_test2 <- exp(pred_log_test2)

# 3. Comparar con los valores reales
comparacion2 <- data.frame(
  Real = test_data2$precio,        # precio real
  Predicho = pred_precio_test2     # precio predicho
)

head(comparacion, 10)
##    Real Predicho
## 1   320 392.4680
## 2   780 453.7192
## 9   780 453.7192
## 15  250 221.4915
## 17  243 238.5686
## 18  750 174.1700
## 19  240 175.4943
## 37  270 210.0530
## 38  210 231.3259
## 44  100 160.6808

Observamos que los valores predichos estan cercanos a los valores reales, teniendo en cuneta que los predichos se les aplico una transformacion logarítmica para el modelo.

Metricas de evaluacion

VIF

vif(modelo2)
##    areaconst    estrato_4    estrato_5    estrato_6 habitaciones parqueaderos 
##     2.173586     6.972102     6.850247     7.315794     1.450039     2.393288 
##       banios 
##     2.839321

El Factor de inflacion de la varianza (VIF), nos indica la intensidad de la multicolinealidad (cuando las variables predictoras estan correlacionadas), y en este caso podemos observar que presenta un correlacion moderada, en algunas variables, pero las variables dummies (solo toman dos valores 0 u 1), estan por encima de 5 pero por debajo de 10 lo que significa qwue presentan una correlacion fuerte, peroe sto es debido a que son variables que presentan un orden y al volverlas dummies independientes, se correlacionan.

Metricas de evaluación

## # A tibble: 1 × 12
##   r.squared adj.r.squared sigma statistic p.value    df logLik   AIC   BIC
##       <dbl>         <dbl> <dbl>     <dbl>   <dbl> <dbl>  <dbl> <dbl> <dbl>
## 1     0.837         0.836 0.218      953.       0     7   138. -258. -211.
## # ℹ 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>

1. r cuadrado: el 83.7% de la variacion del precio es explicada por las variables areaconst, estrato_4, estrato_5, estrato_6, habitaciones, parqueaderos y banios.

2. r cuadrado ajustado: es parecido al anterior, y nos indica cuantas variables basuras tiene el modelo, si este es menor que el anterior.

3. sigma: nos muestra los error residuales, que nos indica que el modelo se equivoca en la predicion 21.8%± y entre mas bajo mucho mejor.

4. estadistico f: esto nos indica que el conjunto de variables explican significativamente la variable dependiente.

5. p.value: es practicamente cero, y nos indica que el modelo es significativamente alto en su conjunto.

6. AIC y BIC: son metricas de compracion, en el caso que se usara otro modelo, se tomaria en cuenta el menos numero en cada criterio.

Metricas del error

## MAE:  60.05056
## RMSE:  105.0559
## R² en test:  0.8209615

Grafico de predicciones

ggplot(comparacion2, aes(x = Real, y = Predicho)) +
  geom_point(color = "blue", alpha = 0.6) +
  geom_abline(slope = 1, intercept = 0, color = "red", linetype = "dashed") +
  labs(
    title = "Predicción vs Real (Datos de Test)",
    x = "Precio Real",
    y = "Precio Predicho"
  )

Aqui podemos observar que los datos van alineados con la linea roja, lo que indica que las prediciones se alinean con los datos reales, exceptuando algunos valores que son demasiados altos y que el modello tiende a subestimar o sobrestimar.