1 Introducción

El presente informe analiza el mercado de vivienda urbana a partir de una base de datos compuesta por 8.322 propiedades residenciales y 13 variables, como se presenta en la Tabla 1. Este conjunto de información integra características físicas, socioeconómicas y geoespaciales, constituyendo una base robusta para comprender la dinámica de la oferta inmobiliaria y apoyar decisiones estratégicas de valoración, segmentación y comercialización.

Tabla 1. Dimensión del conjunto de datos

knitr::kable(
  data.frame(
    Concepto = c("Número de observaciones", "Número de variables"),
    Valor = dim(vivienda)
  )
)
Concepto Valor
Número de observaciones 8322
Número de variables 13

La estructura del dataset (Tabla 2) combina variables numéricas y categóricas. Entre las variables cuantitativas destacan el precio (preciom), cuyo rango oscila entre 58 y 1.999, con una mediana de 330; el área construida (areaconst), con valores entre 30 y 1.745 y una mediana de 123; así como el estrato socioeconómico, que se concentra entre 3 y 6, con una media de 4,63. Estas cifras evidencian una marcada heterogeneidad en las características físicas y económicas de las propiedades analizadas.

Tabla 2. “Estructura y tipo de variables del dataset”

knitr::kable(
  data.frame(
    Variable = names(vivienda),
    Tipo = sapply(vivienda, class),
    row.names = NULL
  )
)
Variable Tipo
id numeric
zona character
piso character
estrato numeric
preciom numeric
areaconst numeric
parqueaderos numeric
banios numeric
habitaciones numeric
tipo character
barrio character
longitud numeric
latitud numeric

En términos estructurales, el número de parqueaderos presenta una media de 1,84, mientras que el número promedio de baños es 3,11 y de habitaciones 3,61, lo que sugiere predominancia de viviendas de tamaño medio dentro del mercado estudiado. Los estadísticos descriptivos completos se detallan en la Tabla 3.

Tabla 3. “Descriptivos de las Variables”

knitr::kable(
  summary(vivienda[, sapply(vivienda, is.numeric)])
)
id estrato preciom areaconst parqueaderos banios habitaciones longitud latitud
Min. : 1 Min. :3.000 Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000 Min. : 0.000 Min. :-76.59 Min. :3.333
1st Qu.:2080 1st Qu.:4.000 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 3.000 1st Qu.:-76.54 1st Qu.:3.381
Median :4160 Median :5.000 Median : 330.0 Median : 123.0 Median : 2.000 Median : 3.000 Median : 3.000 Median :-76.53 Median :3.416
Mean :4160 Mean :4.634 Mean : 433.9 Mean : 174.9 Mean : 1.835 Mean : 3.111 Mean : 3.605 Mean :-76.53 Mean :3.418
3rd Qu.:6240 3rd Qu.:5.000 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.:-76.52 3rd Qu.:3.452
Max. :8319 Max. :6.000 Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000 Max. :10.000 Max. :-76.46 Max. :3.498
NA’s :3 NA’s :3 NA’s :2 NA’s :3 NA’s :1605 NA’s :3 NA’s :3 NA’s :3 NA’s :3

Desde la perspectiva espacial, la distribución por zona (Tabla 4) muestra una alta concentración en Zona Sur (4.726 propiedades), seguida por Zona Norte (1.920) y Zona Oeste (1.198), mientras que Zona Oriente (351) y Zona Centro (124) presentan menor participación relativa. Esta distribución sugiere dinámicas territoriales diferenciadas que pueden impactar directamente la estructura de precios y características de la oferta.

Tabla 4. Distribución de propiedades por zona

zona_df <- as.data.frame(table(vivienda$zona))
colnames(zona_df) <- c("Zona", "Número de propiedades")

knitr::kable(zona_df)
Zona Número de propiedades
Zona Centro 124
Zona Norte 1920
Zona Oeste 1198
Zona Oriente 351
Zona Sur 4726

En cuanto al tipo de vivienda (Tabla 5), el mercado está compuesto principalmente por 5.100 apartamentos, frente a 3.219 casas, lo que indica una mayor densidad vertical en la oferta disponible y posibles diferencias en patrones de precio y segmentación.

Tabla 5. Distribución de propiedades por tipo de vivienda

tipo_df <- as.data.frame(table(vivienda$tipo))
colnames(tipo_df) <- c("Tipo de vivienda", "Número de propiedades")

knitr::kable(tipo_df)
Tipo de vivienda Número de propiedades
Apartamento 5100
Casa 3219

Este contexto descriptivo inicial confirma la existencia de un mercado inmobiliario heterogéneo, con variabilidad significativa en precios, tamaño y localización. A partir de esta base, el análisis se estructura en cuatro frentes: (1) exploración detallada de patrones, (2) reducción de dimensionalidad mediante Análisis de Componentes Principales (PCA), (3) segmentación a través de técnicas de clustering y (4) análisis de correspondencia para examinar relaciones entre variables categóricas. Finalmente, se presentan visualizaciones y recomendaciones estratégicas orientadas a la optimización de decisiones en el mercado inmobiliario urbano.

2 Analisis Exploratorio de Datos

2.1 Distribucion del Precio

El precio constituye la variable central del análisis, ya que representa la métrica principal de valoración del mercado inmobiliario. A continuación, se analiza su comportamiento distributivo para identificar concentración, dispersión y posibles valores atípicos.

Figura 1. Histograma del precio (preciom)

#| label: fig-hist-precio
#| fig-cap: "Histograma del precio (preciom)"
#| fig-align: center

hist(
  vivienda$preciom,
  breaks = 40,
  col = "lightblue",
  border = "white",
  main = "",
  xlab = "Precio",
  ylab = "Frecuencia"
)

El histograma permite observar la forma de la distribución. Se evidencia la presencia de una cola hacia la derecha, consistente con la existencia de propiedades de alto valor que generan asimetría positiva en la distribución.

Para complementar el análisis, se presenta el diagrama de caja:

Figura 2. Diagrama de caja del precio (preciom)

boxplot(
  vivienda$preciom,
  col = "lightgray",
  horizontal = TRUE,
  main = "",
  xlab = "Precio"
)

El diagrama de caja confirma la existencia de valores atípicos superiores, coherentes con el rango observado previamente (58 a 1.999). Esta amplitud sugiere un mercado heterogéneo con distintos niveles de segmentación en términos de valor.

Desde una perspectiva analítica, la asimetría observada podría justificar el uso de transformaciones como el logaritmo del precio en etapas posteriores (PCA y clustering), con el fin de estabilizar la varianza y reducir el efecto de valores extremos.

2.2 Relación Precio – Área construida

La relación entre el precio (preciom) y el área construida (areaconst) permite identificar patrones de valorización asociados al tamaño de la propiedad y posibles segmentos del mercado.

Figura 3. Relación entre área construida y precio

plot(
  vivienda$areaconst, vivienda$preciom,
  pch = 16,
  xlab = "Área construida (m2)",
  ylab = "Precio (preciom)",
  main = ""
)
abline(lm(preciom ~ areaconst, data = vivienda), lwd = 2)

Se observa una relación positiva clara entre el tamaño de la propiedad y su precio, lo cual es consistente con la lógica económica del mercado inmobiliario. No obstante, la nube de puntos presenta una alta concentración en el rango aproximado de 50 a 500 m², donde también se evidencia dispersión significativa en los niveles de precio. Esto sugiere la coexistencia de distintos segmentos dentro de propiedades de tamaño medio.

Asimismo, se identifican valores atípicos correspondientes a propiedades de gran área con precios elevados, lo cual incrementa la variabilidad en la parte superior del gráfico.

Figura 4. Relación entre área construida y logaritmo del precio

plot(
  vivienda$areaconst, log(vivienda$preciom),
  pch = 16,
  xlab = "Área construida (m2)",
  ylab = "log(Precio)",
  main = ""
)
abline(lm(log(preciom) ~ areaconst, data = vivienda), lwd = 2)

Al aplicar la transformación logarítmica del precio (Figura 4), la relación se observa más compacta y cercana a una forma lineal, reduciendo el impacto visual de los valores extremos. Esta estabilización sugiere que la transformación logarítmica podría ser adecuada para los análisis multivariados posteriores, especialmente en PCA y técnicas de clustering, donde la presencia de asimetría puede afectar la estructura de los componentes o conglomerados.

2.3 Precio por Estrato

El estrato socioeconómico constituye una variable estructural relevante en el mercado inmobiliario, ya que suele estar directamente asociado al nivel de precios y características de las propiedades.

Figura 5. Distribución del precio por estrato

boxplot(
  preciom ~ estrato,
  data = vivienda,
  col = "lightgray",
  xlab = "Estrato",
  ylab = "Precio (preciom)",
  main = ""
)

El diagrama de caja evidencia un comportamiento claramente creciente del precio a medida que aumenta el estrato socioeconómico. La mediana del precio se incrementa de forma progresiva desde el estrato 3 hasta el estrato 6, lo cual confirma la existencia de un gradiente socioeconómico estructural en el mercado inmobiliario.

Asimismo, se observa que la dispersión también aumenta en los estratos superiores, particularmente en el estrato 6, donde se presentan valores extremos significativamente altos. Esto indica que en los segmentos de mayor nivel socioeconómico no solo aumentan los precios promedio, sino también la heterogeneidad dentro del segmento.

Tabla 6. Precio promedio por estrato

precio_estrato <- aggregate(preciom ~ estrato, data = vivienda, mean)
colnames(precio_estrato) <- c("Estrato", "Precio promedio")
knitr::kable(precio_estrato)
Estrato Precio promedio
3 210.3235
4 275.0996
5 410.2509
6 800.2889

La Tabla 6 confirma el gradiente socioeconómico observado gráficamente. El precio promedio aumenta progresivamente desde 210,32 en el estrato 3 hasta 800,29 en el estrato 6. Se evidencia un incremento moderado entre los estratos 3 y 4, y entre 4 y 5; sin embargo, el salto más significativo se presenta entre los estratos 5 y 6, donde el precio promedio prácticamente se duplica.

Este comportamiento sugiere que el estrato 6 representa un segmento claramente diferenciado del mercado, no solo por niveles de precio superiores, sino también por mayor dispersión interna, como se observó en el diagrama de caja. En términos estratégicos, esto indica la existencia de un segmento premium con dinámicas propias dentro del mercado inmobiliario urbano.

3 Analisis de Componentes Principales (PCA)

3.1 Evaluación de valores faltantes

Primero revisamos faltantes en todo el dataset:

Tabla 7. Número de valores faltantes por variable

na_total <- colSums(is.na(vivienda))
na_df <- data.frame(
  Variable = names(na_total),
  NA_count = na_total,
  NA_porcentaje = round(na_total / nrow(vivienda) * 100, 2)
)

knitr::kable(na_df)
Variable NA_count NA_porcentaje
id id 3 0.04
zona zona 3 0.04
piso piso 2638 31.70
estrato estrato 3 0.04
preciom preciom 2 0.02
areaconst areaconst 3 0.04
parqueaderos parqueaderos 1605 19.29
banios banios 3 0.04
habitaciones habitaciones 3 0.04
tipo tipo 3 0.04
barrio barrio 3 0.04
longitud longitud 3 0.04
latitud latitud 3 0.04

El análisis de valores faltantes evidencia que la variable piso presenta un 31,70% de datos ausentes, mientras que parqueaderos presenta un 19,29%. El resto de variables muestran porcentajes inferiores al 0,05%, considerados estadísticamente irrelevantes.

Dado que piso es una variable categórica y no forma parte del conjunto de variables numéricas utilizadas en el Análisis de Componentes Principales (PCA), se decide excluirla del análisis multivariado sin realizar imputación, evitando introducir sesgos derivados de una alta proporción de datos faltantes.

En el caso de parqueaderos, aunque presenta un porcentaje moderado de valores ausentes, su naturaleza numérica y relevancia estructural en la caracterización de la vivienda justifican su conservación en el modelo. En lugar de eliminar aproximadamente el 19% de las observaciones, se opta por una imputación robusta utilizando la mediana de la variable, ya que esta medida es menos sensible a valores extremos y mantiene la estabilidad de la distribución.

Esta estrategia permite preservar la mayor cantidad posible de información, minimizar la pérdida de muestra y garantizar la coherencia metodológica del análisis de reducción de dimensionalidad.

3.2 Tratamiento de valores faltantes

Dado que la variable parqueaderos presenta un 19,29% de valores faltantes, se realiza imputación utilizando la mediana, con el fin de preservar la estructura distributiva y evitar pérdida significativa de observaciones.

Tabla 8. Valores faltantes antes y después de la imputación

# Variables para PCA
vars_pca <- vivienda[, c(
  "estrato",
  "preciom",
  "areaconst",
  "parqueaderos",
  "banios",
  "habitaciones",
  "longitud",
  "latitud"
)]

na_before <- colSums(is.na(vars_pca))

# Imputación por mediana para todas las variables numéricas del PCA
for (v in names(vars_pca)) {
  med <- median(vars_pca[[v]], na.rm = TRUE)
  vars_pca[[v]][is.na(vars_pca[[v]])] <- med
}

na_after <- colSums(is.na(vars_pca))

na_comparacion <- data.frame(
  Variable = names(na_before),
  NA_antes = na_before,
  NA_despues = na_after,
  row.names = NULL
)

knitr::kable(na_comparacion)
Variable NA_antes NA_despues
estrato 3 0
preciom 2 0
areaconst 3 0
parqueaderos 1605 0
banios 3 0
habitaciones 3 0
longitud 3 0
latitud 3 0

Este procedimiento garantiza que el conjunto de datos utilizado en el PCA no contenga valores faltantes, evitando la eliminación de aproximadamente el 19% de las observaciones y manteniendo la integridad de la muestra original.

3.3 Estandarización

Con el fin de evitar que variables con mayor escala (por ejemplo, preciom o areaconst) dominen el análisis, se procede a estandarizar las variables numéricas seleccionadas.

vars_pcaZ <- scale(vars_pca)

summary(vars_pcaZ)
##     estrato           preciom          areaconst        parqueaderos    
##  Min.   :-1.5876   Min.   :-1.1438   Min.   :-1.0138   Min.   :-0.8561  
##  1st Qu.:-0.6158   1st Qu.:-0.6508   1st Qu.:-0.6640   1st Qu.:-0.8561  
##  Median : 0.3559   Median :-0.3161   Median :-0.3632   Median : 0.1314  
##  Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.0000  
##  3rd Qu.: 0.3559   3rd Qu.: 0.3230   3rd Qu.: 0.3784   3rd Qu.: 0.1314  
##  Max.   : 1.3277   Max.   : 4.7629   Max.   :10.9841   Max.   : 8.0310  
##      banios          habitaciones        longitud           latitud        
##  Min.   :-2.17883   Min.   :-2.4704   Min.   :-3.48049   Min.   :-1.98550  
##  1st Qu.:-0.77823   1st Qu.:-0.4147   1st Qu.:-0.74582   1st Qu.:-0.86425  
##  Median :-0.07792   Median :-0.4147   Median :-0.08012   Median :-0.03855  
##  Mean   : 0.00000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.00000  
##  3rd Qu.: 0.62238   3rd Qu.: 0.2706   3rd Qu.: 0.55857   3rd Qu.: 0.80591  
##  Max.   : 4.82419   Max.   : 4.3821   Max.   : 3.77153   Max.   : 1.87790

Esto garantiza que todas las variables tengan media 0 y desviación estándar 1.

3.4 Estimación del modelo

El modelo PCA genera ocho componentes principales, equivalentes al número de variables incluidas en el análisis. Cada componente corresponde a una combinación lineal de las variables originales, ordenados de mayor a menor varianza explicada.

res.pca <- prcomp(vars_pcaZ)

tabla_sdev <- data.frame(
  Componente = paste0("PC", seq_along(res.pca$sdev)),
  Desviacion_Estandar = round(res.pca$sdev, 3)
)

knitr::kable(tabla_sdev,
             caption = "Desviación estándar por componente principal")
Desviación estándar por componente principal
Componente Desviacion_Estandar
PC1 1.879
PC2 1.221
PC3 0.951
PC4 0.857
PC5 0.733
PC6 0.619
PC7 0.486
PC8 0.428

3.5 Elección del número de componentes

Los resultados del Análisis de Componentes Principales muestran que el primer componente principal (PC1) explica el 44,1% de la variabilidad total del conjunto de datos, mientras que el segundo componente (PC2) explica el 18,6%. En conjunto, los dos primeros componentes capturan el 62,8% de la variabilidad del mercado inmobiliario, lo cual indica que es posible resumir gran parte de la estructura de la información en solo dos dimensiones sintéticas.

Figura 6. Varianza explicada por componente principal

var_exp <- res.pca$sdev^2 / sum(res.pca$sdev^2)

plot(
  var_exp,
  type = "b",
  pch = 16,
  xlab = "Componente Principal",
  ylab = "Proporción de Varianza Explicada",
  main = ""
)

Tabla 9. Varianza explicada y acumulada

var_acum <- cumsum(var_exp)

tabla_varianza <- data.frame(
  Componente = paste0("PC", seq_along(var_exp)),
  Varianza = round(var_exp, 3),
  Varianza_Acumulada = round(var_acum, 3)
)

knitr::kable(tabla_varianza)
Componente Varianza Varianza_Acumulada
PC1 0.441 0.441
PC2 0.186 0.628
PC3 0.113 0.741
PC4 0.092 0.832
PC5 0.067 0.900
PC6 0.048 0.948
PC7 0.030 0.977
PC8 0.023 1.000

El gráfico de varianza explicada evidencia una caída pronunciada entre el primer y segundo componente, seguida de una disminución progresiva, lo que sugiere que el PC1 concentra la dimensión estructural dominante del mercado.

3.6 Visualización de variables

Desde el punto de vista interpretativo, el primer componente principal (Dim1) está fuertemente asociado con las variables preciom, areaconst, banios y parqueaderos, las cuales apuntan en la misma dirección y presentan altas contribuciones. Esto indica que el PC1 representa una dimensión de “valor y tamaño del inmueble”, donde las propiedades con mayor área, mayor número de baños y parqueaderos tienden a ubicarse en el extremo positivo del componente, asociado también a mayores niveles de precio. En consecuencia, esta dimensión sintetiza el nivel estructural y económico de la vivienda.

Figura 7. Representación de variables en el plano principal

fviz_pca_var(res.pca,
             col.var = "contrib",
             gradient.cols = c("#FF7F00", "#034D94"),
             repel = TRUE)

El segundo componente principal (Dim2), por su parte, está influenciado principalmente por la variable habitaciones y por las variables geográficas latitud y longitud, las cuales presentan direcciones diferenciadas en el plano factorial. Esto sugiere que el PC2 captura una dimensión asociada a la configuración espacial y distribución interna del inmueble, diferenciando propiedades no solo por localización sino también por estructura interna (número de habitaciones).

La variable estrato presenta una contribución relevante en el primer componente, aunque con dirección distinta a algunas variables físicas, lo que indica que el nivel socioeconómico forma parte de la dimensión estructural del valor del inmueble, pero no coincide completamente con la variabilidad explicada exclusivamente por tamaño y equipamiento.

3.7 Biplot general

El gráfico de variables confirma que preciom y areaconst se encuentran altamente correlacionadas, ya que sus vectores presentan direcciones similares y un ángulo pequeño entre ellos. Del mismo modo, banios y parqueaderos muestran un comportamiento coherente con esta dimensión estructural. En contraste, latitud y longitud se agrupan en una dirección diferente, evidenciando que la localización constituye una dimensión separada de la estructura física del inmueble.

Figura 8. Biplot del PCA

set.seed(123)

idx <- sample(seq_len(nrow(vars_pcaZ)), 800)

fviz_pca_biplot(
  res.pca,
  select.ind = list(name = rownames(vars_pcaZ)[idx]),
  repel = TRUE,
  geom.ind = "point",
  alpha.ind = 0.2,
  col.var = "#034A94",
  col.ind = "grey70"
)

En términos estratégicos, el PCA revela que la variación del mercado inmobiliario urbano puede resumirse principalmente en dos grandes ejes: (1) una dimensión estructural asociada al tamaño, equipamiento y precio del inmueble, y (2) una dimensión espacial vinculada a la localización geográfica y configuración interna. Esta reducción dimensional permite comprender de manera más clara la segmentación natural del mercado y sienta las bases para la aplicación de técnicas posteriores de análisis de conglomerados.

4 Analisis de Conglomerados

El objetivo del análisis de conglomerados es identificar segmentos homogéneos de propiedades residenciales a partir de sus características estructurales, económicas y espaciales. Para ello, se utilizan las variables previamente estandarizadas y resumidas mediante el PCA, reduciendo así el ruido y la multicolinealidad entre variables.

4.1 Selección del número de conglomerados

El método del codo (WSS) muestra una reducción pronunciada en la suma de cuadrados dentro de los grupos al pasar de 1 a 3 conglomerados, seguida de una disminución más moderada a partir de k = 4. Visualmente, el punto de inflexión se ubica alrededor de k = 3 o k = 4, donde la pendiente comienza a estabilizarse.

Figura 9. Método del codo para selección de clusters

set.seed(123)

fviz_nbclust(
  vars_pcaZ,
  kmeans,
  method = "wss"
)

Esto indica que gran parte de la heterogeneidad estructural del mercado puede capturarse con tres o cuatro segmentos. La elección de k = 4 permite una segmentación más detallada, separando no solo niveles extremos (alto y bajo), sino también dos subsegmentos intermedios con dinámicas diferenciadas.

4.2 Estimación del modelo k-means

El modelo con k = 4 genera conglomerados de tamaños 1.036, 1.370, 1.896 y 4.020 propiedades, respectivamente. Se observa que el cluster 4 concentra cerca del 48% de la muestra, lo que sugiere la existencia de un segmento dominante dentro del mercado.

Tabla 10. Tamaño de los conglomerados (k = 4)

set.seed(123)

k4 <- kmeans(vars_pcaZ, centers = 4, nstart = 25)

tabla_cluster <- data.frame(
  Cluster = 1:4,
  Tamaño = k4$size
)

knitr::kable(tabla_cluster)
Cluster Tamaño
1 1036
2 1370
3 1896
4 4020

Los otros tres conglomerados presentan tamaños más equilibrados, permitiendo identificar segmentos específicos que representan nichos diferenciados dentro de la oferta inmobiliaria urbana.

4.3 Visualización de conglomerados

La proyección en el plano principal (Dim1 y Dim2 del PCA) muestra una separación clara entre los grupos. Dado que Dim1 está asociada principalmente a la dimensión estructural de valor (precio, área, baños y parqueaderos), la segmentación se organiza principalmente a lo largo de este eje.

El cluster ubicado más a la derecha del plano corresponde a propiedades de mayor valor estructural, mientras que los grupos situados hacia la izquierda representan viviendas de menor tamaño y precio. La separación vertical (Dim2) refleja diferencias relacionadas con configuración interna y localización geográfica, complementando la segmentación estructural.

Figura 10. Conglomerados en el plano principal (k = 4)

fviz_cluster(
  k4,
  data = vars_pcaZ,
  geom = "point",
  ellipse.type = "convex",
  palette = c("#034A94", "#FF7F00", "#4CAF50", "#9C27B0","#da0909")
)

La dispersión relativamente compacta de cada conglomerado indica que el algoritmo logró agrupar propiedades con características homogéneas, reduciendo la variabilidad interna y maximizando la separación entre segmentos.

4.4 Perfil de los conglomerados

El análisis de perfiles promedio permite caracterizar cada segmento del mercado:

Tabla 11. Perfiles de los Conglomerados

vivienda_cluster <- vivienda
vivienda_cluster$cluster <- k4$cluster

perfil_cluster <- aggregate(
  vivienda_cluster[, c("preciom","areaconst","estrato",
                       "banios","habitaciones","parqueaderos")],
  by = list(Cluster = vivienda_cluster$cluster),
  function(x) mean(x, na.rm = TRUE)
)

knitr::kable(round(perfil_cluster,2))
Cluster preciom areaconst estrato banios habitaciones parqueaderos
1 459.82 299.84 4.07 4.42 6.24 1.81
2 1011.65 354.65 5.76 4.86 4.10 3.37
3 225.39 102.18 3.80 2.09 3.02 1.27
4 328.60 115.77 4.79 2.66 3.03 1.47

4.4.1 Cluster 2 – Segmento Alto (Premium)

Con un precio promedio de 1.011,65, área construida de 354,65 m² y estrato promedio de 5,76, este grupo representa el segmento de mayor nivel socioeconómico. Presenta además 4,86 baños y 3,37 parqueaderos en promedio, lo que confirma su carácter de vivienda de alto estándar. Este conglomerado refleja un mercado premium claramente diferenciado en términos de equipamiento y valorización.

4.4.2 Cluster 1 – Segmento Medio-Alto Amplio

Con precio promedio de 459,82 y área de 299,84 m², este grupo presenta un estrato medio (4,07) pero destaca por un número elevado de habitaciones (6,24). Esto sugiere viviendas amplias, posiblemente casas familiares tradicionales, con mayor número de espacios internos pero menor nivel socioeconómico que el cluster premium. Representa un segmento intermedio alto en tamaño, aunque no necesariamente en estrato.

4.4.3 Cluster 4 – Segmento Medio

Este conglomerado presenta un precio promedio de 328,60 y área de 115,77 m², con estrato promedio de 4,79. Se trata de viviendas de tamaño medio, con 2,66 baños y 1,47 parqueaderos. Constituye un segmento intermedio consolidado, posiblemente apartamentos o casas compactas en zonas de estrato medio-alto. Es un grupo estructuralmente equilibrado y representativo del mercado urbano estándar.

4.4.4 Cluster 3 – Segmento Bajo

Con precio promedio de 225,39 y área de 102,18 m², este grupo representa el segmento de menor valorización. El estrato promedio de 3,80 y el menor número de baños (2,09) y parqueaderos (1,27) confirman su posicionamiento en el mercado bajo. Este segmento agrupa viviendas funcionales, con menor equipamiento y menor nivel socioeconómico relativo.

5 Analisis de Correspondencia

La variable barrio tiene 437 categorías, lo que genera dos problemas: (1) muchas categorías con frecuencias muy bajas introducen ruido y vuelven inestable la solución factorial, y (2) la representación gráfica se vuelve ilegible por exceso de puntos/categorías. Para conservar interpretabilidad sin perder la estructura principal del mercado, se mantienen únicamente los barrios con frecuencia alta (representativos) y el resto se agrupa en una categoría “Otros”. Esta estrategia es estándar cuando existe alta cardinalidad en variables nominales.

Tabla 12. Barrios Unicos

tabla_barrios_unicos <- data.frame(
  Concepto = "Barrios únicos",
  Cantidad = length(unique(vivienda$barrio))
)

knitr::kable(tabla_barrios_unicos)
Concepto Cantidad
Barrios únicos 437

La Figura 11 presenta el patrón de datos faltantes para las variables zona, tipo y barrio dentro de la muestra seleccionada (n = 4.000). Se observa que la gran mayoría de los registros (3.999 observaciones) no presentan valores ausentes en ninguna de las variables analizadas, mientras que únicamente 1 registro presenta valores faltantes simultáneamente.

Este resultado confirma que la base de datos es prácticamente completa para las variables categóricas utilizadas en el Análisis de Correspondencia Múltiple (MCA). La ausencia de datos faltantes significativos garantiza estabilidad en la estimación del modelo factorial y evita sesgos derivados de eliminación masiva de observaciones.

Figura 11. Exploracion de Datos Faltantes

set.seed(1234)

vivienda_ca <- vivienda %>%
  select(zona, tipo, barrio) %>%
  sample_n(4000)

invisible(md.pattern(vivienda_ca, rotate.names = TRUE))

La Figura 12 confirma que, tras la depuración correspondiente (eliminación del registro con valores faltantes), el conjunto de datos utilizado en el MCA queda completamente limpio. Todas las observaciones incluidas contienen información válida en zona, tipo y barrio_reducido.

Esta condición es fundamental para el análisis de correspondencia, ya que el método trabaja sobre tablas de contingencia completas y distribuciones relativas entre categorías. Contar con una matriz sin valores faltantes asegura que las asociaciones detectadas entre zona, tipo de vivienda y barrio respondan a patrones reales del mercado y no a distorsiones por ausencia de información. ::: {style=“text-align: center;”} Figura 12. Variables Sin Faltantes :::

vivienda_ca <- na.omit(vivienda_ca)
md.pattern(vivienda_ca, rotate.names = TRUE)

Con base en el criterio previamente definido (umbral ≥ 80 observaciones), se procedió a construir la variable barrio_reducido, manteniendo únicamente los barrios con mayor representatividad dentro de la muestra y agrupando el resto en la categoría “Otros”.

La Tabla 13 presenta la distribución final de frecuencias luego de la reducción. Se observa que barrios como Valle del Lili, Ciudad Jardín, Pance y La Flora conservan una participación significativa dentro de la muestra, mientras que la categoría “Otros” concentra el conjunto de barrios con baja frecuencia individual.

Esta transformación no implica imputación ni modificación de datos originales, sino una reclasificación estratégica orientada a mejorar la estabilidad estadística del análisis de correspondencia y facilitar la interpretación de los resultados factoriales. De esta manera, se mantiene la estructura dominante del mercado inmobiliario sin sobrefragmentar el modelo con categorías marginales.

Tabla 13. Barrios Reducidos

umbral <- 80

tabla_barrios <- table(vivienda$barrio)
barrios_validos <- names(tabla_barrios[tabla_barrios >= umbral])

vivienda_ca$barrio_reducido <- ifelse(
  vivienda_ca$barrio %in% barrios_validos,
  vivienda_ca$barrio,
  "Otros"
)

vivienda_ca$barrio_reducido <- as.factor(vivienda_ca$barrio_reducido)
vivienda_ca$zona <- as.factor(vivienda_ca$zona)
vivienda_ca$tipo <- as.factor(vivienda_ca$tipo)

tabla_barrio_reducido <- sort(table(vivienda_ca$barrio_reducido), decreasing = TRUE)

df_barrio_reducido <- data.frame(
  Barrio = names(tabla_barrio_reducido),
  Frecuencia = as.integer(tabla_barrio_reducido),
  row.names = NULL
)

knitr::kable(df_barrio_reducido)
Barrio Frecuencia
Otros 1796
valle del lili 497
ciudad jardín 254
pance 197
la flora 179
el ingenio 118
santa teresita 117
el caney 96
los cristales 81
la hacienda 79
normandía 77
acopi 75
el limonar 67
prados del norte 60
aguacatal 55
el refugio 54
caney 46
urbanización la flora 46
ciudad 2000 39
brisas de los 35
cristales 31

5.1 Pruebas de asociación (chi-cuadrado) con tablas cruzadas

La tabla cruzada evidencia diferencias claras en la composición del tipo de vivienda según la zona. En Zona Norte y Zona Oeste se observa una marcada predominancia de apartamentos (564 vs 344 en Norte; 508 vs 78 en Oeste), lo que sugiere una mayor densidad residencial y desarrollo vertical en estos sectores. En contraste, en Zona Oriente y Zona Centro la proporción de casas es relativamente más alta respecto a apartamentos (140 vs 31 en Oriente; 47 vs 14 en Centro), lo cual podría estar asociado a urbanizaciones de menor densidad o a configuraciones tradicionales del suelo.

Zona Sur, por su parte, presenta altos volúmenes en ambos tipos (1.344 apartamentos y 929 casas), lo que la convierte en la zona con mayor dinámica y diversidad de oferta. En conjunto, la distribución no es homogénea, lo que anticipa la existencia de una asociación estadísticamente significativa entre zona y tipo de vivienda.

Tabla 14. Tabla Cruzada

tabla_zona_tipo <- table(vivienda_ca$zona, vivienda_ca$tipo)

df_zona_tipo <- as.data.frame.matrix(tabla_zona_tipo)
df_zona_tipo$Zona <- rownames(df_zona_tipo)
df_zona_tipo <- df_zona_tipo[, c("Zona", setdiff(names(df_zona_tipo), "Zona"))]
rownames(df_zona_tipo) <- NULL

knitr::kable(df_zona_tipo)
Zona Apartamento Casa
Zona Centro 14 47
Zona Norte 564 344
Zona Oeste 508 78
Zona Oriente 31 140
Zona Sur 1344 929

5.1.1 Zona vs Tipo

El estadístico Chi-cuadrado (χ² = 336.644; gl = 4; p < 0.001) confirma formalmente que la distribución del tipo de vivienda depende de la zona. El valor elevado del estadístico indica que las diferencias observadas en la tabla cruzada no son producto del azar.

En términos de mercado, esto implica que la localización geográfica condiciona el perfil de oferta inmobiliaria, consolidando zonas con mayor orientación a apartamentos y otras con mayor presencia de casas. Desde una perspectiva estratégica, esta segmentación territorial debe considerarse en decisiones de inversión y desarrollo inmobiliario.

Tabla 15. Comparacion Zona vs Tipo

test_zona_tipo <- chisq.test(tabla_zona_tipo)

chi_res_zona_tipo <- data.frame(
  Comparacion = "Zona vs Tipo",
  Chi_cuadrado = round(unname(test_zona_tipo$statistic), 3),
  gl = unname(test_zona_tipo$parameter),
  p_value = format.pval(test_zona_tipo$p.value, digits = 3, eps = 0.001)
)

knitr::kable(chi_res_zona_tipo)
Comparacion Chi_cuadrado gl p_value
Zona vs Tipo 336.844 4 <0.001

5.1.2 Zona vs Barrio (reducido)

El resultado (χ² = 4662.871; gl = 80; p < 0.001) muestra una asociación extremadamente fuerte entre zona y barrio_reducido. Este comportamiento es coherente desde el punto de vista territorial, ya que los barrios forman parte estructural de zonas específicas.

El elevado valor del estadístico indica que la concentración de determinados barrios dentro de ciertas zonas no es aleatoria. Esto confirma que el mercado presenta una organización espacial definida, donde cada zona agrupa barrios con características propias, reforzando la importancia de la dimensión geográfica en la estructura de la oferta.

Tabla 16. Comparacion Zona vs Barrio

tabla_zona_barrio <- table(vivienda_ca$zona, vivienda_ca$barrio_reducido)

test_zona_barrio <- chisq.test(tabla_zona_barrio)

chi_res_zona_barrio <- data.frame(
  Comparacion = "Zona vs Barrio (reducido)",
  Chi_cuadrado = round(unname(test_zona_barrio$statistic), 3),
  gl = unname(test_zona_barrio$parameter),
  p_value = format.pval(test_zona_barrio$p.value, digits = 3, eps = 0.001)
)

knitr::kable(chi_res_zona_barrio)
Comparacion Chi_cuadrado gl p_value
Zona vs Barrio (reducido) 4662.871 80 <0.001

5.1.3 Tipo vs Barrio (reducido)

El contraste (χ² = 414.602; gl = 20; p < 0.001) evidencia que el tipo de vivienda también está asociado al barrio. Esto sugiere que ciertos barrios presentan especialización relativa en apartamentos o en casas, lo que puede responder a factores como normativas urbanísticas, densidad permitida, nivel socioeconómico o historia de desarrollo del sector.

En términos prácticos, este resultado indica que el perfil constructivo no se distribuye uniformemente dentro de la ciudad, sino que existe segmentación microterritorial en la configuración del parque inmobiliario.

Tabla 17. Comparacion Tipo vs Barrio

tabla_tipo_barrio <- table(vivienda_ca$tipo, vivienda_ca$barrio_reducido)

test_tipo_barrio <- chisq.test(tabla_tipo_barrio)

chi_res_tipo_barrio <- data.frame(
  Comparacion = "Tipo vs Barrio (reducido)",
  Chi_cuadrado = round(unname(test_tipo_barrio$statistic), 3),
  gl = unname(test_tipo_barrio$parameter),
  p_value = format.pval(test_tipo_barrio$p.value, digits = 3, eps = 0.001)
)

knitr::kable(chi_res_tipo_barrio)
Comparacion Chi_cuadrado gl p_value
Tipo vs Barrio (reducido) 414.602 20 <0.001

5.1.4 Resumen

La tabla consolidada confirma que las tres relaciones evaluadas presentan asociación estadísticamente significativa (p < 0.001 en todos los casos). Sin embargo, la magnitud del estadístico varía sustancialmente: la relación más fuerte corresponde a Zona vs Barrio, seguida por Tipo vs Barrio y, finalmente, Zona vs Tipo.

Esto sugiere que la estructura espacial (zona–barrio) constituye el eje organizador principal del mercado inmobiliario, mientras que el tipo de vivienda actúa como una dimensión complementaria dentro de esa organización territorial. En conjunto, los resultados respaldan la pertinencia del Análisis de Correspondencia Múltiple (MCA), ya que existe dependencia estructural entre las variables categóricas analizadas.

Tabla 18. Resumen Comparativas de Chi- Cuadrado

chi_resumen <- rbind(
  chi_res_zona_tipo,
  chi_res_zona_barrio,
  chi_res_tipo_barrio
)

knitr::kable(chi_resumen)
Comparacion Chi_cuadrado gl p_value
Zona vs Tipo 336.844 4 <0.001
Zona vs Barrio (reducido) 4662.871 80 <0.001
Tipo vs Barrio (reducido) 414.602 20 <0.001
library(FactoMineR)
library(factoextra)

datos_mca <- vivienda_ca %>% select(zona, tipo, barrio_reducido)

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

5.2 Varianza explicada y scree plot (igual que el ejemplo)

El scree plot muestra que la primera dimensión (Dim1) explica aproximadamente el 7,5% de la inercia total, seguida por la segunda dimensión (6,8%) y la tercera (5,7%). A partir de la cuarta dimensión (≈4,3%), la contribución marginal comienza a estabilizarse alrededor del 4%. Esta caída progresiva indica que no existe una única dimensión dominante, como ocurre en el PCA con variables numéricas, sino que la información categórica se encuentra distribuida en varios ejes.

En el contexto del MCA, este comportamiento es esperado debido a la alta cardinalidad de la variable barrio. Por tanto, la interpretación debe centrarse principalmente en las dos o tres primeras dimensiones, que concentran las asociaciones más estructurales entre zona, tipo y barrio reducido.

Figura 13. Porcentaje de varianza explicado (MCA)

fviz_screeplot(res.mca, addlabels = TRUE) +
  ggtitle("") +
  ylab("Porcentaje de varianza explicado") +
  xlab("Dimensiones")

La tabla confirma que las dos primeras dimensiones acumulan aproximadamente 14,3% de la inercia total, mientras que las tres primeras alcanzan cerca del 20%. Aunque estos porcentajes pueden parecer bajos en comparación con técnicas como PCA, en análisis de correspondencia múltiple es habitual que la varianza se distribuya en múltiples dimensiones debido a la naturaleza categórica de los datos.

A medida que se incorporan más dimensiones, la varianza acumulada aumenta gradualmente hasta alcanzar el 100% en la última dimensión (Dim25). Sin embargo, desde una perspectiva práctica y de interpretación gerencial, las primeras dos dimensiones suelen ser suficientes para identificar los patrones más relevantes de asociación entre categorías.

En conjunto, el gráfico y la tabla indican que la estructura de asociación entre zona, tipo de vivienda y barrio no se concentra en un único eje, sino que responde a múltiples relaciones parciales. Por ello, el análisis factorial debe enfocarse en interpretar las proximidades y oposiciones observadas en el plano principal (Dim1–Dim2), donde se capturan las configuraciones más significativas del mercado inmobiliario urbano.

Tabla 18. Valores propios y varianza acumulada (MCA)

eig_mca <- data.frame(
  Dimension = paste0("Dim", seq_len(nrow(res.mca$eig))),
  Varianza = round(res.mca$eig[,2], 2),
  Varianza_Acumulada = round(res.mca$eig[,3], 2)
)

knitr::kable(eig_mca, row.names = FALSE)
Dimension Varianza Varianza_Acumulada
Dim1 7.47 7.47
Dim2 6.83 14.30
Dim3 5.65 19.95
Dim4 4.34 24.29
Dim5 4.00 28.29
Dim6 4.00 32.29
Dim7 4.00 36.29
Dim8 4.00 40.29
Dim9 4.00 44.29
Dim10 4.00 48.29
Dim11 4.00 52.29
Dim12 4.00 56.29
Dim13 4.00 60.29
Dim14 4.00 64.29
Dim15 4.00 68.29
Dim16 4.00 72.29
Dim17 4.00 76.29
Dim18 4.00 80.29
Dim19 4.00 84.29
Dim20 4.00 88.29
Dim21 4.00 92.29
Dim22 2.97 95.27
Dim23 2.65 97.92
Dim24 1.19 99.10
Dim25 0.90 100.00

5.3 Mapa factorial (categorías) para interpretar patrones de oferta

El mapa factorial constituye la síntesis interpretativa más relevante del Análisis de Correspondencia Múltiple, ya que permite visualizar simultáneamente la relación entre las categorías de zona, tipo de vivienda y barrio (reducido) en el plano definido por las dos primeras dimensiones (Dim1 = 7,5% y Dim2 = 6,8%). La proximidad entre categorías indica asociación, mientras que la lejanía o direcciones opuestas sugieren diferenciación estructural en el mercado.

En el extremo derecho del eje Dim1 se observa una clara agrupación de Zona Oeste junto con barrios como normandía, aguacatal, los cristales, santa teresita y cristales. Esta configuración indica que estos barrios presentan un patrón de oferta característico y diferenciado dentro de la ciudad, asociado principalmente a dicha zona. La cercanía entre estas categorías sugiere coherencia territorial y segmentación espacial definida.

Figura 14. Mapa factorial del MCA (Zona – Tipo – Barrio)

fviz_mca_var( 
  res.mca, 
  repel = TRUE, 
  select.var = list(contrib = 20), 
  col.var = "contrib", 
  gradient.cols = c("#FF7F00", "#034D94") )

En contraste, en el cuadrante inferior izquierdo se agrupan Zona Sur y barrios como ciudad jardín, pance, valle del lili y el ingenio, lo cual evidencia otro polo estructural del mercado. Este clúster territorial refleja un segmento con identidad propia dentro de la oferta inmobiliaria, distinto al observado en la Zona Oeste. La separación espacial entre ambos conjuntos confirma que la localización es un determinante clave en la diferenciación del mercado.

Por su parte, Zona Norte aparece en el cuadrante superior izquierdo, asociada a barrios como la flora, urbanización la flora, prados del norte y acopi. Esta configuración indica un tercer patrón territorial relevante, reforzando la idea de que el mercado inmobiliario urbano se organiza en núcleos geográficos bien definidos.

En cuanto al tipo de vivienda, la categoría Apartamento se ubica relativamente cercana al centro pero con ligera orientación hacia el eje positivo de Dim1, mientras que Casa se posiciona hacia el lado izquierdo. Esto sugiere que la tipología también introduce diferenciación estructural, aunque menos marcada que la variable zona. La categoría Otros aparece próxima al origen, lo que indica menor poder discriminante dentro de la estructura factorial.

En términos estratégicos, el mapa factorial confirma que la estructura territorial (zona–barrio) es el principal eje organizador del mercado inmobiliario, mientras que el tipo de vivienda actúa como un factor complementario. La clara separación entre bloques geográficos evidencia que la oferta no es homogénea, sino que se encuentra segmentada en submercados con dinámicas propias. Esta información resulta clave para la toma de decisiones, ya que permite identificar focos territoriales diferenciados para estrategias de inversión, comercialización y posicionamiento competitivo.

6 Visualizacion de Resultados

El análisis integrado (PCA + Clustering + Correspondencia) permite estructurar el mercado inmobiliario urbano en cuatro segmentos claramente diferenciados, con implicaciones directas en diferenciación comercial, enfoque de inversión y asignación estratégica de recursos.

Figura 15. Clusters

fviz_cluster(
  k4,
  data = vars_pcaZ,
  geom = "point",
  ellipse.type = "convex",
  palette = c("#034A94", "#FF7F00", "#4CAF50", "#9C27B0","#da0909")
)

Los resultados evidencian que el mercado no debe abordarse como un bloque homogéneo, sino mediante estrategias segmentadas:

Segmento Premium (Cluster 2) Requiere estrategia de posicionamiento de alto valor, marketing experiencial y canales comerciales especializados. El foco debe estar en atributos diferenciales: ubicación, exclusividad, acabados y equipamiento. → Estrategia: venta consultiva y segmentación por poder adquisitivo alto.

Segmento Familiar Amplio (Cluster 1) Se orienta a hogares consolidados que priorizan espacio interno. → Estrategia: comunicación centrada en amplitud, funcionalidad y calidad de vida.

Segmento Económico (Cluster 3) Mercado sensible a precio, con menor equipamiento promedio. → Estrategia: eficiencia operativa, rotación alta y financiación accesible.

Segmento Medio Compacto (Cluster 4) Viviendas más pequeñas en zonas relativamente valorizadas. → Estrategia: inversión en ubicación y valorización futura.

Tabla 19. Perfiles Promedio de Conglomerados

vivienda_cluster <- vivienda
vivienda_cluster$cluster <- k4$cluster

perfil_cluster <- aggregate(
  vivienda_cluster[, c("preciom","areaconst","estrato",
                       "banios","habitaciones","parqueaderos")],
  by = list(Cluster = vivienda_cluster$cluster),
  function(x) mean(x, na.rm = TRUE)
)

knitr::kable(round(perfil_cluster,2))
Cluster preciom areaconst estrato banios habitaciones parqueaderos
1 459.82 299.84 4.07 4.42 6.24 1.81
2 1011.65 354.65 5.76 4.86 4.10 3.37
3 225.39 102.18 3.80 2.09 3.02 1.27
4 328.60 115.77 4.79 2.66 3.03 1.47

El mapa factorial revela patrones territoriales y tipológicos claramente diferenciados:

Figura 16. Mapa Factorial (Zona - Tipo - Barrio)

fviz_mca_var(
  res.mca,
  repel = TRUE,
  select.var = list(contrib = 20),
  col.var = "contrib",
  gradient.cols = c("#FF7F00", "#034D94")
)

  1. Zona Oeste: segmento de alto posicionamiento

La Zona Oeste aparece claramente separada hacia el extremo positivo de la Dimensión 1, asociada con barrios como:

Los Cristales, Normandía. Aguacatal y Santa Teresita-

Esta agrupación confirma que la Zona Oeste constituye un polo diferenciado del mercado, con identidad territorial propia y comportamiento homogéneo. Es un segmento consolidado y con características distintivas dentro de la ciudad.

  1. Zona Sur: concentración de barrios residenciales consolidados

En el cuadrante inferior izquierdo se agrupan:

Ciudad Jardín, Valle del Lili, Pance y El Ingenio.

Estos barrios se asocian fuertemente con la Zona Sur, evidenciando coherencia territorial en la oferta. Este sector muestra una identidad residencial consolidada, con alta concentración de proyectos similares en características y perfil socioeconómico.

  1. Zona Norte: agrupación diferenciada

En la parte superior izquierda se identifica la Zona Norte, asociada a:

La Flora, Urbanización La Flora, Prados del Norte y Acopi.

Esto indica que la Zona Norte también posee una estructura interna relativamente homogénea y diferenciada frente a otras zonas.

  1. Tipo de vivienda

El tipo Apartamento se ubica cercano al centro, lo que indica alta presencia transversal en múltiples zonas. La categoría Casa aparece desplazada hacia el lado izquierdo, mostrando mayor asociación con sectores específicos (principalmente Sur y Oriente).

Esto sugiere que el tipo de vivienda no es exclusivamente territorial, pero sí presenta tendencias espaciales.

Figura 17. Heatmap Tipo vs Zona

tabla_zona_tipo_df <- as.data.frame(tabla_zona_tipo)

ggplot(tabla_zona_tipo_df,
       aes(Var1, Var2, fill = Freq)) +
  geom_tile() +
  geom_text(aes(label = Freq), color = "white") +
  scale_fill_gradient(low = "#FF7F00", high = "#034D94") +
  theme_minimal() +
  labs(x = "Zona", y = "Tipo", fill = "Frecuencia")

El mapa de calor evidencia una fuerte concentración de la oferta en la Zona Sur, tanto para apartamentos (1.344) como para casas (929), consolidándose como el principal núcleo inmobiliario de la ciudad. Esto confirma que el Sur no solo concentra volumen, sino también diversidad tipológica, lo que lo convierte en el mercado más dinámico y competitivo.

En la Zona Norte y Zona Oeste se observa una clara predominancia de apartamentos frente a casas, lo que sugiere mayor desarrollo vertical y proyectos multifamiliares en estos sectores. En contraste, la Zona Oriente presenta una mayor proporción relativa de casas frente a apartamentos, indicando un perfil más residencial tradicional y posiblemente menor densificación vertical.

La Zona Centro muestra volúmenes significativamente menores en ambas tipologías, lo que podría interpretarse como un mercado más reducido o menos dinámico en términos de oferta actual.

Desde la perspectiva estratégica, este patrón confirma que la tipología de vivienda no se distribuye de manera homogénea en la ciudad, sino que responde a dinámicas territoriales diferenciadas, lo cual es clave para segmentar portafolios comerciales y estrategias de desarrollo.

Figura 18. Participacion (%) de Zonas

vivienda %>%
  filter(!is.na(zona)) %>%
  count(zona) %>%
  mutate(prop = 100 * n / sum(n)) %>%
  ggplot(aes(x = reorder(zona, prop), y = prop)) +
  geom_col(fill = "#034D94") +
  coord_flip() +
  theme_minimal() +
  labs(x = "Zona", y = "Participación (%)")

El gráfico de participación evidencia una concentración altamente asimétrica del mercado inmobiliario urbano. La Zona Sur concentra más de la mitad de la oferta total, consolidándose como el principal eje de actividad inmobiliaria de la ciudad. Este nivel de participación sugiere alta densidad de proyectos, mayor dinamismo comercial y probablemente mayor competencia entre desarrolladores.

La Zona Norte y la Zona Oeste ocupan un segundo nivel de relevancia, aunque con una brecha considerable frente al Sur. Estas zonas representan mercados consolidados pero de menor escala relativa. En contraste, Zona Oriente y Zona Centro presentan participaciones marginales, lo que indica menor desarrollo inmobiliario o menor rotación de inventario.

Desde una perspectiva estratégica, la estructura del mercado muestra una fuerte dependencia territorial del Sur. Esto implica que cualquier decisión comercial, de inversión o expansión debe considerar esta concentración como un factor crítico de riesgo y oportunidad.

Figura 19. Relaciones Variables PCA

fviz_pca_var(
  res.pca,
  col.var = "contrib",
  gradient.cols = c("#FF7F00", "#034D94"),
  repel = TRUE
)

El círculo de correlaciones del PCA revela la arquitectura interna del mercado inmobiliario. El primer componente principal (Dim1), que explica el 44,1% de la variabilidad total, está claramente dominado por preciom, areaconst, banios y parqueaderos, cuyas flechas presentan direcciones similares y alta contribución. Esto confirma que la dimensión estructural dominante del mercado está asociada al tamaño, equipamiento y nivel de precio del inmueble.

El estrato también se alinea en esta dimensión, aunque con una orientación ligeramente diferenciada, lo que indica que el nivel socioeconómico forma parte del eje de valor, pero no es exclusivamente explicativo del precio; más bien actúa como variable estructural complementaria.

El segundo componente (Dim2), que explica el 18,6%, está principalmente influenciado por habitaciones y las variables geográficas (latitud y longitud). Esto sugiere que la segunda dimensión captura una combinación entre configuración interna del inmueble y localización espacial, diferenciando propiedades no solo por su valor económico sino por su estructura y ubicación territorial.

7 Conclusiones

El análisis integral del mercado inmobiliario urbano confirma la existencia de una estructura claramente segmentada tanto desde la perspectiva territorial como socioeconómica. La Zona Sur concentra la mayor proporción de la oferta y actúa como eje principal del mercado, mientras que las zonas Norte y Oeste representan segmentos consolidados con características diferenciadas. Las zonas Centro y Oriente muestran menor participación, lo que sugiere dinámicas más específicas o nichos particulares dentro del mercado.

El Análisis de Componentes Principales evidencia que la variabilidad del mercado está dominada por una dimensión estructural asociada al tamaño, nivel de equipamiento y precio del inmueble. Variables como área construida, número de baños, parqueaderos y precio conforman el eje principal de diferenciación. Una segunda dimensión recoge elementos espaciales y de configuración interna, lo que confirma que la valoración del inmueble responde a una combinación multivariada de atributos físicos y localización.

La segmentación mediante conglomerados permitió identificar perfiles claramente diferenciados: un segmento premium de alto valor y alto estrato, un segmento medio consolidado con equilibrio entre precio y tamaño, y segmentos de menor nivel estructural y económico. Esta clasificación aporta una base objetiva para diseñar estrategias comerciales diferenciadas, optimizar el portafolio de productos y orientar decisiones de inversión.

Las pruebas de asociación y el análisis de correspondencia múltiple demostraron relaciones estadísticamente significativas entre zona, tipo de vivienda y barrio, evidenciando patrones territoriales definidos. Determinados barrios se asocian fuertemente a zonas específicas y a tipologías particulares de vivienda, lo que confirma que la oferta inmobiliaria no se distribuye de manera aleatoria sino estructurada.

En términos estratégicos, el estudio proporciona ventajas competitivas claras: permite focalizar inversión en zonas de mayor concentración y dinamismo, diseñar productos alineados con los segmentos identificados y estructurar estrategias de diferenciación basadas en evidencia estadística. En conjunto, el análisis reduce la incertidumbre en la toma de decisiones y fortalece la capacidad de la empresa para competir en un entorno inmobiliario altamente dinámico y segmentado.