Una empresa inmobiliaria líder en Cali, Colombia busca obtener una ventaja competitiva mediante la explotación de un extenso conjunto de datos de propiedades residenciales. Este informe presenta un análisis multidimensional del mercado de viviendas de esta ciudad, utilizando datos de propiedades residenciales. El objetivo es proporcionar a la empresa inmobiliaria una comprensión profunda de la dinámica del mercado para informar decisiones estratégicas en compra, venta y valoración de propiedades. El reto consiste en realizar un análisis multidimensional que transforme estos datos brutos en inteligencia de mercado accionable, permitiendo una comprensión profunda de la estructura y dinámica del mercado inmobiliario urbano.
El objetivo general es desarrollar un modelo cuantitativo del mercado que permita:
Identificar los factores latentes que realmente determinan el valor y la variabilidad de las propiedades.
Segmentar el mercado en nichos homogéneos para personalizar estrategias de marketing y valoración.
Mapear las relaciones entre la ubicación, el tipo de inmueble y el estrato para descubrir patrones de oferta y demanda.
Generar recomendaciones estratégicas basadas en evidencia empírica para optimizar la inversión y maximizar la rentabilidad.
Para abordar este reto, se implementará un pipeline de análisis estadístico en tres fases secuenciales:
Fase 1: Análisis de Componentes Principales (ACP)
Propósito: Reducir la alta dimensionalidad del conjunto de datos para identificar los atributos fundamentales de variación en el mercado.
Resultado esperado: Una cuantificación de los factores clave que influyen en la oferta y el valor, y una base de datos reducida y optimizada para la siguiente fase de análisis.
Fase 2: Análisis de Clústeres (Clustering)
Propósito: Utilizar los componentes principales para agrupar las propiedades en segmentos de mercado distintos y homogéneos.
Resultado Esperado : Una segmentación del inventario inmobiliario.
Fase 3: Análisis de Correspondencias (AC)
Propósito: Investigar y visualizar la asociación intrínseca entre las variables categóricas más importantes.
Resultado esperado : Un mapa visual que revele patrones de comportamiento del mercado. Por ejemplo, se podrá confirmar visualmente qué “arquetipos” de vivienda (clústeres) son dominantes en ciertas zonas o si existe una asociación fuerte entre un tipo de inmueble y un barrio específico.
Cargamos el conjunto de datos vivienda y realizamos una
inspección inicial de los datos
data("vivienda")
df_vivienda <- vivienda
glimpse(df_vivienda)
## Rows: 8,322
## Columns: 13
## $ id <dbl> 1147, 1169, 1350, 5992, 1212, 1724, 2326, 4386, 1209, 159…
## $ zona <chr> "Zona Oriente", "Zona Oriente", "Zona Oriente", "Zona Sur…
## $ piso <chr> NA, NA, NA, "02", "01", "01", "01", "01", "02", "02", "02…
## $ estrato <dbl> 3, 3, 3, 4, 5, 5, 4, 5, 5, 5, 6, 4, 5, 6, 4, 5, 5, 4, 5, …
## $ preciom <dbl> 250, 320, 350, 400, 260, 240, 220, 310, 320, 780, 750, 62…
## $ areaconst <dbl> 70, 120, 220, 280, 90, 87, 52, 137, 150, 380, 445, 355, 2…
## $ parqueaderos <dbl> 1, 1, 2, 3, 1, 1, 2, 2, 2, 2, NA, 3, 2, 2, 1, 4, 2, 2, 2,…
## $ banios <dbl> 3, 2, 2, 5, 2, 3, 2, 3, 4, 3, 7, 5, 6, 2, 4, 4, 4, 3, 2, …
## $ habitaciones <dbl> 6, 3, 4, 3, 3, 3, 3, 4, 6, 3, 6, 5, 6, 2, 5, 5, 4, 3, 3, …
## $ tipo <chr> "Casa", "Casa", "Casa", "Casa", "Apartamento", "Apartamen…
## $ barrio <chr> "20 de julio", "20 de julio", "20 de julio", "3 de julio"…
## $ longitud <dbl> -76.51168, -76.51237, -76.51537, -76.54000, -76.51350, -7…
## $ latitud <dbl> 3.43382, 3.43369, 3.43566, 3.43500, 3.45891, 3.36971, 3.4…
datatable(head(df_vivienda, 50),
options = list(pageLength = 5, scrollX = TRUE),
caption = "Tabla 1: Primeros 50 registros del conjunto de datos.")
A continuación, se define cada una de las variables utilizadas en este estudio para el análisis del mercado inmobiliario.
## 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
## Min. : 0.000
## 1st Qu.: 3.000
## Median : 3.000
## Mean : 3.605
## 3rd Qu.: 4.000
## Max. :10.000
## NA's :3
La tabla de resumen indica que el precio promedio (preciom) es de 433 y el área promedio (areaconst) es de 174.9 m². Las propiedades suelen tener una media de 3 baños y 3-4 habitaciones. Es notable la gran cantidad de datos faltantes para la variable de parqueaderos (1605).
Los histogramas muestran que el Precio (preciom) y el Área(areconst)tienen un fuerte sesgo a la derecha. La mayoría de las propiedades se concentran en precios y áreas bajas a moderadas, con unas pocas propiedades muy caras y grandes que elevan el promedio.
Baños, Habitaciones y Parqueaderos: Son distribuciones de datos discretos. Se observan picos claros en los valores más comunes, como 3 habitaciones, 2 y 3 baños, y 1 o 2 parqueaderos.
En este caso todas las relaciones son positivas, lo que significa que cuando una variable aumente, las demás tienden a umentar tambien. Las correlaciones fuertes estan perciom, con el numero de parqueadores (0.69), el área construida(0.68) y el número de baños (0.67)
Por otra parte la correlaciones mas devil es el del numero de habitaciones con el precio (0.27) y con los parqueadores (0.28)
Inicialmente se podria sospechar que los principales impulsores del precio de una vivienda no son el numero de habitaciones, sino las caracteristicas que reflejan tamaño y comodidad, como son el área construida, el número de parqueaderos y el número de baños
Adicionalmente se observa una intercorrelación entre las variables (multicolinealidad) que justifica la estrategia de usar un Análisis de Componente Principales (ACP).
Ahora exploramos las variables cualitativas (zona,
tipo, estrato) para ver la composición de la
oferta inmobiliaria.
El análisis de la ubicación de las propiedades revela una concentración
desigual en la ciudad:
Zona Sur: Es la que presenta, por un amplio margen, la mayor cantidad de propiedades en la oferta, superando las 4,000 viviendas.
Zona Norte: Ocupa el segundo lugar con aproximadamente 2,000 propiedades.
Zonas Oeste, Oriente y Centro: Tienen una representación considerablemente menor en el conjunto de datos.
Al analizar la composición del mercado según el tipo de inmueble, se observa una clara dominancia de apartamentos sobre Casa
La oferta analizada corresponde mayoritariamente a viviendas de estratos 4, 5 y 6.
Cruzamos variables numéricas y categóricas para obtener insights más profundos.
df_vivienda %>%
filter(preciom < 2500 & areaconst < 1000) %>%
ggplot(aes(x = areaconst, y = preciom, color = as.factor(estrato))) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", se = FALSE, color = "black", linetype = "dashed") +
scale_color_viridis_d() +
labs(title = "Relación entre Área Construida y Precio",
subtitle = "Coloreado por Estrato Socioeconómico",
x = "Área Construida (m²)", y = "Precio (Millones COP)") +
theme_minimal()
Finalmente, ubicamos las propiedades en un mapa para visualizar su distribución geográfica.
leaflet(data = head(df_vivienda, 1000)) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitud,
lat = ~latitud,
radius = 3,
color = "red",
popup = ~paste("<b>Precio:</b>", preciom, "M<br>",
"<b>Área:</b>", areaconst, "m²<br>",
"<b>Tipo:</b>", tipo, "<br>",
"<b>Barrio:</b>", barrio)
)
Calculamos y visualizamos el porcentaje de datos faltantes para cada variable.
| Variable | Cantidad Faltante | Porcentaje Faltante (%) |
|---|---|---|
| piso | 2638 | 31.70 |
| parqueaderos | 1605 | 19.29 |
| id | 3 | 0.04 |
| zona | 3 | 0.04 |
| estrato | 3 | 0.04 |
| areaconst | 3 | 0.04 |
| banios | 3 | 0.04 |
| habitaciones | 3 | 0.04 |
| tipo | 3 | 0.04 |
| barrio | 3 | 0.04 |
| longitud | 3 | 0.04 |
| latitud | 3 | 0.04 |
| preciom | 2 | 0.02 |
El conjunto de datos se encuentra en su mayoria complenta, solo existe
un 4% de datos faltantes del conjunto total, sin embargo se observa de
manera critica en dos variables. La variable piso (Numero de piso del
inmueble) presenta 2,638 datos faltantes, lo que representa un 31.70% de
las observaciones. La variable “parqueaderos”( numero de parquederos del
inmueble) tiene 1,605 valores falantes representando un 19.29 % del
dataset. Se observa tambien que los datos faltantes no son aleatorios si
no que se concentran en un boque especifico de datos, lo que podria
indicar un problema en la recoleccion de datos o que estas
caracteristicas no se encuentra disponible para un un tipo de propiedad
o periodo de tiempo de la publicación
## 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
## Min. : 0.000
## 1st Qu.: 3.000
## Median : 3.000
## Mean : 3.605
## 3rd Qu.: 4.000
## Max. :10.000
## NA's :3
Los diagramas de caja confirman la presencia de numerosos valores atípicos en los extremos superiores de las variables, especialmente en preciom y areaconst. Lejos de ser errores, este comportamiento es una característica inherente y esperada del mercado inmobiliario, ya que refleja fielmente la existencia de un segmento de propiedades de lujo, cuyas características se desvían significativamente del grueso del mercado.
Esta distribución justifica por qué la mediana es a menudo una mejor medida de tendencia central que la media (promedio) para describir el precio o el área “típicos” del mercado, ya que el promedio se ve muy afectado por estos valores extremos.
Para manejar los datos faltantes, se adoptó una estrategia que busca maximizar la integridad de los datos minimizando la pérdida de información. El proceso se realizó en dos pasos:
Eliminación de Registros: Para las variables con un porcentaje muy bajo de observaciones faltantes, se optó por eliminar los registros completos que contenían dichos valores nulos. Esta es una aproximación directa y segura cuando el número de filas a eliminar es insignificante y no introduce sesgos en el conjunto de datos.
Imputación mediante k-Nearest Neighbors (k-NN): Para las variables con un número mayor de datos faltantes, como parqueadero y piso, donde la eliminación masiva de registros no es viable, se utilizó un método de imputación. Se eligió el algoritmo k-Nearest Neighbors (k-NN).
vivienda_pre_imputacion <- df_vivienda %>%
filter(
!is.na(banios) &
!is.na(habitaciones) &
!is.na(estrato)
) %>%
mutate(
zona = as.factor(zona),#convertir variables categoricas a factores
tipo = as.factor(tipo),
estrato = as.factor(estrato),
estrato_num = as.numeric(as.character(estrato))
)
cat("Registros después de eliminar los registros de las variables no criticas en lavalores nulos:", nrow(vivienda_pre_imputacion), "\n")
## Registros después de eliminar los registros de las variables no criticas en lavalores nulos: 8319
cat("Datos faltantes en 'parqueaderos' ANTES de imputar:", sum(is.na(vivienda_pre_imputacion$parqueaderos)), "\n")
## Datos faltantes en 'parqueaderos' ANTES de imputar: 1602
cat("Datos faltantes en 'piso' ANTES de imputar:", sum(is.na(vivienda_pre_imputacion$piso)), "\n")
## Datos faltantes en 'piso' ANTES de imputar: 2635
set.seed(123)
vars_for_imputation <- c("preciom", "areaconst", "banios", "habitaciones", "parqueaderos","banios")
vivienda_imputada_df <- kNN(vivienda_pre_imputacion,
variable = c("parqueaderos", "banios"),
metric = "Euclidean",
k = 90,
dist_var = vars_for_imputation)
vivienda_clean <- vivienda_imputada_df %>%
select(id:latitud, estrato_num)
cat("Datos faltantes en 'parqueaderos' DESPUÉS:", sum(is.na(vivienda_clean$parqueaderos)), "\n")
## Datos faltantes en 'parqueaderos' DESPUÉS: 0
cat("Datos faltantes en 'baños' DESPUÉS:", sum(is.na(vivienda_clean$banios)), "\n")
## Datos faltantes en 'baños' DESPUÉS: 0
cat("Número de registros originales:", nrow(df_vivienda), "\n")
## Número de registros originales: 8322
cat("Número de registros después de la limpieza:", nrow(vivienda_clean))
## Número de registros después de la limpieza: 8319
Seleccionamos las variables numéricas clave y las escalamos para que
tengan media 0 y desviación estándar 1. Esto es fundamental para que
variables con escalas muy diferentes (como preciom y
banios) contribuyan de forma equitativa.
vivienda_pca_data <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones)
res.pca <- PCA(vivienda_pca_data, graph = FALSE, scale.unit = TRUE)
summary(res.pca)
##
## Call:
## PCA(X = vivienda_pca_data, scale.unit = TRUE, graph = FALSE)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Variance 3.251 0.874 0.359 0.323 0.192
## % of var. 65.024 17.487 7.186 6.457 3.845
## Cumulative % of var. 65.024 82.512 89.698 96.155 100.000
##
## Individuals (the 10 first)
## Dist Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3
## 1 | 2.007 | -0.392 0.001 0.038 | 1.776 0.043 0.783 | 0.517
## 2 | 1.234 | -1.173 0.005 0.903 | -0.047 0.000 0.001 | -0.327
## 3 | 0.951 | -0.142 0.000 0.022 | 0.092 0.000 0.009 | -0.364
## 4 | 1.972 | 1.326 0.007 0.452 | -0.534 0.004 0.073 | 0.440
## 5 | 1.374 | -1.359 0.007 0.978 | 0.018 0.000 0.000 | -0.139
## 6 | 1.176 | -1.059 0.004 0.812 | 0.161 0.000 0.019 | 0.156
## 7 | 1.415 | -1.127 0.005 0.635 | -0.340 0.002 0.058 | 0.513
## 8 | 0.595 | -0.139 0.000 0.054 | 0.237 0.001 0.159 | 0.376
## 9 | 1.814 | 0.731 0.002 0.162 | 1.436 0.028 0.626 | 0.753
## 10 | 1.846 | 1.112 0.005 0.363 | -0.813 0.009 0.194 | -1.227
## ctr cos2
## 1 0.009 0.066 |
## 2 0.004 0.070 |
## 3 0.004 0.146 |
## 4 0.006 0.050 |
## 5 0.001 0.010 |
## 6 0.001 0.018 |
## 7 0.009 0.132 |
## 8 0.005 0.399 |
## 9 0.019 0.172 |
## 10 0.050 0.442 |
##
## Variables
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr
## preciom | 0.849 22.167 0.721 | -0.376 16.175 0.141 | -0.079 1.721
## areaconst | 0.863 22.920 0.745 | 0.038 0.163 0.001 | -0.467 60.729
## parqueaderos | 0.798 19.602 0.637 | -0.394 17.760 0.155 | 0.274 20.842
## banios | 0.872 23.375 0.760 | 0.159 2.907 0.025 | 0.232 14.953
## habitaciones | 0.623 11.936 0.388 | 0.742 62.995 0.551 | 0.079 1.754
## cos2
## preciom 0.006 |
## areaconst 0.218 |
## parqueaderos 0.075 |
## banios 0.054 |
## habitaciones 0.006 |
PC2 : PC2 es ortogonal a PC1 y captura la siguiente mayor fuente de varianza no correlacionada con el valor general. Representa una dimensión de contraste. Separa las observaciones con un alto número de habitaciones (y en menor medida parqueaderos) de aquellas con un alto preciom y areaconst. Estadísticamente, revela una relación inversa entre la densidad de habitaciones y el precio por metro cuadrado.
Selección de Componentes:
Dim. 1 (PC1): λ1 =3.251. Explica un 65.02% de la inercia total.
Dim. 2 (PC2): λ2 =0.874. Explica un 17.49% de la inercia total.
Visualizamos la importancia de cada componente (cuánta varianza explican) y la contribución de las variables a estos.
fviz_eig(res.pca, addlabels = TRUE, ylim = c(0, 70))
fviz_pca_var(res.pca, col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
pca_ind_coords <- res.pca$ind$coord[, 1:2]
fviz_nbclust(pca_ind_coords, kmeans, method = "silhouette")
El gráfico sugiere que 2 o 4 clústeres son las opciones óptimas. Para obtener una segmentación más detallada y útil para el negocio, elegiremos k=4
Realizamos el clustering con k=4 y añadimos la asignación de clúster al conjunto de datos.
cluster_summary <- vivienda_clustered %>%
group_by(cluster) %>%
summarise(
precio_promedio = mean(preciom),
area_promedio = mean(areaconst),
banios_promedio = mean(banios),
habitaciones_promedio = mean(habitaciones),
parqueaderos_promedio = mean(parqueaderos),
estrato_promedio = mean(estrato_num),
n_propiedades = n()
) %>%
arrange(precio_promedio)
# Mostrar tabla de resumen
kable(cluster_summary, caption = "Perfil Promedio por Clúster", digits = 2)
| cluster | precio_promedio | area_promedio | banios_promedio | habitaciones_promedio | parqueaderos_promedio | estrato_promedio | n_propiedades |
|---|---|---|---|---|---|---|---|
| 1 | 227.79 | 88.44 | 2.08 | 2.86 | 1.13 | 4.20 | 4203 |
| 3 | 464.10 | 310.80 | 4.72 | 6.82 | 1.72 | 4.05 | 755 |
| 2 | 524.41 | 194.10 | 3.64 | 3.61 | 2.01 | 5.17 | 2500 |
| 4 | 1150.79 | 422.38 | 5.20 | 4.41 | 3.91 | 5.69 | 861 |
Clúster 1: El Mercado de Entrada
Propiedades de menor precio y área. Son las más económicas y pequeñas del mercado. Con un precio promedio de 228 millones, 88 m² y menos de 3 habitaciones, este clúster representa el segmento de entrada y el más numeroso (4,203 propiedades). Corresponde a la vivienda estándar en la ciudad para personas solas, parejas jóvenes o familias pequeñas, usualmente en estrato 4.
Clúster 2: Residencial de Alta Gama
Este segmento agrupa las propiedades de alto valor en zonas urbanas consolidadas. Con un precio promedio de 524 millones y un estrato promedio de 5. Aunque no son las más grandes en área (194 m²). Es el segundo segmento más grande y representa el mercado de apartamentos familiares y ejecutivos en los mejores barrios de la ciudad.
Clúster 3: El Espacio Suburbano
Viviendas de gama media-alta enfocadas en el espacio. A un precio promedio similar al clúster anterior (464 millones), estas propiedades ofrecen un área y número de habitaciones drásticamente mayores (310 m² y casi 7 habitaciones). Sin embargo, se ubican en un estrato promedio inferior 4. Este es el perfil clásico de las casas en condominios suburbanos o zonas campestres.
Clúster 4: El Lujo Exclusivo
Este es el segmento más exclusivo y de mayor poder adquisitivo del mercado. Con un precio promedio que supera los 1,150 millones, las áreas más grandes (422 m²), el mayor número de baños y parqueaderos, y el estrato más alto (5.69), es un nicho más pequeño, con 861 propiedades analizadas.
A continuacion se muestra los cluster en un mapa para revisar si hay una relacion espacial de los cluster.
# Crear paleta de colores para el mapa
pal <- colorFactor(viridis_pal(option = "D")(4), domain = vivienda_clustered$cluster)
# Crear mapa interactivo
leaflet(vivienda_clustered) %>%
addTiles() %>%
addCircleMarkers(
~longitud, ~latitud,
color = ~pal(cluster),
radius = 4,
stroke = FALSE,
fillOpacity = 0.7,
popup = ~paste("<b>Precio:</b>", preciom, "M<br>",
"<b>Área:</b>", areaconst, "m²<br>",
"<b>Zona:</b>", zona, "<br>",
"<b>Clúster:</b>", cluster)
) %>%
addLegend("bottomright", pal = pal, values = ~cluster,
title = "Segmento de Vivienda",
opacity = 1)
Al observar el mapa se puede evidenciar los siguientes segementos
Segmento 1 (Morado):
Estos puntos, que representan las viviendas más económicas y pequeñas, se concentran masivamente en el oriente y nororiente de la ciudad. También se observa una presencia en las zonas de ladera de la parte occidental. Esto delimita claramente las áreas de entrada al mercado inmobiliario.
Segmentos 2 y 3 (Verde Azulado y Verde):
Estos segmentos son el grueso del mercado y se ubican en la zona central, norte y sur-central de Cali. No dominan ni las zonas más exclusivas ni las más económicas, representando la oferta de vivienda para la clase media y media-alta, con una mezcla de apartamentos y casas en barrios consolidados.
Segmento 4 (Amarillo):
Este es el patrón más definido y estratégico del mapa. Las propiedades de lujo se concentran de forma abrumadora en una franja que va desde el oeste hacia el sur de la ciudad.
Este análisis nos permite examinar la relación entre las variables
categóricas, en este caso zonay tipo de
vivienda
¿Qué tipo de vivienda (tipo) es más común en cada zona de la ciudad?
## TABLA DE CONTINGENCIA: ZONA vs TIPO DE VIVIENDA
## = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
## tipo
## zona Apartamento Casa
## Zona Centro 24 100
## Zona Norte 1198 722
## Zona Oeste 1029 169
## Zona Oriente 62 289
## Zona Sur 2787 1939
##
## RESULTADOS DEL ANÁLISIS
## = = = = = = = = = = = = = = = = = = = = = = = = =
## Número de dimensiones: 1
## Valor singular: 0.2882
## Inercia total: 0.0831
##
## TEST DE INDEPENDENCIA CHI-CUADRADO
## = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
## Chi-cuadrado = 690.9297
## p-valor = 0
## Grados de libertad = 4
El test de independencia chi-cuadrado revela una asociación estadísticamente significativa entre zona y tipo de vivienda:
Chi-cuadrado = 690.9297 (valor muy alto) p-valor = 0 (prácticamente cero, mucho menor a 0.05) Grados de libertad = 4 Esto significa que NO es casualidad la distribución de tipos de vivienda por zonas; existe un patrón sistemático y significativo.
Zona Centro y Zona Sur (extremo izquierdo): Fuertemente asociadas con CASAS Zona Norte (centro): Posición intermedia, distribución más equilibrada Zona Oeste (derecha): Tendencia hacia APARTAMENTOS
Identificamos 4 Segmentos Estratégicos:
Perfil: Viviendas económicas y compactas Características: Precio promedio $227.79M, área 88.44 m², estrato medio (4.20)
Oportunidad: Segmento más numeroso, ideal para desarrollos de vivienda unifamiliares y primera vivienda
Perfil: Apartamentos familiares premium Características: Precio promedio $524.41M, área 194.10 m², estrato medio-alto (5.17) Oportunidad: Mercado consolidado para familias de ingresos medios-altos
Perfil: Viviendas de gama media-alta con mayor espacio
Características: Precio promedio $464.10M, área 310.80 m², perfil familiar Oportunidad: Nicho especializado para familias que priorizan espacio
Perfil: Propiedades de ultra-lujo
Características: Precio promedio $1,150.79M, área 422.38 m², estratos altos (5.69)
Oportunidad: Mercado de alta rentabilidad pero volumen limitado
Estructura Factorial Identificada: Componente 1 (65% de varianza):
Variables principales: habitaciones, área, precio, parqueaderos Insight: El tamaño y las amenidades son los principales determinantes del valor
Componente 2 (17.5% de varianza):
Diferenciación entre apartamentos vs. casas Insight: El tipo de vivienda genera patrones de demanda diferenciados
Implicaciones Estratégicas:
82.5% de la variabilidad del mercado se explica por estos dos factores La empresa debe enfocar estrategias en tamaño/amenidades y tipología como variables críticas, para la inversion en diferentes sectores de la ciudad
Distribución Territorial Confirmada: ZONA CENTRO-SUR: Predominio de Casas
ZONA OESTE: Concentración de Apartamentos
ZONA NORTE: Mercado Mixto Transición entre tipo de vivienda
Validación Estadística:
Chi-cuadrado = 690.93 (p < 0.001) Asociación altamente significativa entre ubicación y tipo de vivienda Inercia = 0.083: Asociación moderada pero consistente