# carga de librerías a utilizar
pacman::p_load(paqueteMODELOS,dplyr,pander,FactoMineR,naniar,missMDA,
factoextra,ggplot2,plotly,visdat,VIM,summarytools,devtools,
leaflet)#Carga base de datos
# devtools::install_github("centromagis/paqueteMODELOS", force = TRUE)
data("vivienda")
str(vivienda)## spc_tbl_ [8,322 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:8322] 1147 1169 1350 5992 1212 ...
## $ zona : chr [1:8322] "Zona Oriente" "Zona Oriente" "Zona Oriente" "Zona Sur" ...
## $ piso : chr [1:8322] NA NA NA "02" ...
## $ estrato : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : chr [1:8322] "Casa" "Casa" "Casa" "Casa" ...
## $ barrio : chr [1:8322] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
## $ longitud : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
## - attr(*, "spec")=List of 3
## ..$ cols :List of 13
## .. ..$ id : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ zona : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ piso : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ estrato : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ preciom : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ areaconst : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ parqueaderos: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ banios : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ habitaciones: list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ tipo : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ barrio : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_character" "collector"
## .. ..$ longitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## .. ..$ latitud : list()
## .. .. ..- attr(*, "class")= chr [1:2] "collector_double" "collector"
## ..$ default: list()
## .. ..- attr(*, "class")= chr [1:2] "collector_guess" "collector"
## ..$ delim : chr ";"
## ..- attr(*, "class")= chr "col_spec"
## - attr(*, "problems")=<externalptr>
Una empresa inmobiliaria líder en la ciudad de Cali (Colombia) está buscando comprender en profundidad el mercado de viviendas urbanas para tomar decisiones estratégicas más informadas. La empresa posee una base de datos extensa que contiene información detallada sobre diversas propiedades residenciales disponibles en el mercado. Se requiere realizar un análisis holístico de estos datos para identificar patrones, relaciones y segmentaciones relevantes que permitan mejorar la toma de decisiones en cuanto a la compra, venta y valoración de propiedades.
Este análisis integral y multidimensional de la base de datos para comprender el mercado inmobiliario urbano de la ciudad de Cali, requiere aplicar diversas técnicas de análisis de datos, incluyendo: Análisis de Componentes Principales, Análisis de conglomerados (clustering), y Análisis de correspondencia.
A continuación se detallan las variables que componen el dataset vivienda y su correspondiente clasificación según el contexto, contenido y naturaleza propia de cada una.
| Nombre Variable | Descripción de la Variable | Contenido Variable | Clasificación por Naturaleza |
|---|---|---|---|
| id | Identificación única de la propiedad | Número que identifica la propiedad dentro del data set | Cuantitativa - discreta |
| zona | Zona geográfica en la que se encuentra ubicado el inmueble. | zona centro, zona norte, zona oeste, zona oriente, zona sur. | Cualitativa - Nominal |
| piso | Numero de pisos que conforman el inmueble | Numero entre 1 y 12 | Cuantitativa - discreta |
| estrato | Estrato socioeconómico | Valores de estrado desde el 3 al 6 | Cualitativa - Ordinal |
| preciom | Precio del inmueble expresado en millones | Valores de los inmuebles | Cuantitativa - continua |
| areaconst | Área construida del inmueble | Áreas de los inmuebles | Cuantitativa - continua |
| parqueaderos | Número de parqueaderos del inmueble | Valores entre 1 a 10 | Cuantitativa - discreta |
| banios | Número de baños en el inmueble | Valores entre 0 a 10 | Cuantitativa - discreta |
| habitaciones | Número de habitaciones en el inmueble | Valores entre 0 a 10 | Cuantitativa - discreta |
| tipo | Tipo de inmueble | Apartamento, Casa | Cualitativa - nominal |
| barrio | Barrio donde se encuentra ubicada la vivienda | Nombre del barrio | Cualitativa - nominal |
| longitud | Coordenada geográfica | Coordenada geográfica | Cuantitativa - continua |
| latitud | Coordenada geográfica | Coordenada geográfica | Cuantitativa - continua |
## # 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>
## [1] 8322 13
El data set vivienda contiene 8.322 observaciones. Adicionalmente, como se evidencia en el mapa a continuación, el análisis exploratorio permitió identificar inconsistencias geográficas en el dataset. Se observan varias observaciones ubicadas en zonas de la ciudad de Cali que no corresponden con la clasificación asignada. Por ejemplo, algunos puntos etiquetados como “Zona Sur” aparecen geográficamente en la “Zona Centro” o “Zona Norte”, lo que sugiere un error en la codificación de la zona, la latitud/longitud o el estrato.
No obstante, no se procederá a la relocalización ni corrección de estas observaciones, ya que no se cuenta con la información suficiente para determinar con certeza cuál de las variables está incorrecta. En ausencia de una fuente de validación externa o una variable que permita delimitar las zonas con precisión, cualquier modificación podría introducir sesgos adicionales en el análisis.
| id | zona | piso | estrato | preciom | areaconst | parqueaderos |
|---|---|---|---|---|---|---|
| 0.03605 | 0.03605 | 31.7 | 0.03605 | 0.02403 | 0.03605 | 19.29 |
| banios | habitaciones | tipo | barrio | longitud | latitud |
|---|---|---|---|---|---|
| 0.03605 | 0.03605 | 0.03605 | 0.03605 | 0.03605 | 0.03605 |
Durante la evaluación de calidad de los datos al observar el procentaje de datos faltantes por cada caracteristica, se identificó que la variable piso presenta un 31.7% de datos faltantesy la variable parqueaderos presenta un 19.29%. Adicionalmente, se observa que las demas variables presentan alrededor del 0.04%.
Graficamente esta composición puede verse aqui:
##
## Variables sorted by number of missings:
## Variable Count
## piso 0.3169911079
## parqueaderos 0.1928622927
## id 0.0003604903
## zona 0.0003604903
## estrato 0.0003604903
## areaconst 0.0003604903
## banios 0.0003604903
## habitaciones 0.0003604903
## tipo 0.0003604903
## barrio 0.0003604903
## longitud 0.0003604903
## latitud 0.0003604903
## preciom 0.0002403268
Aunque existen técnicas de imputación para manejar datos faltantes en los dataset, en el caso de la variable piso se requeriría imputar más del 30% de los valores, lo que implicaría introducir una gran cantidad de información artificial, y podría sesgarse los resultados de los modelos estadísticos o de machine learning del estudio, reduciendo la confiabilidad de las inferencias realizadas.
Buscando entonces priorizar la integridad del modelo y la validez de los resultados que de el se desprendan, se ha decidido excluir la variable piso del análisis.
Adicionalmente, en este análisis de los datos faltantes, se puede observar que dentro del dataset se presentan 3 observaciones que no contienen datos en ninguna característica. Estas serán eliminadas también del dataset.
## # A tibble: 3 × 12
## id zona estrato preciom areaconst parqueaderos banios habitaciones tipo
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 NA <NA> NA NA NA NA NA NA <NA>
## 2 NA <NA> NA NA NA NA NA NA <NA>
## 3 NA <NA> NA 330 NA NA NA NA <NA>
## # ℹ 3 more variables: barrio <chr>, longitud <dbl>, latitud <dbl>
Este ejercicio de eliminación de observaciones y características redujo la dimensión del dataset a 8.319 observaciones, quedando únicamente la variable parqueaderos con datos faltantes.
## [1] 8319 12
##
## Variables sorted by number of missings:
## Variable Count
## parqueaderos 0.1925712
## id 0.0000000
## zona 0.0000000
## estrato 0.0000000
## preciom 0.0000000
## areaconst 0.0000000
## banios 0.0000000
## habitaciones 0.0000000
## tipo 0.0000000
## barrio 0.0000000
## longitud 0.0000000
## latitud 0.0000000
En el sector inmobiliario, las características de los inmuebles presentan variaciones significativas según su ubicación geográfica (zona). Por ello, se propone imputar los valores faltantes de la variable parqueaderos utilizando estadísticas específicas de la zona correspondiente a la que pertenece el dato faltante, con el fin de preservar la coherencia contextual del análisis.
Si el dataset completo se imputa con el valor de la mediana de la variable, el valor sería mediana = 2.
## La media de la variable parqueaderos es: 1.835194
## La mediana de la variable parqueaderos es: 2
Al realizar el análisis del dataset por zona, la mediana varia considerablemente así:
| zona | n | parqueaderos_media | parqueaderos_mediana |
|---|---|---|---|
| Zona Centro | 124 | 1.406250 | 1 |
| Zona Norte | 1920 | 1.646465 | 1 |
| Zona Oeste | 1198 | 2.150273 | 2 |
| Zona Oriente | 351 | 1.380368 | 1 |
| Zona Sur | 4726 | 1.834836 | 1 |
Con el valor de la mediana por zona, se realizó la imputación de los casos faltantes que corresponden a la característica parqueadero, dando como resultado un dataset sin datos faltantes.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 1.000 1.000 1.686 2.000 10.000
| id | zona | estrato | preciom | areaconst | parqueaderos | banios |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| habitaciones | tipo | barrio | longitud | latitud |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
Para identificar los datos atípicos dentro del data set se construirá una nueva característica que relacione las variables precio y área construida, de tal manera que puedan identificarse en función de esa relación, si los precios están desfazados con relación a los demás inmuebles de la respectiva zona.
zona_centro = subset(datos_vivienda3, datos_vivienda3$zona == "Zona Centro")
zona_norte = subset(datos_vivienda3, datos_vivienda3$zona == "Zona Norte")
zona_oeste = subset(datos_vivienda3, datos_vivienda3$zona == "Zona Oeste")
zona_oriente = subset(datos_vivienda3, datos_vivienda3$zona == "Zona Oriente")
zona_sur = subset(datos_vivienda3, datos_vivienda3$zona == "Zona Sur")El análisis de los boxplots revela que la Zona Oeste concentra los inmuebles con mayor valor por metro cuadrado, lo cual es coherente con la percepción general del sector inmobiliario en Cali, donde esta zona se asocia con estratos altos y desarrollos residenciales exclusivos. Por otro lado, las zonas Oriente y Centro presentan los valores más bajos, lo que refleja condiciones socioeconómicas menos favorecidas y menor valorización inmobiliaria. Las zonas Norte y Sur muestran valores intermedios, resultado de una mezcla de inmuebles de distintos estratos y características, que generan una distribución más heterogénea en los precios.
Adicionalmente, del análisis de este análisis de los boxplot se desprende:
Con este contexto, se realizará el análisis y tratamiento de datos faltantes asi:
En el contexto urbano de la ciudad de Cali, la Zona Oriente se caracteriza por concentrar viviendas de estratos socioeconómicos inferiores a 4, con precios generalmente bajos. Por esta razón, la presencia de inmuebles en esta zona con una relación de precio por metro cuadrado significativamente superior al promedio, como se observa en los valores atípicos del diagrama de caja, puede indicar casos extremos que requieren validación individual. Estos outliers podrían corresponder a errores de registro, inmuebles con características excepcionales, o situaciones que ameritan un análisis más detallado antes de su inclusión en modelos predictivos o decisiones analíticas.
Los registros con una relación precio por metro cuadrado mayo a 4 mill en la Zona Oriente son:
## [1] 42 262 300 335
## # A tibble: 4 × 4
## id zona estrato barrio
## <dbl> <chr> <dbl> <chr>
## 1 1816 Zona Oriente 3 barrio el recuerdo
## 2 6937 Zona Oriente 6 pance
## 3 1118 Zona Oriente 3 santa monica popular
## 4 591 Zona Oriente 3 zona oriente
Modificación outlier 1: del análisis se identifica el inmueble con id = 6937 ubicado en la zona oriente en la base de datos, que pertenece al barrio pance y es de estrato 6, ubicado de forma errada en la zona oriente. Para este registro se realizará modificación a la zona sur.
## # A tibble: 1 × 4
## id zona estrato barrio
## <dbl> <chr> <dbl> <chr>
## 1 6937 Zona Sur 6 pance
Se profundiza el análisis en la Zona Oriente debido a que concentra predominantemente viviendas de estratos socioeconómicos bajos, como se ha mencionado previamente. Ahora la revision detallada de los inmuebles ubicados en dicha zona, se hará con especial énfasis en la distribución de los estratos registrados. El objetivo es identificar posibles inconsistencias, patrones atípicos o casos que requieran validación adicional para garantizar la calidad y coherencia del análisis.
De este análisis se identifican 3 inmuebles con estratos 5 y 6 en la Zona oriente de la ciudad de Cali, lo que según la composición de esta zona es muy poco probable que se presente. Se analizarán entonces los inmuebles con los id 5296 y 1214 de forma detallada. El inmueble con id 6937 ya tuvo tratamiento y fue modificado previamente.
## [1] 5296 6937 1214
## # A tibble: 3 × 4
## id zona estrato barrio
## <dbl> <chr> <dbl> <chr>
## 1 5296 Zona Oriente 5 las ceibas
## 2 1214 Zona Oriente 5 saavedra galindo
## 3 6937 Zona Oriente 6 pance
Se confirma el estrato del barrio “Las Ceibas” en la ciudad de cali, para validar si efectivamente pertenece al estrato 5.
##
## 3 5
## 22 1
Modificación outlier 2: del análisis de estratos en la Zona Oriente - Barrio Las Ceibas, se identifica que el estrato del inmueble con id = 5296 que se encuentra con estrato 5, debe ser modificado por estrato 3.
## # A tibble: 1 × 4
## id zona estrato barrio
## <dbl> <chr> <dbl> <chr>
## 1 5296 Zona Oriente 3 las ceibas
Asi mismo, se valida el estrato del barrio “Saavedra Galindo” en la ciudad de cali, para validar si efectivamente pertenece al estrato 5.
##
## 3 5
## 3 1
Modificación outlier 3: del análisis de estratos en la Zona Oriente - Barrio Saavedra Galindo, se identifica que el estrato del inmueble con id = 1214 que se encuentra con estrato 5, debe ser modificado por estrato 3.
## # A tibble: 1 × 4
## id zona estrato barrio
## <dbl> <chr> <dbl> <chr>
## 1 1214 Zona Oriente 3 saavedra galindo
zona_centro4 = subset(datos_vivienda4, datos_vivienda4$zona == "Zona Centro")
zona_norte4 = subset(datos_vivienda4, datos_vivienda4$zona == "Zona Norte")
zona_oeste4 = subset(datos_vivienda4, datos_vivienda4$zona == "Zona Oeste")
zona_oriente4 = subset(datos_vivienda4, datos_vivienda4$zona == "Zona Oriente")
zona_sur4 = subset(datos_vivienda4, datos_vivienda4$zona == "Zona Sur")La Zona Norte de Cali tiene una composición bastante heterogénea, con sectores que van desde los estratos 2 y 3 hasta el estrato 6. Así las cosas, esta zona de Cali será analizada en función de su relación de precio por metro cuadrado para identificar posibles outliers.
El inmuebles que cumple con la condición de tener un precio por metro cuadrado superior a 7 mill/m2 es el id 4112.
##
## FALSE TRUE
## 1919 1
## [1] 386
## # A tibble: 1 × 8
## id zona estrato barrio areaconst preciom precio_m2 tipo
## <dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <chr>
## 1 4112 Zona Norte 5 chipichape 47 445 9.47 Apartamento
El registro con id 4112 corresponde a un apartamento de 47m2 con un precio de 445 millones ubicado en el barrio Chipichape. Por las caracteristicas de la zona, es probable tener inmuebles que cumplan esas caracteristicas, por esta razón este inmueble no será descartado del ejercicio.
El análisis de componentes principales (PCA) es una técnica estadística multivariada utilizada para reducir la dimensionalidad de un conjunto de datos, preservando al máximo la variabilidad presente en las variables originales. Su principal objetivo es identificar nuevas variables llamadas componentes principales, que son combinaciones lineales de las variables originales y que explican la mayor parte de la varianza del sistema.
En esta sección, se busca reducir la dimensionalidad del conjunto de datos y visualizar la estructura de las variables en componentes principales para identificar características clave que influyen en la variación de precios y oferta del mercado en el mercado inmobiliario de la ciudad de Cali.
Se identificaron las variables cuantitativas del data set (“preciom”, “areaconst”, “parqueaderos”, “banios” y “habitaciones”).
El procedimiento PCA se basa en calcular los vectores propios (direcciones principales) y los valores propios (varianza explicada) de la matriz de covarianzas o correlaciones, dependiendo de si las variables han sido previamente estandarizadas. Las variables utilizadas en PCA deben ser numéricas y, preferiblemente, estar en la misma escala, por lo que es común aplicar una normalización previa.
A continuación se procede a realizar la estandarización o normalización de los datos en el dataset de variables cuantitativas datos_vivienda_cuant.
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123.0 Median : 1.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.686 Mean : 3.111
## 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
## habitaciones
## Min. : 0.000
## 1st Qu.: 3.000
## Median : 3.000
## Mean : 3.605
## 3rd Qu.: 4.000
## Max. :10.000
## -----------------------------------------------------------------------
## preciom areaconst parqueaderos banios
## Min. :-1.1437 Min. :-1.0138 Min. :-0.6469 Min. :-2.17847
## 1st Qu.:-0.6508 1st Qu.:-0.6640 1st Qu.:-0.6469 1st Qu.:-0.77811
## Median :-0.3161 Median :-0.3633 Median :-0.6469 Median :-0.07794
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.00000
## 3rd Qu.: 0.3228 3rd Qu.: 0.3782 3rd Qu.: 0.2956 3rd Qu.: 0.62224
## Max. : 4.7620 Max. :10.9822 Max. : 7.8352 Max. : 4.82330
## habitaciones
## Min. :-2.4702
## 1st Qu.:-0.4148
## Median :-0.4148
## Mean : 0.0000
## 3rd Qu.: 0.2704
## Max. : 4.3813
Adicionalmente, se valida que no existan datos faltantes en el dataset datos_vivienda_cuantZ
## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
Del Análisis de Componentes Principales (PCA) de la gráfica anterior, se logra ver que se ha logrado reducir la complejidad de las cinco variables cuantitativas a solo dos dimensiones principales, que en conjunto explican un 81.5% de la varianza total de los datos, es decir, que estos dos componentes capturan la mayor parte de la información contenida en las variables originales. Con esto se reducen las 5 variables cuantitativas en 2 nuevas variables.
Para saber cuales variables están mayormente asociadas a cada componente:
## Dim.1 Dim.2
## preciom 22.66351 14.1646463
## areaconst 23.36143 0.3545118
## parqueaderos 17.79253 23.3539124
## banios 23.93962 3.0372111
## habitaciones 12.24291 59.0897183
La Dimensión 1 es la dimesión más importante para explicar el mercado, ya que captura la mayor parte de la información (61.7% de la varianza). Esta variable esta relacionada fuertemente con las variables areaconst (área construida), precio, banios (numero de baños) y parqueaderos. Estas variables describen la “Amplitud y Lujo” del inmueble aportando a su valor.
La Dimension 2, aunque explica menos varianza (19.8% de la varianza), está influeciada en casi en su totalidad por la variable Habitaciones (numero de habitaciones), seguida por la variable parqueaderos. Estas habitaciones puede estar asociada a la “Capacidad y distribución de la vivienda”.
El gráfico anterior, representa el Círculo de Correlaciones del PCA, y puede visualizarse cómo se relacionan las variables originales con los dos primeros componentes principales: Puede verse que los precios aumentan, cuando aumentan las áreas construidas y todas las variables asociadas a confort tambien aumentan.
Los precisos de las viviendas están muy correlacionadas al número de parqueaderos, viendose que a mayor numero, mayor precio. Asi mismo, al aumentar el numero de baños, se ve el aumento del área construida en la misma proporción.
## # A tibble: 8 × 13
## id zona estrato preciom areaconst parqueaderos banios habitaciones tipo
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 6541 Zona S… 5 270 125 2 3 4 Apar…
## 2 5960 Zona S… 5 395 130 2 3 3 Apar…
## 3 6259 Zona O… 6 630 164 2 3 3 Apar…
## 4 6842 Zona S… 4 500 252 1 4 5 Casa
## 5 724 Zona S… 5 550 142 2 3 3 Casa
## 6 982 Zona O… 3 169 160 1 4 6 Casa
## 7 1772 Zona S… 4 320 170 2 2 4 Casa
## 8 4804 Zona O… 6 1180 240 2 4 4 Apar…
## # ℹ 4 more variables: barrio <chr>, longitud <dbl>, latitud <dbl>,
## # precio_m2 <dbl>
El Clustering es método estadístico usado para agrupar objetos similares (homogéneos) en función de sus características. Este análisis implica la selección de un conjunto de variables para medir las características de los objetos o individuos, y luego aplicar un algoritmo de agrupamiento para clarificarlos en conglomerados.
Esta metodología funciona calculando la distancia matemática entre los puntos de datos, por esta razón los datos deben ser numéricos.
Del dataset se seleccionarán las variables numéricas “preciom”, “areaconst”, “parqueaderos”, “banios” y “habitaciones”.
Del análisis de la gráfica de codo, se decide que el número de clusters a analizar será de 4.
Se realizó un análisis de agrupamiento utilizando el algoritmo K-means sobre las dos primeras dimensiones principales del PCA, que explican conjuntamente el 81.5% de la variabilidad total del conjunto de datos. Esta alta proporción indica que el espacio reducido conserva la mayor parte de la estructura informativa de las variables originales, lo que permite una segmentación confiable y eficiente.
El modelo identificó cuatro clusters de propiedades con características diferenciadas lo que sugiere que el PCA logró eliminar redundancias y correlaciones entre variables, facilitando la detección de patrones latentes.
Cada cluster representa un perfil distinto de inmueble, posiblemente asociado a combinaciones específicas de área construida, número de habitaciones, parqueaderos, baños, precio por metro cuadrado y estrato. Esta segmentación puede ser útil para: Identificar nichos de mercado inmobiliario, diseñar estrategias de oferta diferenciada y validar hipótesis sobre la relación entre características físicas y nivel socio económico.
Puede verse que la composicion de los cluster según las variables es:
## cluster preciom areaconst banios habitaciones
## 1 1 469.7137 322.50929 4.660274 6.939726
## 2 2 525.7199 193.78185 3.721934 3.632841
## 3 3 230.0885 89.60129 2.075543 2.861662
## 4 4 1148.5035 417.95874 5.144706 4.367059
##
## 1 2 3 4
## 730 2503 4236 850
Cluster 1 - viviendas familiares amplias: propiedades grandes, muchas habitaciones, buena dotación de baños. Posiblemente casas en barrios residenciales consolidados, ideales para familias numerosas. Compuesto por 730 viviendas.
Cluster 2 - Segmento medio urbano: apartamentos o casas medianas, con distribución equilibrada. Precio ligeramente superior al cluster 1, pero con menos área y habitaciones. Puede reflejar zonas de estrato medio con buena valorización. Compuesto por 2.503 viviendas.
Cluster 3 - Viviendas económicas: propiedades pequeñas, con baja dotación de servicios y precio bajo. Posiblemente ubicadas en zonas periféricas o de estrato bajo. Este grupo puede ser clave para políticas de subsidio o vivienda social. Compuesto por 4.236 viviendas.
Cluster 4 - Viviendas de lujo: propiedades de gran tamaño, alto número de baños y precio muy elevado. Probablemente ubicadas en zonas exclusivas, con alta valorización y múltiples comodidades. Segmento premium del mercado. Compuesto por 850 viviendas.
##
## 1 2 3 4
## Zona Centro 37 23 62 2
## Zona Norte 172 494 1171 83
## Zona Oeste 43 597 316 242
## Zona Oriente 132 28 188 2
## Zona Sur 346 1361 2499 521
##
## 1 2 3 4
## Zona Centro 29.8 18.5 50.0 1.6
## Zona Norte 9.0 25.7 61.0 4.3
## Zona Oeste 3.6 49.8 26.4 20.2
## Zona Oriente 37.7 8.0 53.7 0.6
## Zona Sur 7.3 28.8 52.9 11.0
## # A tibble: 20 × 4
## # Groups: zona [5]
## zona cluster n pct
## <chr> <fct> <int> <dbl>
## 1 Zona Centro 3 62 50
## 2 Zona Centro 1 37 29.8
## 3 Zona Centro 2 23 18.5
## 4 Zona Centro 4 2 1.6
## 5 Zona Norte 3 1171 61
## 6 Zona Norte 2 494 25.7
## 7 Zona Norte 1 172 9
## 8 Zona Norte 4 83 4.3
## 9 Zona Oeste 2 597 49.8
## 10 Zona Oeste 3 316 26.4
## 11 Zona Oeste 4 242 20.2
## 12 Zona Oeste 1 43 3.6
## 13 Zona Oriente 3 188 53.7
## 14 Zona Oriente 1 132 37.7
## 15 Zona Oriente 2 28 8
## 16 Zona Oriente 4 2 0.6
## 17 Zona Sur 3 2499 52.9
## 18 Zona Sur 2 1361 28.8
## 19 Zona Sur 4 521 11
## 20 Zona Sur 1 346 7.3
El análisis de clustering aplicado a las viviendas en Cali revela una alta heterogeneidad espacial: los cuatro grupos identificados no se concentran en zonas específicas de la ciudad, sino que están dispersos por toda la ciudad, desde áreas periféricas hasta sectores centrales. Esta distribución sugiere que las características socioeconómicas y físicas de las viviendas como precio, área construida, número de habitaciones y baños no siguen un patrón geográfico uniforme, sino que coexisten en múltiples zonas urbanas.
Como analista de datos que reside por fuera de la ciudad de Cali y que no conozco en detalle la distribución de la ciudad, veo que esta heterogeneidad se puede deber a que conviven zonas de alta valorización junto a sectores vulnerables, y una oferta inmobiliaria diversa. Esto claramente muestra que no existe una zonificación única de desarrollo, sino que la ciudad de Cali en una mezcla compleja de usos, estratos y condiciones habitacionales.
El Análisis de Correspondencias Simples (ACS) es una técnica multivariada exploratoria que permite representar gráficamente las asociaciones entre categorías de variables cualitativas. Su objetivo principal es identificar patrones, similitudes o estructuras latentes en los datos, facilitando la interpretación de relaciones entre variables categóricas.
En este ejercicio, se utiliza el ACS para explorar la relación entre los clusters previamente construidos (a partir de variables cuantitativas como área, precio, número de baños y número de habitaciones) y las variables categóricas zona y estrato. Esta aproximación permite caracterizar cada grupo de viviendas no solo por sus atributos físicos, sino también por su contexto urbano y socioeconómico.
Del análisis de correspondencia entre los Cluster y las Zonas geográficas de la ciudad de Cali, se detallan a continuación algunas asociaciones relevantes:
Zona Centro está muy asociada con el cluster_1 (viviendas familiares amplias), ambas ubicadas en la zona superior derecha de la gráfica.
Zona Oeste está muy asociado al Cluster 4 (viviendas de lujo), ambas ubicadas en la zona superior izquierda de la gráfica
Cluster 1 con Estrato 3: presentan una alta asociación. Este grupo de viviendas puede corresponder a zonas de estrato 3, con características similares en las variables cuantitativas analizadas del Cluster 1 (vivienda familiar).
Cluster 4 con Estrato 6: Ambos están del lado izquierdo superior del plano, y corresponde a viviendas de lujo según los cluster que tiene alta relación con el estrato socioenómico 6.
Este análisis integra las variables cluster, zona y estrato, buscando asociaciones multivariadas en el análisis del mercado inmobiliario de la ciudad de Cali.
Zona Oeste, Cluster 4 y Estrato 6: tienen una alta correlación. Esta considerado un cluster de viviendas de lujo que coincide con el estrato y la zona geografica de la ciudad de cali con valor mayor de los inmuebles.
Zona Centro, Cluster 1 y Estrato 3. representa inmuebles de gran tamaño de recio moderado que coincide con el tipo de vviendas que pueden encontrarse en la zona centro de Cali.
El mercado inmobiliario en Cali no puede abordarse como un sistema homogéneo. La interacción entre zonas con características socioeconómicas contrastantes, la variedad de estratos presentes en cada área y la diversidad en la oferta habitacional generan patrones complejos que requieren enfoques analíticos diferenciados por segmento y territorio.
Es por esta razón que se diseñó una estrategia basada en 4 pilares de desarrollo que otorgará a la empresa inmobiliaria una ventaja competitiva, optimizando sus procesos de venta, mejorando la precisión de sus valoraciones y maximizando el retorno de sus inversiones.
PILAR 1: Estrategia de Marketing segmentado: sobre los tres segmentos con capacidad adquisitiva, la empresa deberá diseñar campañas y acciones de comercialización diferentes en cada una. Buscando personalización y exclusividad para unas y masividad y margen para otras.
Segmento Premium (Clúster 4):
Perfil Inmuebles: esta compuesto por inmuebles de mayor precio, área, baños y parqueaderos, y está fuertemente asociados a la Zona Oeste y estrato 6.
Acción: Dirigir campañas de marketing de lujo enfocadas en la exclusividad, el estilo de vida, confort y los acabados de alta gama. Utilizar canales premium de distribución y mensajes dirigidos que usen el estatus como diferenciador. El equipo comercial debe capacitarse para manejar clientes de alto poder adquisitivo.
Segmento Familiar (Clúster 2):
Perfil Inmuebles: Propiedades con un alto número de habitaciones, aunque no necesariamente las de mayor precio o área.
Acción: Crear campañas enfocadas en familias, destacando el espacio, la comodidad, el número de cuartos y los beneficios asociados a la familia. El mensaje clave es “el hogar ideal para tu familia”.
Segmento Económico/Estándar (Clúster 1):
Perfil: Viviendas de menor precio y área, concentradas en zonas como la Oriente y Centro (estratos 3 y 4).
Acción: La estrategia debe centrarse en la asequibilidad, y las campañas deben estar direccionadas con mensajes sobre “oportunidades de conseguir la primera vivienda” y sobre “opciones de financiamiento”. El marketing digital masivo (redes sociales, portales inmobiliarios) es ideal para este segmento.
PILAR 2 Pricing: La valoración de las propiedades es la clave para lograr rotación y rentabilidad.
Desarrollar un modelo de precio con una interfaz para el equipo comercial, y que al momento de recibir un nuevo inmueble para la venta, con las características, sea capaz de proponer el precio adecuado para la comercialización según las caracteriticas del inmueble.
Evaluación del precio del inventario de inmuebles actuales para determinar ajustes por sobre o subvaloración de precio.
Mantener un ajuste permanente del modelo.
Mantener un monitoreo permenente con webscraping sobre las plataformas de la competencia, que permita comparar los precios de mercado.
PILAR 3: Compra y remodelación como Inversión: establecer un equipo de adquisiones para compra/remodelación/venta de inmuebles donde se pueda identificar oportunidades de negocio.
PILAR 4: Desarrollo nuevos proyectos inmobiliarios: desarrollar proyectos de construcción según la “vocación” de cada zona, no lanzar proyectos genéricos, sino diseñados según las características de lo que los clientes valoran en cada zona.