#Problema
Una empresa inmobiliaria líder en una gran ciudad 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.
#Retos:
El reto principal consiste en realizar un análisis integral y multidimensional de la base de datos para obtener una comprensión del mercado inmobiliario urbano. Se requiere aplicar diversas técnicas de análisis de datos
Análisis de Componentes Principales: 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.
## id zona piso estrato
## Min. : 1 Length:8322 Length:8322 Min. :3.000
## 1st Qu.:2080 Class :character Class :character 1st Qu.:4.000
## Median :4160 Mode :character Mode :character Median :5.000
## Mean :4160 Mean :4.634
## 3rd Qu.:6240 3rd Qu.:5.000
## Max. :8319 Max. :6.000
## NA's :3 NA's :3
## 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 : 2.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.835 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
## NA's :2 NA's :3 NA's :1605 NA's :3
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:8322 Length:8322 Min. :-76.59
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.54
## Median : 3.000 Mode :character Mode :character Median :-76.53
## Mean : 3.605 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
## NA's :3 NA's :3
## latitud
## Min. :3.333
## 1st Qu.:3.381
## Median :3.416
## Mean :3.418
## 3rd Qu.:3.452
## Max. :3.498
## NA's :3
La base de datos se compone de 13 variables, incluido ID, con información sobre el mercado de viviendas de la ciudad de Cali.
# separar variables no numericas de numericas
numeric_vars <- sapply(vivienda, is.numeric)
# Mostrar los nombres de las variables numéricas
names(vivienda)[numeric_vars]## [1] "id" "estrato" "preciom" "areaconst" "parqueaderos"
## [6] "banios" "habitaciones" "longitud" "latitud"
## [1] "zona" "piso" "tipo" "barrio"
4 de las 13 variables son categóricas, para usar esta información se transformara la variable piso en numérica y se generará varibles dumies para zona y tipo. La variable barrio se omitirá del análisis.
## Warning: package 'fastDummies' was built under R version 4.3.3
## Thank you for using fastDummies!
## To acknowledge our work, please cite the package:
## Kaplan, J. & Schlegel, B. (2023). fastDummies: Fast Creation of Dummy (Binary) Columns and Rows from Categorical Variables. Version 1.7.1. URL: https://github.com/jacobkap/fastDummies, https://jacobkap.github.io/fastDummies/.
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
##
## combine
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
numeric_vars <- select(viviendaACP, where(is.numeric))
viviendaZ <- scale(numeric_vars)
summary(viviendaZ)## estrato preciom areaconst parqueaderos
## Min. :-1.5872 Min. :-1.1438 Min. :-1.0138 Min. :-0.7425
## 1st Qu.:-0.6156 1st Qu.:-0.6508 1st Qu.:-0.6640 1st Qu.:-0.7425
## Median : 0.3560 Median :-0.3161 Median :-0.3633 Median : 0.1465
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.3560 3rd Qu.: 0.3229 3rd Qu.: 0.3782 3rd Qu.: 0.1465
## Max. : 1.3276 Max. : 4.7623 Max. :10.9822 Max. : 7.2582
## NA's :3 NA's :2 NA's :3 NA's :1605
## banios habitaciones longitud latitud
## Min. :-2.17847 Min. :-2.4702 Min. :-3.47989 Min. :-1.98516
## 1st Qu.:-0.77812 1st Qu.:-0.4148 1st Qu.:-0.74572 1st Qu.:-0.86422
## Median :-0.07794 Median :-0.4148 Median :-0.08013 Median :-0.03856
## Mean : 0.00000 Mean : 0.0000 Mean : 0.00000 Mean : 0.00000
## 3rd Qu.: 0.62224 3rd Qu.: 0.2704 3rd Qu.: 0.55844 3rd Qu.: 0.80575
## Max. : 4.82330 Max. : 4.3813 Max. : 3.77083 Max. : 1.87755
## NA's :3 NA's :3 NA's :3 NA's :3
## piso_numeric zona_Zona Norte zona_Zona Oeste zona_Zona Oriente
## Min. :-1.0597 Min. :-0.5477 Min. :-0.4101 Min. :-0.2099
## 1st Qu.:-0.6773 1st Qu.:-0.5477 1st Qu.:-0.4101 1st Qu.:-0.2099
## Median :-0.2948 Median :-0.5477 Median :-0.4101 Median :-0.2099
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.4700 3rd Qu.:-0.5477 3rd Qu.:-0.4101 3rd Qu.:-0.2099
## Max. : 3.1471 Max. : 1.8255 Max. : 2.4379 Max. : 4.7643
## NA's :2638 NA's :3 NA's :3 NA's :3
## zona_Zona Sur tipo_Apartamento
## Min. :-1.1468 Min. :-1.2586
## 1st Qu.:-1.1468 1st Qu.:-1.2586
## Median : 0.8719 Median : 0.7944
## Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.8719 3rd Qu.: 0.7944
## Max. : 0.8719 Max. : 0.7944
## NA's :3 NA's :3
Para realizar el análisis de componentes principales se estandarizan las variables, la base de datos a trabajar está compuesta por 14 variables estandarizadas con la información del mercado de vivienda.
## Warning: package 'mice' was built under R version 4.3.3
## Warning in check_dep_version(): ABI version mismatch:
## lme4 was built with Matrix ABI version 1
## Current Matrix ABI version is 0
## Please re-install lme4 from source or restore original 'Matrix' package
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
## preciom estrato areaconst banios habitaciones longitud latitud
## 4808 1 1 1 1 1 1 1
## 1909 1 1 1 1 1 1 1
## 876 1 1 1 1 1 1 1
## 726 1 1 1 1 1 1 1
## 1 1 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0
## 2 3 3 3 3 3 3
## zona_Zona Norte zona_Zona Oeste zona_Zona Oriente zona_Zona Sur
## 4808 1 1 1 1
## 1909 1 1 1 1
## 876 1 1 1 1
## 726 1 1 1 1
## 1 0 0 0 0
## 2 0 0 0 0
## 3 3 3 3
## tipo_Apartamento parqueaderos piso_numeric
## 4808 1 1 1 0
## 1909 1 1 0 1
## 876 1 0 1 1
## 726 1 0 0 2
## 1 0 0 0 13
## 2 0 0 0 14
## 3 1605 2638 4278
## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
La base de datos resultante es “viviendaZ” con 14 variables estandarizadas y 4808 observaciones.
## Standard deviations (1, .., p=14):
## [1] 1.9370976 1.5717563 1.4234921 1.0221583 0.8832796 0.7523825 0.6388593
## [8] 0.6137218 0.5707676 0.5361991 0.4635492 0.4597138 0.3998675 0.1095118
##
## Rotation (n x k) = (14 x 14):
## PC1 PC2 PC3 PC4 PC5
## estrato 0.23278571 0.14072423 -0.33622605 -0.19819182 -0.315210350
## preciom 0.43145990 0.15401089 -0.12115537 -0.17913555 -0.073177548
## areaconst 0.42356670 0.02619770 0.16094142 -0.06989721 0.063096896
## parqueaderos 0.39352563 0.07493341 -0.02715384 -0.22322435 -0.183456055
## banios 0.41969986 0.02802121 0.04842751 -0.10673782 0.152357926
## habitaciones 0.27891440 -0.06233759 0.29285598 0.08757310 0.424243745
## longitud -0.16272075 -0.08127344 0.37515643 -0.35061979 0.080871052
## latitud -0.10605729 0.49997162 0.31380308 0.05244955 -0.010331803
## piso_numeric -0.13994153 0.20163536 -0.28296886 -0.58805356 0.615310653
## zona_Zona Norte -0.11234690 0.29386072 0.38838790 -0.32512220 -0.334496112
## zona_Zona Oeste 0.09274834 0.45509645 -0.31446055 0.45277587 0.190726025
## zona_Zona Oriente -0.01387408 -0.01152512 0.16176908 0.15219516 0.343684548
## zona_Zona Sur 0.03646783 -0.56726519 -0.18824513 -0.12505614 -0.004609348
## tipo_Apartamento -0.30229866 0.18133259 -0.35623298 -0.18398015 -0.052877149
## PC6 PC7 PC8 PC9 PC10
## estrato 0.04802018 0.456921050 0.27201569 0.2758089 -0.24436928
## preciom 0.20934295 0.014294457 -0.07563302 0.1240471 0.32949988
## areaconst 0.01942104 -0.064950533 -0.30316299 0.2251278 0.56423436
## parqueaderos 0.22750758 -0.596202685 0.07832407 -0.4632522 -0.30670922
## banios -0.14146102 0.320822606 0.20748702 -0.1270752 -0.13694082
## habitaciones -0.33308207 0.217454527 0.27613394 -0.3558839 0.02541579
## longitud 0.63135606 0.421130159 -0.22729982 -0.2309056 -0.08813902
## latitud -0.12301905 -0.006998522 -0.14181289 -0.1307549 0.07981286
## piso_numeric -0.16124318 -0.154777918 -0.16038578 0.1812635 -0.15768695
## zona_Zona Norte -0.26311563 -0.038556788 0.14731218 0.1373190 -0.02143124
## zona_Zona Oeste 0.19980206 0.147025794 -0.26694803 -0.1579503 -0.13547090
## zona_Zona Oriente 0.45783986 -0.224658445 0.58323664 0.3624971 0.05746244
## zona_Zona Sur -0.09293356 0.031514039 -0.15252480 -0.1403156 0.09438319
## tipo_Apartamento 0.06024641 0.072148717 0.38607410 -0.4497633 0.57433287
## PC11 PC12 PC13 PC14
## estrato 0.463277608 -0.17522243 0.086829456 0.024318529
## preciom -0.158436186 0.20712828 -0.704393534 -0.010884754
## areaconst 0.120780464 -0.26650250 0.483631910 0.008839805
## parqueaderos 0.118642403 -0.08727473 0.107594347 0.002318014
## banios -0.418506017 0.52280900 0.369650545 0.010370115
## habitaciones 0.209723792 -0.38907816 -0.295864253 -0.014946002
## longitud -0.008494637 -0.08791431 0.013522655 0.001934574
## latitud 0.562026215 0.51262043 -0.004788416 0.003681811
## piso_numeric 0.031910491 -0.02919665 0.001204501 0.001012471
## zona_Zona Norte -0.274506848 -0.20092774 -0.023385777 -0.551888401
## zona_Zona Oeste -0.128317822 -0.17315013 0.060441165 -0.466709967
## zona_Zona Oriente 0.121325952 0.12171812 0.058770170 -0.253523073
## zona_Zona Sur 0.294392144 0.25595676 -0.009226538 -0.641893923
## tipo_Apartamento -0.048025411 -0.03162745 0.136713251 0.012514526
Se obtienen 14 componentes prinicipales, el mismo número de variables, a continuación se evaluan el número conveniente de componenetes para explicar el máximo de varianza
## Warning: package 'factoextra' was built under R version 4.3.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_pca_var(res.pca,
col.var = "contrib", # Color by contributions to the PC
gradient.cols = c("#FF7F00", "#034D94"),
repel = TRUE # Avoid text overlapping
)
# Proporción de varianza explicada
# Crear un gráfico de dispersión de las dos primeras componentes principales
pca_data <- as.data.frame(res.pca$x)
plot(pca_data[, 1:2], main = "PCA: Primer y Segundo Componente")###sentido de los ejes
datos<- rbind(viviendaZ[90,], # ok
viviendaZ[3377,],
viviendaZ[23,],
viviendaZ[2856,])
datos <- as.data.frame(datos)
rownames(datos) = c("viv 90","viv 3377","viv 23","viv 2856")
datoscasos1 <- rbind(res.pca$x[90,1:2],res.pca$x[3377,1:2]) # CP1
rownames(casos1) = c("90","3377")
casos1 <- as.data.frame(casos1)
casos2 <- rbind(res.pca$x[23,1:2], res.pca$x[2856,1:2]) # CP2
rownames(casos2) = c("23","2856")
casos2 <- as.data.frame(casos2)
fviz_pca_ind(res.pca, col.ind = "#DEDEDE", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")) +
geom_point(data = casos1, aes(x = PC1, y = PC2), color = "red", size = 3) +
geom_point(data = casos2, aes(x = PC1, y = PC2), color = "blue", size = 3)
# Conclusión
La presente conclusión resume los hallazgos clave del análisis de componentes principales realizado sobre la base de datos de vivienda, cuyo propósito fue reducir la dimensionalidad y comprender mejor las relaciones subyacentes entre las variables consideradas.
El análisis reveló que los primeros ocho componentes principales explican conjuntamente el 80% de la varianza total de los datos. Esto indica que una gran parte de la variabilidad en las características de la vivienda puede ser capturada por estos ocho componentes.
El primer componente principal, que por sí solo explica el 29% de la varianza, está fuertemente influenciado por las variables de precio, área de construcción, número de baños y parqueadero. Esto sugiere que estas características son fundamentales para diferenciar las viviendas en el mercado.
Por otro lado, el segundo componente, que añade un 19% adicional a la varianza explicada, está dominado por las variables de zona, destacando la importancia de la ubicación geográfica en la valoración y características de la vivienda.
Los resultados sugieren que, en el análisis del mercado de vivienda, tanto las características físicas de la propiedad como su ubicación juegan un papel crítico en la variación de los datos. Específicamente, mientras que el precio y las características físicas del inmueble son determinantes para el primer componente, la zona o ubicación geográfica emerge como un factor clave en el segundo componente, indicando una clara segmentación del mercado basada en la localización.
Análisis de Conglomerados: Agrupar las propiedades residenciales en segmentos homogéneos con características similares para entender las dinámicas de las ofertas específicas en diferentes partes de la ciudad y en diferentes estratos socioeconómicos.
## Warning: package 'tidyverse' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ✔ readr 2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::combine() masks gridExtra::combine()
## ✖ mice::filter() masks dplyr::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ tibble::view() masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# distancia euclidiana
dist_emp <- dist(viviendaZ, method = 'euclidean')
# Cluster jerarquico con el método complete
hc_emp <- hclust(dist_emp, method = 'complete')
# Determinamos a dónde pertenece cada observación
cluster_assigments <- cutree(hc_emp, k = 4)
# asignamos los clusters
viviendaZ <- as.data.frame(viviendaZ)
assigned_cluster <- viviendaZ %>% mutate(cluster = as.factor(cluster_assigments))
# gráfico de puntos
ggplot(assigned_cluster, aes(x = preciom, y = areaconst, color = cluster)) +
geom_point(size = 4) +
geom_text(aes(label = cluster), vjust = -.8) + # Agregar etiquetas del clúster
theme_classic()#dendograma
plot(hc_emp, cex = 0.6, main = "Dendograma de viviendas", las=1,
ylab = "Distancia euclidiana", xlab = "Grupos")
rect.hclust(hc_emp, k = 2, border = 2:5)#Elección del número de conglomerados
library(factoextra)
dist_emp <- dist(viviendaZ, method = "euclidean")
dendograma <- hclust(dist_emp, method = "average")
# plot(dendograma, cex = 0.6, hang = -1)
barplot(sort(dendograma$height, decreasing = TRUE), horiz = TRUE,
main = "Agregaciones (distancias euclidianas)",
col = "lightblue", ylab = "Nodo", xlab = "Peso", xlim = c(0, 5))#Por último se mide el indice de Silhouette promedio con el fin de valorar la mejor alternativa para la elección del número de conglomerados
library(tidyverse)
library(cluster)
# distancia euclidiana
dist_emp <- dist(viviendaZ, method = 'euclidean')
# Cluster jerarquico con el método complete
hc_emp <- hclust(dist_emp, method = 'complete')
# Determinamos a dónde pertenece cada observación
cluster_assigments <- cutree(hc_emp, k = 4)
# Calcular el coeficiente de Silhouette
sil <- silhouette(cluster_assigments, dist(viviendaZ))
sil_avg <- mean(sil[,3])
# Imprimir el coeficiente de Silhouette promedio
cat("Coeficiente de Silhouette promedio k=4 : ", sil_avg)## Coeficiente de Silhouette promedio k=4 : 0.2490852
# Determinamos a dónde pertenece cada observación k=2
cluster_assigments <- cutree(hc_emp, k = 2)
# Calcular el coeficiente de Silhouette
sil <- silhouette(cluster_assigments, dist(viviendaZ))
sil_avg <- mean(sil[,3])
# Imprimir el coeficiente de Silhouette promedio
cat("Coeficiente de Silhouette promedio k=2 : ", sil_avg)## Coeficiente de Silhouette promedio k=2 : 0.515953
k=2 parece ser una mejor elección para tu análisis de clústeres en comparación con k=4, ya que el coeficiente de Silhouette es significativamente más alto. Esto sugiere que al dividir tus datos en 2 clústeres, se logra una mejor cohesión dentro de los clústeres y una mayor separación entre ellos.
Conclusión: Este análisis se llevó a cabo para identificar conglomerados de viviendas con características similares en el mercado, lo que nos permitirá entender mejor las dinámicas y segmentaciones existentes.
Tras aplicar el análisis de conglomerados, se determinó que dividir los datos en 2 conglomerados es más efectivo que en 4, basándose en un coeficiente de Silhouette significativamente más alto.
Los dos conglomerados identificados reflejan dos segmentos distintos en el mercado de vivienda. El primer conglomerado agrupa viviendas que comparten características específicas, como un rango de precios similar, ubicaciones en ciertas zonas, y determinadas características físicas.
Análisis de Correspondencia : Examinar la relación entre las variables categóricas (tipo de vivienda, zona y barrio), para identificar patrones de comportamiento de la oferta en mercado inmobiliario.
#Se convierte en variable tipo factor la variable vivienda$estrato
vivienda$estrato <- as.factor(vivienda$estrato)
#Se revisa si la base tiene datos faltantes (rectángulos de color rojo)
library(mice)
md.pattern(vivienda, rotate.names = TRUE)## preciom id zona estrato areaconst banios habitaciones tipo barrio longitud
## 4808 1 1 1 1 1 1 1 1 1 1
## 1909 1 1 1 1 1 1 1 1 1 1
## 876 1 1 1 1 1 1 1 1 1 1
## 726 1 1 1 1 1 1 1 1 1 1
## 1 1 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0 0
## 2 3 3 3 3 3 3 3 3 3
## latitud parqueaderos piso piso_numeric
## 4808 1 1 1 1 0
## 1909 1 1 0 0 2
## 876 1 0 1 1 1
## 726 1 0 0 0 3
## 1 0 0 0 0 13
## 2 0 0 0 0 14
## 3 1605 2638 2638 6913
#eliminar faltantes
vivienda <- na.omit(vivienda)
grafico <-md.pattern(vivienda, rotate.names = TRUE)## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
#Se construye entonces una tabla cruzada con las variables involucradas en el análisis
library(FactoMineR)## Warning: package 'FactoMineR' was built under R version 4.3.3
tabla <- table(vivienda$zona, vivienda$estrato)
colnames(tabla) <- c("Estrato3", "Estrato4", "Estrato5", "Estrato6" )
tabla##
## Estrato3 Estrato4 Estrato5 Estrato6
## Zona Centro 33 3 0 0
## Zona Norte 141 184 482 79
## Zona Oeste 19 51 181 502
## Zona Oriente 94 2 1 0
## Zona Sur 147 973 1195 721
## Warning in chisq.test(tabla): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: tabla
## X-squared = 2172.8, df = 12, p-value < 2.2e-16
#análisis de correspondencia que consistes en estimar las coordenadas para cada uno de los niveles de ambas variables y representarlas en un plano cartesiano
library(FactoMineR)
library(factoextra)
library(gridExtra)
resultados_ac <- CA(tabla)#Para medir el grado de representatividad del proceso calculas los valores de la varianza acumulada, utilizando para ellos los valores propios de la matriz de discrepancias
valores_prop <-resultados_ac$eig ; valores_prop## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.29526876 65.338252 65.33825
## dim 2 0.13919088 30.800716 96.13897
## dim 3 0.01744831 3.861032 100.00000
fviz_screeplot(resultados_ac, addlabels = TRUE, ylim = c(0, 80))+ggtitle("")+
ylab("Porcentaje de varianza explicado") + xlab("Ejes")Este análisis de correspondencias fue realizado para explorar las relaciones y asociaciones entre las variables ‘zona’ y ‘estrato’ en el mercado inmobiliario, con el fin de comprender mejor cómo se distribuyen estas características en la ciudad de Cali.
El análisis reveló que el primer eje explica el 65.34% de la varianza, mientras que el segundo eje añade un 30.80% más, alcanzando un total del 96.14% de la varianza explicada por los dos primeros ejes. El tercer eje explica un 3.86% adicional, completando el 100% de la varianza.
Estos resultados sugieren que hay una fuerte asociación entre ‘zona’ y ‘estrato’, donde el primer eje captura la mayor parte de la relación entre estas variables. Esto podría indicar que ciertas zonas de la ciudad están fuertemente relacionadas con ciertos estratos socioeconómicos.
El conjunto de análisis realizados sobre la base de datos del mercado inmobiliario de la ciudad de Cali revela claves que pueden informar decisiones estratégicas para los actores del sector.
Esto sugiere que tanto las características físicas de las viviendas como su ubicación son determinantes clave en la diferenciación del mercado inmobiliario.
El análisis de conglomerados indicó que dividir el mercado en dos grupos proporciona una mejor cohesión interna y separación entre grupos, según un coeficiente de Silhouette elevado. Estos conglomerados representan dos segmentos distintos del mercado, cada uno caracterizado por diferentes rangos de precios, ubicaciones y características físicas, lo que resalta la importancia de estrategias de mercado específicas para cada segmento.
El análisis de correspondencias entre las variables “zona” y “estrato” mostró que el primer eje explica el 65.34% de la varianza y el segundo eje agrega un 30.80%, alcanzando un total de 96.14% de la varianza explicada. Esto indica una fuerte asociación entre la zona geográfica y el estrato socioeconómico, sugiriendo que ciertas zonas están vinculadas a determinados niveles de estrato, lo que influye significativamente en la segmentación del mercado. La zona Oeste es diferencial a otras zonas y está asociada al estrato 6, lo que constituye un segmento de mercado diferente al que se conforma con los estratos 3 y 4 y el resto de zonas de la ciudad.