1. Análisis exploratorio de datos.

Antes de iniciar con el análisis multivariado, es conveniente realizar el análisis exploratorio y la limpieza de los datos. Para cumplir con este objetivo es conveniente realizar las siguientes tareas:
1. Identificar el tipo de datos presentes en las variables.
2. Determinar el tamaño del dataset.
3. Determinar si hay presencia de datos faltantes. 4. Indicar el total de datos faltantes en cada variable.

Antes de iniciar con la preparación de la base de datos, es conveniente conocer el tipo de datos que contiene cada una de las variables.
# Tipo de datos contenidos en el dataset.
 str(vivienda, vec.len=2, digits.d=2, give.attr=FALSE)
## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ id          : num [1:8322] 1147 1169 ...
##  $ zona        : chr [1:8322] "Zona Oriente" "Zona Oriente" ...
##  $ piso        : chr [1:8322] NA NA ...
##  $ estrato     : num [1:8322] 3 3 3 4 5 ...
##  $ preciom     : num [1:8322] 250 320 350 400 260 ...
##  $ areaconst   : num [1:8322] 70 120 220 280 90 ...
##  $ parqueaderos: num [1:8322] 1 1 2 3 1 ...
##  $ banios      : num [1:8322] 3 2 2 5 2 ...
##  $ habitaciones: num [1:8322] 6 3 4 3 3 ...
##  $ tipo        : chr [1:8322] "Casa" "Casa" ...
##  $ barrio      : chr [1:8322] "20 de julio" "20 de julio" ...
##  $ longitud    : num [1:8322] -77 -77 ...
##  $ latitud     : num [1:8322] 3.4 3.4 ...
El conjunto de datos está compuesto por trece variables en total. De manera específica, cuatro de estas variables (“zona”, “piso”, “tipo” y “barrio”) pertenecen al tipo categóricas y las demás son del tipo cuantitativo.

Ahora, es importante determinar el número de filas y columnas disponibles en el dataset.

dim(vivienda)
## [1] 8322   13

En este caso, el dataset con el cual se trabajará cuenta con un total de 13 variables (columnas) y 8322 observaciones (filas).

El siguiente paso será conocer si hay presencia de observaciones faltantes y determinar la cantidad de estas observaciones por columna.
plot_missing(vivienda)
Con ayuda del grafico se puede observar que hay presencia de observaciones faltantes. Siendo las variables “Parqueaderos” y “Piso” las que mayor porcentaje de observaciones faltantes tienen, con un 19.19% y un 31.7% respectivamente. Siguiendo con el análisis exploratorio, el sieguiente paso será determinar el número exacto de observaciones faltantes en cada variable.
faltantes <- colSums(is.na(vivienda)) %>%
  as.data.frame()
faltantes
##                 .
## id              3
## zona            3
## piso         2638
## estrato         3
## preciom         2
## areaconst       3
## parqueaderos 1605
## banios          3
## habitaciones    3
## tipo            3
## barrio          3
## longitud        3
## latitud         3

Se observa que la variable “estrato” es la que contiene el mayor número de registros faltantes con un total de 2638 observaciones, seguido de la variable “parqueaderos” que contiene 1605 observaciones faltantes. En cuanto a las demás variables, cada una de ella contiene 3 registros faltantes.

2. Preparación de los datos.

En esta etapa es conveniente realizar un tratamiento a aquellas variables o datos que puedan generar inconvenientes en los análisis posteriores, para esto se realizarán las siguientes tareas:
1. Seleccionar las variables que puedan aportar información valiosa al análisis.
2. Realizar imputación de datos usando el algoritmo de k-vecinos más cercanos.
3. Convertir las variables categóricas a numéricas.

Para los análisis posteriores, las variables “id”, “longitud” y “latitud” no son de interés, por lo cual se procede a eliminarlas.
datos <- data.frame(zona = vivienda$zona, piso = vivienda$piso, estrato = vivienda$estrato, 
                    precio = vivienda$preciom, area = vivienda$areaconst, 
                    parqueaderos = vivienda$parqueaderos, banios = vivienda$banios,
                    habitaciones = vivienda$habitaciones, tipo = vivienda$tipo, barrio=vivienda$barrio)
Debido a la gran cantidad de datos faltantes, no podemos proceder a eliminar las observaciones con datos faltantes, debido a que se sufre una perdida de información valiosa. Para evitar que esto suceda, se procedera a completar las observaciones faltantes, usando imputación mediante el algoritmo del vecino más cercano (KNN), entrenado con las observaciones de los 5 vecinos más cercanos.
dimp <-kNN(datos, k=5)

Una vez realizada la imputación, se procede a transformar las variables categóricas a numéricas para poder continuar con los análisis.

df_codificado <- datos1 %>% 
  mutate(
    zona = as.numeric(as.factor(zona)),
   tipo = as.numeric(as.factor(tipo))
   )

3. Análisis estadístico univariado.

Antes de empezar con los análisis multivariados es importante calcular algunos indicadores estadísticos para cada una de las variables.

3.1. Análisis descriptivo variables cuantitativas.

3.1.1. Medidas de tendencia Central y variabilidad

Para el análisis descriptivo de las variables cuantitativas es conveniente Calcular las medidas de tendencia central de cada una de las variables y calcular las medidas de variabilidad.

Descriptive Statistics

datos_num

N: 8322

  Min Q1 Median Mean Std.Dev Q3 Max IQR
areaconst 30.00 80.00 123.00 174.94 142.94 229.00 1745.00 149.00
banios 0.00 2.00 3.00 3.11 1.43 4.00 10.00 2.00
habitac 0.00 3.00 3.00 3.61 1.46 4.00 10.00 1.00
parquea 1.00 1.00 1.00 1.73 1.07 2.00 10.00 1.00
preciom 58.00 220.00 330.00 433.92 328.61 540.00 1999.00 320.00

Por medio de la tabla, se puede observar que las variables “areaconst” y “preciom” son aquellas que presentan mayor variabilidad.

3.1.2. Distribución de los datos.

A continuación se muestra la distribución de los datos usando histogramas para el caso de las variables área y precio en millones.

En el caso del área se encuentra que los datos presentan asimetría positiva, lo cual puede indicar presencia de datos atipicos.

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

La distribución de los datos de la variable precio en millones también presenta asimetría positiva, lo cual indica que las ventas de viviendas con precios altos no es tan frecuente.

Para la variable número de parqueaderos se encuentra que hay asímetria positiva es decir que aquellas viviendas que cuentan con varios parqueaderos no son comercializadas comunmente. Algunas propiedades disponen de cero baños o cero habitaciones, sin embargo puede ser un error en la base de datos, en este orden de ideas, se observa que pueden haber datos atípicos en propiedades con menos de un baño y una habitación o aquellas propiedades que disponen de un número elevado de baños y habitaciones.

3.1.3. Detección de Outliers

La variable precio muestra presencia de datos atípicos, que en este caso corresponden a aquellas viviendas con precios superiores a 1050 millones de pesos.

Por otra parte, en cuanto a la variable área construida, el boxplot muestra presencia de datos atípicos, los cuales corresponden a las viviendas que superan los 453\(m^2\).

Al analizar las variables cuantitativas de número de parqueaderos, habitaciones y baños, se detectaron valores atípicos. Específicamente, se clasificaron como outliers aquellas propiedades que contaban con 4 o más parqueaderos, una sola habitación o más de seis, y ocho o más baños.

## No id variables; using all as measure variables

3.1. Análisis descriptivo variables categóricas.

El análisis revela una clara preferencia por los apartamentos en comparación con las casas. Geográficamente, las zonas norte y sur concentran el mayor volumen de ventas, predominando las viviendas de estratos 4 y 5

4. Análisis estadístico multivariado.

4.1 Análisis de componentes principales.

El Análisis de Componentes Principales (ACP) es una técnica estadística multivariante de gran utilidad en el análisis de datos complejos, como los que se encuentran en el mercado de viviendas. Esta herramienta permite reducir la dimensionalidad de un conjunto de datos, es decir, transformar un gran número de variables en un número menor de nuevas variables, llamadas componentes principales, que captan la mayor parte de la variabilidad original.

4.1.1. Matriz de varianzas y covarianzas.

Antes de iniciar con el análisis de componentes principales, primero se va a realizar la matriz de varianzas y covarianzas, la cual proporciona información sobre la dispersión y las relaciones lineales entre las variables en un conjunto de datos.

cov(datos_num)
##               preciom   areaconst     parquea      banios     habitac
## preciom   107985.2702 32286.43408 246.5373608 314.0074316 126.6658167
## areaconst  32286.4341 20431.85247  88.4234409 132.3568741 107.8334697
## parquea      246.5374    88.42344   1.1420943   0.8711566   0.4126932
## banios       314.0074   132.35687   0.8711566   2.0392401   1.2295241
## habitac      126.6658   107.83347   0.4126932   1.2295241   2.1299658

4.1.2. Matriz de correlación.

Ahora, se realizará la matriz de correlación para identificar las relaciones lineales presentes entre todas las combinaciones posibles de variables en un conjunto de datos.

corr_matrix= cor(datos_num)
corr_matrix
##             preciom areaconst   parquea    banios   habitac
## preciom   1.0000000 0.6873595 0.7020200 0.6691500 0.2641137
## areaconst 0.6873595 1.0000000 0.5788454 0.6484230 0.5169082
## parquea   0.7020200 0.5788454 1.0000000 0.5708356 0.2646001
## banios    0.6691500 0.6484230 0.5708356 1.0000000 0.5899518
## habitac   0.2641137 0.5169082 0.2646001 0.5899518 1.0000000

Por medio de la matriz de correlación, se puede evidenciar que las variables que presentan una relación lineal fuerte son: el precio en millones y el número de parqueaderos, el precio y el área construida, tambien el número de baños y el precio.

4.1.3. Escalamiento de las variables.

Para iniciar con el análisis de componentes principales es conveniente inciar con la estandarización de los datos. Esto con el fin de evitar que las variables que tienen una escala con valores más grandes afecten las estimaciones realizadas (sesgos).

datos_numZ= scale(datos_num)

4.1.4. Análisis de componentes principales.

Una vez realizado el escalamiento de las variables se procede con el ACP, esto con el objetivo de retener la mayor información posible contenida en los datos y reducir el número de variables.

res.pca <- prcomp(datos_numZ)

El análisis de componentes principales revela que el primer componente captura la mayor variabilidad asociada al tamaño y valor de las propiedades, siendo el precio en millones, el área en metros cuadrados y el número de baños las variables que más contribuyen a esta componente. El segundo componente, por su parte, está más relacionado con la capacidad de alojamiento y las características adicionales de las viviendas, destacando la importancia del número de habitaciones, el número de parqueaderos y, en menor medida, el precio.

4.1.5. Gráfico de Componentes principales.

Al realizar el análisis de componentes principales, se encontró que el primer componente explica una proporción considerable de la variabilidad total de los datos (64.7%). El segundo componente, aunque con menor peso, contribuye en un 17.6% adicional. En conjunto, estos dos componentes logran explicar el 82.3% de la varianza, lo que sugiere que una única variable latente (CP1), que es una combinación lineal de las variables originales, puede resumir de manera efectiva la mayor parte de la información contenida en el conjunto de datos.

4.1.6. círculo de correlación.

El ACP revela que elque el primer componente se asocia con la variable número de parqueaderos y número de habitaciones, mientras que el segundo componente está asociado con las variables número de baños, área construida, precio en millones y parqueaderos. El gráfico también permite observar que las variables con mayor contibución son el número de habitaciones y el precio en millones.

Por otra parte, se evidencia que las variables precio en millones y número de parqueaderos se encuentran muy cercanas lo que indica una relación entre ellas, así como área y número de baños. Tambien se evidencia una relación inversa entre el numero de habitaciones y el número de parqueaderos, así como el precio y el número de habitaciones, esto sugiere que las variables aportan casi de forma independiente.

4.1.7. Nube de individuos.

fviz_pca_ind(res.pca, col.ind = "blue")

Ahora, se van a selecciónar algunos casos extremos para observar cómo son sus características y determinar si concuerdan con lo expuesto anteriormente.

data<- rbind(datos_num[2926,], 
              datos_num[585,],
              datos_num[724,],
              datos_num[1762,])
data
##      preciom areaconst parquea banios habitac
## 2926     950       280      10      0       0
## 585      470       366       2     10      10
## 724      195        35       1      1       0
## 1762    1800      1586      10      4       5

El análisis de componentes principales permite identificar dos dimensiones principales que explican la variabilidad en los datos de las propiedades.

En el primer componente, la variable “número de habitaciones” es la más influyente. A medida que avanzamos hacia la parte superior de este componente, el número de habitaciones aumenta de manera consistente. No obstante, la presencia de observaciones atípicas, como la propiedad 2926 con 0 habitaciones, indica la necesidad de revisar y corregir posibles errores en los datos.

El segundo componente principal agrupa las variables precio, parqueaderos, área y número de baños, sugiriendo que estas características tienden a covariar. Es decir, las propiedades con precios elevados suelen tener también mayor área, más parqueaderos y un número más elevado de baños. Esta tendencia se observa claramente al comparar propiedades como la 724 y la 1762, ubicadas en extremos opuestos de este componente. En este caso la propiedad 724 tiene un precio más bajo, menor área y menor número de parqueaderos, mientras que la propiedad 1762 la cual es más costosa, tambien tiene un área mayor, y un mayor número de parqueaderos.

Los resultados obtenidos sugieren que el precio de las propiedades está más fuertemente relacionado con factores como el área y el número de parqueaderos, y no tanto con el número de habitaciones.

4.1.8. Biplot

A continuación, se realizarán algunos biplot, los cuales permiten visualizar de manera simultánea las relaciones entre individuos y variables en un conjunto de datos.

fviz_pca_biplot(res.pca)

El primer biplot muestra la información de los datos con la variable tipo de vivienda, donde se evidencia que las viviendas del primer cuadrante siguen la tendencia de ser casas de gran tamaño, con precios elevados y un gran número de parqueaderos. En el caso de las viviendas en el tercer cuadrante se caracterizan por ser casas grandes, con un mayor número de habitaciones y menor número de parqueaderos.

En el caso del biplot para la variable zona, no se pueden observar comportamientos o agrupamientos claros.

En el caso del biplot para la variable estrato, se observan que las viviendas de estrato 6 tienden a ser más costosas, con mayore espacio y un número mayor de parqueaderos. Mientras que las viviendas de estrato 3 y 4 tienen precios más bajos y disponen de más habitaciones pero de menos parqueaderos.

5. Clustering

En esta sección se realizará un cluster para agrupar propiedades similares en función de sus características.

5.1 Número de clusters

De acuerdo con el gráfico de codo se muestra la variación de la suma de los cuadrados de los errores (SSE) en función del número de clusters se nivela a partír de k=3. Este punto indica que el aumento del número de clusters no reduce significativamente la SSE.

5.2 Análisis de clusters.

En esta etapa se usarán los resultados obtenidos en el Análisis de Componentes Principales realizado anteriormente.

Cluster.viviendas <- HCPC(res.ACP,nb.clust = -1)

Cluster.viviendas$desc.ind$para
## Cluster: 1
##      5775      7079      7019      1714      2598 
## 0.2790711 0.2794451 0.2794550 0.2795584 0.2804649 
## ------------------------------------------------------------ 
## Cluster: 2
##      2160      4927       378      5688      2200 
## 0.3022037 0.3062815 0.3284143 0.3409786 0.3559824 
## ------------------------------------------------------------ 
## Cluster: 3
##      1510      1341      4245      6359       267 
## 0.3616929 0.4243512 0.4647514 0.5089706 0.5141860

**Cluster 1:* Este cluster agrupa viviendas que se caracterizan por ser económicas y pequeñas, adicionalmente son viviendas con un número reducido de baños y habitaciones, las cuales disponen de un solo parqueadero.

clust1<- rbind(datos1[5775,], 
              datos1[7079,],
              datos1[7019,],
              datos1[1714,],
              datos1[2598,])
clust1
##          zona piso estrato precio area parqueaderos banios habitaciones
## 5775 Zona Sur   06       5    255   95            1      2            3
## 7079 Zona Sur   02       4    250   96            1      2            3
## 7019 Zona Sur   01       4    260   95            1      2            3
## 1714 Zona Sur   03       6    259   94            1      2            3
## 2598 Zona Sur   05       6    255  100            1      2            3
##             tipo
## 5775 Apartamento
## 7079 Apartamento
## 7019        Casa
## 1714 Apartamento
## 2598 Apartamento

Cluster 2: En este cluster se encuentran viviendas de tamaño intermedio y con precios más elevados, que disponen de un mayor número de baños, las cuales cuentan con pocos parqueaderos y un número no tan alto de habitaciones.

clust2<- rbind(datos1[2160,], 
              datos1[4927,],
              datos1[378,],
              datos1[5688,],
              datos1[2200,])
clust2
##            zona piso estrato precio area parqueaderos banios habitaciones
## 2160   Zona Sur   02       4    550  250            2      4            5
## 4927   Zona Sur   01       4    500  252            2      4            5
## 378  Zona Oeste   02       5    580  245            2      4            5
## 5688   Zona Sur   02       4    475  255            2      4            5
## 2200 Zona Norte   04       5    450  230            2      4            5
##             tipo
## 2160        Casa
## 4927        Casa
## 378  Apartamento
## 5688        Casa
## 2200 Apartamento

Cluster 3: Este cluster agrupa las propiedades más costosas y de mayor tamaño, siendo principalmente casas, estas propiedades también cuentan con varios parqueaderos, y como son propiedades de gran tamaño poseen tambien un mayor número de baños. Sin embargo, a diferencia del cluster 3, estas propiedades no necesariamente poseen tantas habitaciones como en el cluster anterior.

clust3<- rbind(datos1[1510,], 
              datos1[1341,],
              datos1[4245,],
              datos1[6359,],
              datos1[267,])
clust3
##            zona piso estrato precio area parqueaderos banios habitaciones
## 1510   Zona Sur   03       6   1100  422            4      5            5
## 1341   Zona Sur   01       6   1200  420            4      5            5
## 4245 Zona Oeste   03       6   1133  450            4      5            4
## 6359 Zona Oeste   12       6   1100  387            4      5            4
## 267  Zona Oeste   12       6   1090  387            4      5            4
##             tipo
## 1510        Casa
## 1341        Casa
## 4245        Casa
## 6359 Apartamento
## 267  Apartamento
Cluster.viviendas$desc.var
## 
## Link between the cluster variable and the quantitative variables
## ================================================================
##                Eta2 P-value
## preciom   0.6862841       0
## areaconst 0.5723848       0
## parquea   0.5693095       0
## banios    0.6176939       0
## habitac   0.3457167       0
## 
## Description of each cluster by quantitative variables
## =====================================================
## $`1`
##              v.test Mean in category                Overall mean sd in category
## parquea   -49.48439       -0.4580517 -0.000000000000000047760135      0.4150609
## habitac   -53.61577       -0.4962938 -0.000000000000000008938349      0.4779490
## preciom   -58.75825       -0.5438951  0.000000000000000048548077      0.3609208
## areaconst -59.73368       -0.5529242  0.000000000000000044834952      0.3117912
## banios    -68.87344       -0.6375263  0.000000000000000022732757      0.4672147
##           Overall sd p.value
## parquea    0.9999399       0
## habitac    0.9999399       0
## preciom    0.9999399       0
## areaconst  0.9999399       0
## banios     0.9999399       0
## 
## $`2`
##              v.test Mean in category                Overall mean sd in category
## habitac   42.949304        0.7107398 -0.000000000000000008938349      1.1189655
## banios    41.682796        0.6897812  0.000000000000000022732757      0.7084108
## areaconst 25.422639        0.4207025  0.000000000000000044834952      0.6756750
## preciom   16.623449        0.2750905  0.000000000000000048548077      0.5896138
## parquea    9.150219        0.1514210 -0.000000000000000047760135      0.6324071
##           Overall sd       p.value
## habitac    0.9999399  0.000000e+00
## banios     0.9999399  0.000000e+00
## areaconst  0.9999399 1.417405e-142
## preciom    0.9999399  4.714116e-62
## parquea    0.9999399  5.681804e-20
## 
## $`3`
##             v.test Mean in category                Overall mean sd in category
## preciom   67.76730        2.0994199  0.000000000000000048548077      1.0875731
## parquea   64.17151        1.9880227 -0.000000000000000047760135      1.3675569
## areaconst 56.41385        1.7476919  0.000000000000000044834952      1.4426514
## banios    46.93495        1.4540369  0.000000000000000022732757      0.9564115
## habitac   21.16397        0.6556563 -0.000000000000000008938349      1.1176783
##           Overall sd      p.value
## preciom    0.9999399 0.000000e+00
## parquea    0.9999399 0.000000e+00
## areaconst  0.9999399 0.000000e+00
## banios     0.9999399 0.000000e+00
## habitac    0.9999399 2.051977e-99

Variables significativas para el cluster En este caso, todas las variables tienen una discriminación no tan alta, es decir que muestran una capacidad moderada para diferenciar entre clusters. Siendo el precio, y el número de baños las de mayor influencia.

5.3 Visualización de los cluster.

En este caso, se observa que por ejemplo en el cluster 1, las viviendas no siguen las tendencias de los componentes mostrados en el ACP.

fviz_cluster(Cluster.viviendas,
             show.clust.cent = TRUE, # Show cluster centers
             palette = "jco",         # Color palette see ?ggpubr::ggpar
             ggtheme = theme_minimal(),
             main = ""
)

6. Análisis de correspondencias

Este Análisis de Correspondencia busca representar posibles asociaciones entre variables categóricas, es decir la asociación entre sus categorías, con el fin establecer si existe, patrones o estructuras en los datos.

res.mca <- MCA(datos_cat, graph = FALSE)

6.1 Grafico del porcentaje de varianza explicado.

fviz_screeplot(res.mca, addlabels = TRUE, ylim = c(0, 45))

En este caso, el primer componente explica el 21.1% de los datos, mientras que el segundo componente explica el 17% de los datos. En total los dos primeros componentes explican 38.1% de los datos.

6.2 Biplot

fviz_mca_biplot(res.mca, 
               ggtheme = theme_minimal())

El mapa permite identificar algunas asociaciones como lo son:

  • Viviendas de estrato 5 en la zona sur.
  • Viviendas del tipo casa en la zona norte.
  • Viviendas de estrato 6 en la zona oeste.

El análisis de correpondencias sugiere que en la zona sur de Cali predominan las viviendas del tipo apartamento y de estrato 5, mientras que en la zona norte las viviendas más comercializadas son aquellas del tipo casa. De manera un poco menos directa, se observa que en la zona oeste las viviendas mayormente comercializadas son de estrato 6.

Conclusiones

  • Por medio del ACP se pudo determinar que las variables precio en millones, área en metros cuadrados, número de baños y número de habitaciones son aquellas que más contribuyen a la variabilidad de los datos. Esto puede ayudar a reducir la dimensionalidad del conjunto de datos y a enfocar la atención en las variables más relevantes.

  • Con ayuda del ACP se pudo determinar que existe una relación lineal entre el precio en millones y el número de parqueaderos con que dispone la propiedad. Por otra parte, también se pudo determinar que el área se relaciona linealmente con el número de baños, es decir que a medida que aumenta el área, el número de baños también aumenta. Así mismo, se pudo establecer que el precio de comercialización de las viviendas no se ve afectado por el número de habitaciones.

  • El análisis de clustering ha permitido identificar tres segmentos de viviendas con características distintivas en términos de tamaño, precio, número de baños y habitaciones. Es interesante observar que el Cluster 3, a pesar de ser el más costoso, no necesariamente presenta el mayor número de habitaciones. Esto sugiere que otros factores, como la calidad de los acabados, la ubicación o las amenidades adicionales, podrían estar influyendo en el precio de estas propiedades.

  • El análisis de correspondencias sugiere una relación entre la ubicación geográfica, el tipo de vivienda y el estrato socioeconómico en Cali. La zona sur, con su oferta de apartamentos de lujo, atrae a un perfil de comprador con mayor poder adquisitivo. Por otro lado, la zona norte, con su predominancia de casas, puede ser más atractiva para familias o personas que buscan mayor espacio y privacidad. La zona oeste, con su oferta de viviendas de estrato 6, se posiciona como un sector exclusivo.

Recomendaciones

  • Aunque el número de habitaciones no parece influir directamente en el precio, es importante tenerlo en cuenta al momento de describir una propiedad y segmentar el mercado, ya que puede ser un factor determinante para ciertos compradores.

  • Dada la alta demanda de apartamentos de lujo en la zona sur y viviendas de estrato 6 en la zona oeste, la empresa debería enfocar sus esfuerzos en estos segmentos, ofreciendo servicios personalizados y exclusivos.

  • Para atender a las diferentes necesidades de los compradores, es recomendable ofrecer una variedad de tipologías de vivienda, desde apartamentos pequeños hasta casas grandes, y en diferentes rangos de precios.

  • La utilización de herramientas de análisis de datos, como las utilizadas en este estudio, permitirá a la empresa inmobiliaria identificar nuevas tendencias, tomar decisiones más informadas y mejorar su competitividad.

  • La empresa puede aprovechar la segmentación realizada a través del clustering para desarrollar estrategias de marketing más personalizadas. Por ejemplo, para el Cluster 3 (viviendas de lujo), se pueden crear campañas enfocadas en resaltar la calidad de los acabados, la exclusividad de la ubicación y las comodidades adicionales.

  • Al momento de evaluar el valor de una propiedad, la empresa debería concentrarse en variables como el precio por metro cuadrado, el número de baños y parqueaderos, y la ubicación (especialmente si se encuentra en zonas de alta demanda como el sur de Cali).