El presente informe analiza el mercado de viviendas urbanas en una
gran ciudad mediante técnicas estadísticas multivariadas orientadas a la
toma de decisiones. Se emplea un conjunto de datos obtenido por web
scraping, disponible en el paquete paqueteMODELOS, que
incluye características físicas, económicas y de localización de los
inmuebles publicados durante el último trimestre.
El análisis busca identificar patrones de comportamiento, relaciones entre variables y segmentaciones del mercado, utilizando herramientas como Análisis de Componentes Principales (ACP), Clustering y Análisis de Correspondencia (AC), complementadas con visualizaciones exploratorias y geográficas.
Los resultados proporcionan evidencia para apoyar decisiones sobre inversión inmobiliaria, valoración de propiedades y estrategias comerciales, ofreciendo una comprensión integral del mercado urbano de vivienda.
Se cargan las librerías necesarias para la manipulación de datos, análisis multivariado, clustering y visualización gráfica. Si algún paquete no está instalado, se instala automáticamente para garantizar que el análisis se pueda ejecutar correctamente.
Antes del análisis estadístico, se realizó una depuración de los datos para garantizar su calidad y consistencia. Se identificaron y trataron valores faltantes, se verificaron los tipos de variables y se aplicaron las transformaciones necesarias para asegurar su correcta representación.
Además, las variables numéricas seleccionadas fueron estandarizadas, considerando que las técnicas multivariadas utilizadas dependen de varianzas y medidas de distancia, por lo que diferencias de escala podrían afectar los resultados.
Este proceso asegura que la base de datos esté adecuada para aplicar los métodos estadísticos y obtener resultados confiables.
data("vivienda", package = "paqueteMODELOS")
vivienda_clean <- vivienda %>%
filter(
!if_any(c(preciom, areaconst, parqueaderos, banios, habitaciones), is.na)
) %>%
mutate(
zona = as.factor(zona),
tipo = as.factor(tipo),
piso = as.numeric(piso)
)
summary(vivienda_clean)
## id zona piso estrato
## Min. : 1 Zona Centro : 64 Min. : 1.000 Min. :3.00
## 1st Qu.:2474 Zona Norte :1287 1st Qu.: 2.000 1st Qu.:4.00
## Median :4474 Zona Oeste :1098 Median : 3.000 Median :5.00
## Mean :4413 Zona Oriente: 163 Mean : 3.886 Mean :4.83
## 3rd Qu.:6428 Zona Sur :4105 3rd Qu.: 5.000 3rd Qu.:6.00
## Max. :8319 Max. :12.000 Max. :6.00
## NA's :1909
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 248.0 1st Qu.: 86.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 355.0 Median : 130.0 Median : 2.000 Median : 3.000
## Mean : 468.9 Mean : 181.1 Mean : 1.835 Mean : 3.255
## 3rd Qu.: 580.0 3rd Qu.: 233.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
##
## habitaciones tipo barrio longitud
## Min. : 0.000 Apartamento:4231 Length:6717 Min. :-76.59
## 1st Qu.: 3.000 Casa :2486 Class :character 1st Qu.:-76.54
## Median : 3.000 Mode :character Median :-76.53
## Mean : 3.611 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
##
## latitud
## Min. :3.333
## 1st Qu.:3.379
## Median :3.412
## Mean :3.415
## 3rd Qu.:3.451
## Max. :3.498
##
vars_num <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones)
outliers <- sapply(vars_num, function(x) {
Q1 <- quantile(x, 0.25)
Q3 <- quantile(x, 0.75)
IQR <- Q3 - Q1
sum(x < (Q1 - 1.5 * IQR) | x > (Q3 + 1.5 * IQR))
})
outliers
## preciom areaconst parqueaderos banios habitaciones
## 497 321 567 53 614
La tabla anterior presenta un resumen estadístico de las variables clave después del proceso de limpieza. Este análisis permite identificar rangos, medidas de tendencia central y posibles valores atípicos, confirmando que los datos se encuentran en condiciones adecuadas para la aplicación de técnicas de análisis multivariado.
dim(vivienda_clean)
## [1] 6717 13
str(vivienda_clean)
## tibble [6,717 × 13] (S3: tbl_df/tbl/data.frame)
## $ id : num [1:6717] 1147 1169 1350 5992 1212 ...
## $ zona : Factor w/ 5 levels "Zona Centro",..: 4 4 4 5 2 2 2 2 2 2 ...
## $ piso : num [1:6717] NA NA NA 2 1 1 1 1 2 2 ...
## $ estrato : num [1:6717] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:6717] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:6717] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:6717] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:6717] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:6717] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : Factor w/ 2 levels "Apartamento",..: 2 2 2 2 1 1 1 1 2 2 ...
## $ barrio : chr [1:6717] "20 de julio" "20 de julio" "20 de julio" "3 de julio" ...
## $ longitud : num [1:6717] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:6717] 3.43 3.43 3.44 3.44 3.46 ...
cat("El dataset contiene",
nrow(vivienda_clean),
"observaciones y",
ncol(vivienda_clean),
"variables.")
## El dataset contiene 6717 observaciones y 13 variables.
Para los análisis multivariados se utilizaron únicamente observaciones completas en las variables seleccionadas, con el fin de evitar sesgos derivados de valores faltantes y garantizar la consistencia de los resultados.
El conjunto de datos incluye características estructurales, económicas y de localización de las viviendas, constituyendo un estudio de tipo transversal basado en información recolectada mediante técnicas de web scraping.
A continuación se presentan las fórmulas esenciales utilizadas en este análisis:
1. Correlación de Pearson:
\[ r_{XY} = \frac{\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})} {\sqrt{\sum_{i=1}^{n} (X_i - \bar{X})^2 \sum_{i=1}^{n} (Y_i - \bar{Y})^2}} \]
2. Análisis de Componentes Principales (ACP):
\[ PC_1 = a_{11} X_1 + a_{12} X_2 + \dots + a_{1p} X_p \]
\[ PC_2 = a_{21} X_1 + a_{22} X_2 + \dots + a_{2p} X_p \]
3. Clustering K-means (Función objetivo):
\[ \min_{C} \sum_{k=1}^{K} \sum_{x_i \in C_k} \| x_i - \mu_k \|^2 \]
4. Análisis de Correspondencia (AC):
\[ N = (n_{ij}), \quad p_{ij} = \frac{n_{ij}}{n}, \quad s_{ij} = \frac{p_{ij} - p_{i\cdot} p_{\cdot j}}{\sqrt{p_{i\cdot} p_{\cdot j}}}, \quad S = U \Sigma V^T \]
Se aplicó un enfoque cuantitativo de aprendizaje no supervisado para explorar patrones y estructuras subyacentes en los datos, sin una variable respuesta definida. Las técnicas empleadas fueron:
Todo el procesamiento y análisis se realizó en R, garantizando la reproducibilidad de los resultados.
En esta etapa se realiza una exploración inicial de los datos con el fin de comprender su distribución, rangos y características principales. Se calcularon estadísticas descriptivas, se evaluaron correlaciones entre variables y se identificaron valores atípicos, lo que permitió reconocer patrones relevantes y seleccionar las variables más adecuadas para el Análisis de Componentes Principales (ACP) y el análisis de conglomerados.
Se presentan medidas básicas de resumen de las variables numéricas y se evalúan sus relaciones mediante la correlación de Pearson, lo que permite entender qué variables tienden a variar conjuntamente.
Incluye media, mediana, mínimo, máximo y cuartiles para las variables
clave: preciom, areaconst,
banios, habitaciones y
parqueaderos.
tabla_resumen <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones) %>%
summary()
knitr::kable(tabla_resumen, digits = 2, caption = "**Tabla 1**: Estadísticas descriptivas de variables clave")
| preciom | areaconst | parqueaderos | banios | habitaciones | |
|---|---|---|---|---|---|
| Min. : 58.0 | Min. : 30.0 | Min. : 1.000 | Min. : 0.000 | Min. : 0.000 | |
| 1st Qu.: 248.0 | 1st Qu.: 86.0 | 1st Qu.: 1.000 | 1st Qu.: 2.000 | 1st Qu.: 3.000 | |
| Median : 355.0 | Median : 130.0 | Median : 2.000 | Median : 3.000 | Median : 3.000 | |
| Mean : 468.9 | Mean : 181.1 | Mean : 1.835 | Mean : 3.255 | Mean : 3.611 | |
| 3rd Qu.: 580.0 | 3rd Qu.: 233.0 | 3rd Qu.: 2.000 | 3rd Qu.: 4.000 | 3rd Qu.: 4.000 | |
| Max. :1999.0 | Max. :1745.0 | Max. :10.000 | Max. :10.000 | Max. :10.000 |
Interpretación:
Se calculó la matriz de correlaciones entre las variables numéricas continuas para identificar relaciones lineales y posibles redundancias, lo que constituye un insumo previo para la aplicación de técnicas multivariadas.
La correlación de Pearson entre dos variables \(X\) y \(Y\) se calcula como:
\[ r_{XY} = \frac{\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})} {\sqrt{\sum_{i=1}^{n} (X_i - \bar{X})^2 \sum_{i=1}^{n} (Y_i - \bar{Y})^2}} \]
donde:
num_vars <- vivienda_clean %>% select(preciom, areaconst, parqueaderos, banios, habitaciones)
corrplot(round(cor(num_vars), 2), method = "color", type = "upper",
addCoef.col = "black", tl.col = "black", number.cex = 0.8,
diag = FALSE)
Interpretación:
preciom y areaconst muestran una
correlación fuerte (>0.7), indicando que el tamaño de la propiedad es
uno de los principales determinantes del precio.banios, habitaciones y
parqueaderos presentan correlaciones moderadas, aportando
información adicional sobre las características estructurales de las
viviendas.estrato no se incluye en este análisis exploratorio por
su naturaleza ordinal y baja correlación con otras variables.Uso de los resultados de la correlación:
preciom y
areaconst, se confirma que estas variables son
determinantes para diferenciar propiedades, y se priorizan en el
ACP y el clustering, ya que aportan la mayor parte de la
variabilidad.banios,
habitaciones, parqueaderos) se incluyen en el
ACP y clustering como información complementaria.estrato)
no se incluyen en los análisis de reducción de
dimensionalidad y segmentación para evitar distorsiones.vivienda_clean %>%
select(preciom, areaconst, banios, habitaciones, parqueaderos) %>%
gather(key = "variable", value = "valor") %>%
ggplot(aes(x = valor)) +
geom_histogram(fill = "steelblue", color = "black", bins = 30, alpha = 0.7) +
facet_wrap(~variable, scales = "free") +
labs(
title = "Distribución de variables numéricas",
x = "Valor",
y = "Frecuencia"
) +
scale_x_continuous(labels = comma) +
theme_minimal()
Utilidad de los histogramas:
ACP: Identificar variables muy sesgadas o con poca variabilidad que podrían influir en los componentes principales.
Clustering: Verificar que las características reflejen correctamente la heterogeneidad del mercado y no estén dominadas por valores extremos.
Los boxplots permiten identificar valores extremos que podrían afectar los análisis multivariados.
vivienda_clean %>%
select(preciom, areaconst, banios, habitaciones, parqueaderos) %>%
gather(key = "variable", value = "valor") %>%
ggplot(aes(x = variable, y = valor)) +
geom_boxplot(fill = "orange", alpha = 0.6) +
scale_y_continuous(labels = comma) + # Mejora visual de valores grandes
labs(
title = "Boxplots de variables numéricas",
x = "Variable",
y = "Valor"
) +
theme_minimal()
Interpretación adicional:
El ACP transforma un conjunto de variables correlacionadas en componentes ortogonales que capturan la mayor varianza posible. Esto permite reducir redundancias, simplificar la interpretación de relaciones complejas entre precio, área y características estructurales, y facilitar la identificación de factores dominantes del mercado inmobiliario.
El ACP reduce la dimensionalidad de variables numéricas,
identificando cuáles influyen más en la variabilidad del mercado
inmobiliario.
Cada componente principal es una combinación lineal de las variables
originales:
\[ PC_1 = a_{11} X_1 + a_{12} X_2 + ... + a_{1p} X_p \]
\[ PC_2 = a_{21} X_1 + a_{22} X_2 + ... + a_{2p} X_p \]
donde los coeficientes \(a_{ij}\) maximizan la varianza explicada por cada componente.
Interpretación práctica: PC1 y PC2 resumen la mayor
parte de la información, destacando variables como preciom,
areaconst y número de habitaciones.
vars_num <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones) %>%
na.omit()
res_pca <- PCA(vars_num, scale.unit = TRUE, graph = FALSE)
La estandarización asegura que todas las variables contribuyan de manera equilibrada al análisis, dado que ACP y clustering dependen de varianza y distancias.
El gráfico de varianza explicada muestra cuánto de la variabilidad total del conjunto de datos captura cada componente principal:
Los números 1, 2, 3, 4, 5 en el eje X corresponden a los componentes principales (PC1, PC2, …), no a las variables individuales.
Cada componente es una combinación lineal de todas las variables originales, diseñada para capturar la máxima varianza posible.
La altura de cada barra indica el porcentaje de varianza explicada por ese componente.
fviz_eig(res_pca, addlabels = TRUE, ylim = c(0, 60))
var_explicada <- res_pca$eig[1:2, "cumulative percentage of variance"]
cat("PC1 y PC2 explican un", round(var_explicada[2],1), "% de la varianza total.")
## PC1 y PC2 explican un 82.3 % de la varianza total.
En este análisis, el primer componente principal (PC1) explica la mayor parte de la variabilidad del mercado inmobiliario, mientras que los componentes siguientes aportan información adicional pero menor. Esto indica que la mayoría de la información puede resumirse en los primeros componentes
El gráfico de individuos muestra cómo se distribuyen las
propiedades según las componentes principales. Cada punto representa una
propiedad, y los colores indican el cluster asignado, permitiendo
visualizar similitudes y diferencias entre grupos. Esta representación
ayuda a identificar cómo se agrupan las propiedades según sus
características principales.
vars_num <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones) %>%
na.omit()
res_pca <- PCA(vars_num, scale.unit = TRUE, graph = FALSE)
fviz_pca_ind(
res_pca,
geom.ind = "point",
label = "none",
col.ind = "blue"
) +
theme_minimal() +
labs(title = "Individuos - PC")
El gráfico de variables permite identificar cuáles
características contribuyen más a la variabilidad del mercado. Así se
puede resumir la información de manera eficiente y comprender la
importancia relativa de cada variable, como el precio, el área
construida, el número de habitaciones, banios y
parqueaderos.
fviz_pca_var(
res_pca,
col.var = "contrib",
gradient.cols = c("blue","yellow","red"),
repel = TRUE
) +
theme_minimal() +
labs(title = "Variables - PCA")
Interpretación:
Los resultados del ACP indican que las variables preciom
y areaconst concentran la mayor proporción de la
variabilidad del mercado inmobiliario, lo que sugiere que el tamaño de
la propiedad y su valor económico son los factores más determinantes
para diferenciar las viviendas. Variables como el número de
habitaciones, banios y parqueaderos presentan
contribuciones secundarias, asociadas principalmente al tamaño de la
propiedad.
El análisis de conglomerados K-means agrupa observaciones en clusters homogéneos minimizando la distancia euclideana respecto a los centroides. La función objetivo es:
\[ \min_{C} \sum_{k=1}^{K} \sum_{x_i \in C_k} \| x_i - \mu_k \|^2 \]
donde \(C_k\) es el cluster \(k\), \(x_i\) la observación \(i\) y \(\mu_k\) el centroide del cluster \(k\).
Se utilizan las variables numéricas preciom,
areaconst, parqueaderos, banios y
habitaciones, previamente centradas y escaladas (media 0,
varianza 1) para evitar que diferencias de escala afecten la formación
de los clusters. La segmentación se basa solo en características
estructurales y económicas; variables categóricas como el estrato se
usan después para caracterizar e interpretar los grupos obtenidos.
El clustering agrupa propiedades con características similares en
segmentos homogéneos según precio, área, número de habitaciones,
banios y parqueaderos. El estrato
socioeconómico se usa posteriormente para caracterizar los clusters,
pero no interviene en su formación. Las variables se estandarizan
previamente (media 0, varianza 1) para garantizar que todas contribuyan
de manera equilibrada a la formación de los clusters.
Selecciona las variables numéricas que se usarán para formar los
clusters. Esto asegura que solo las características relevantes
(preciom, areaconst, banios,
habitaciones, parqueaderos) entren al
análisis.
vars_num_complete <- vivienda_clean %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones)
complete_cases <- complete.cases(vars_num_complete)
data_scaled <- as.data.frame(scale(vars_num_complete[complete_cases, ]))
Se emplea el método del codo (WSS) para evaluar la variabilidad interna de los clusters y determinar el valor de 𝑘más adecuado.
fviz_nbclust(data_scaled, kmeans, method = "wss") +
theme_minimal()
Interpretación El gráfico evidencia un punto de inflexión en \(k = 4\), por lo que se adopta esta partición como estructura de segmentación del mercado inmobiliario.
El algoritmo K-means busca minimizar la suma de cuadrados intra-cluster, agrupando observaciones en función de la distancia euclidiana respecto a los centroides estimados.
set.seed(123)
km_res <- kmeans(data_scaled, centers = 4, nstart = 25)
vivienda_clean$cluster <- NA
vivienda_clean$cluster[complete_cases] <- as.factor(km_res$cluster)
fviz_cluster(
km_res,
data = data_scaled,
palette = "Dark2",
geom = "point",
ellipse.type = "convex",
ggtheme = theme_minimal()
)
# Validación Silhouette
sil <- silhouette(km_res$cluster, dist(data_scaled))
fviz_silhouette(sil) + theme_minimal()
## cluster size ave.sil.width
## 1 1 3495 0.53
## 2 2 469 0.19
## 3 3 2022 0.23
## 4 4 731 0.12
El análisis de conglomerados permitió identificar cuatro segmentos claramente diferenciados dentro del mercado inmobiliario:
Económico: propiedades con menor área construida y precios bajos, que posteriormente tienden a corresponder con estratos socioeconómicos bajos.
Intermedio bajo: viviendas con valores promedio de tamaño y precio, que suelen asociarse con estratos medios.
Intermedio alto: propiedades de mayor tamaño y precios medio-altos, generalmente vinculadas a estratos medio-altos.
Premium: viviendas con grandes áreas construidas y precios elevados, que tienden a concentrarse en estratos altos.
La segmentación resultante evidencia una estructura coherente del mercado inmobiliario, donde el precio y el tamaño de la propiedad constituyen los principales ejes de diferenciación. La correspondencia con el estrato socioeconómico refuerza la consistencia de los grupos identificados y permite diseñar estrategias diferenciadas de análisis, comercialización y valoración de propiedades.
El Análisis de Correspondencia (AC) permite explorar asociaciones entre variables categóricas mediante tablas de contingencia bidimensionales. En este estudio se analiza la relación entre tipo de vivienda y zona.
Variables categóricas adicionales como estrato y barrio no se incluyen:
Se prioriza la interpretabilidad y la utilidad práctica de los resultados para el análisis del mercado inmobiliario.
La tabla de contingencia se denota como:
\[ N = (n_{ij}), \quad p_{ij} = \frac{n_{ij}}{n} \]
donde \(p_{ij}\) son las
proporciones relativas.
La matriz se centra y escala para eliminar efectos de márgenes:
\[ s_{ij} = \frac{p_{ij} - p_{i\cdot} p_{\cdot j}}{\sqrt{p_{i\cdot} p_{\cdot j}}} \]
Finalmente, se aplica la descomposición en valores singulares (SVD):
\[ S = U \Sigma V^T \]
# Crear tabla de contingencia limpia
tab_tipo_zona <- table(vivienda_clean$tipo, vivienda_clean$zona)
tab_tipo_zona <- tab_tipo_zona[rowSums(tab_tipo_zona) > 0,
colSums(tab_tipo_zona) > 0]
# Mostrar tabla
knitr::kable(
tab_tipo_zona,
caption = "**Tabla 2:** Distribución de Tipo de Vivienda por Zona",
digits = 0
)
| Zona Centro | Zona Norte | Zona Oeste | Zona Oriente | Zona Sur | |
|---|---|---|---|---|---|
| Apartamento | 10 | 852 | 966 | 22 | 2381 |
| Casa | 54 | 435 | 132 | 141 | 1724 |
# Análisis de Correspondencia con biplot o gráfico alternativo
if(nrow(tab_tipo_zona) > 1 & ncol(tab_tipo_zona) > 1){
res_ca <- CA(tab_tipo_zona, graph = FALSE)
tryCatch({
fviz_ca_biplot(res_ca,
repel = TRUE,
label = "all", # "row" para filas, "col" para columnas
col.row = "blue",
col.col = "red") +
theme_minimal()
}, error = function(e){
message("Error en biplot, se muestra gráfico de barras alternativo")
barplot(tab_tipo_zona, beside = TRUE,
col = rainbow(ncol(tab_tipo_zona)),
main = "Distribución de Tipo de Vivienda por Zona",
xlab = "Tipo de vivienda",
ylab = "Frecuencia",
las = 2)
})
} else {
message("No hay suficientes categorías para AC, mostrando gráfico de barras")
barplot(tab_tipo_zona, beside = TRUE,
col = rainbow(ncol(tab_tipo_zona)),
main = "Distribución de Tipo de Vivienda por Zona",
xlab = "Tipo de vivienda",
ylab = "Frecuencia",
las = 2)
}
La tabla confirma las tendencias observadas en el biplot: Se observa una mayor frecuencia relativa de casas en zonas norte y centro, apartamentos en zonas sur y occidente, reflejando preferencias del mercado según ubicación
El gráfico se utiliza como complemento al biplot de Análisis de Correspondencia, especialmente útil si el biplot no se puede generar debido a dimensiones insuficientes o datos faltantes
Interpretación:
“Estos resultados complementan los hallazgos del ACP y del clustering, mostrando que las casas se concentran principalmente en zonas norte y centro, mientras que los apartamentos predominan en zonas sur y occidente, ofreciendo una visión clara de la distribución y preferencias de tipo de vivienda según las zonas de la ciudad.”
Esta sección muestra la distribución espacial de las
propiedades según los clusters obtenidos en el análisis de
conglomerados.
La visualización permite identificar concentraciones de propiedades
económicas, intermedias y premium en diferentes zonas de la ciudad,
facilitando la planificación estratégica de inversiones y operaciones
inmobiliarias.
# Preparar datos para el mapa y escalar tamaño según precio
vivienda_map <- vivienda_clean %>%
filter(!is.na(latitud), !is.na(longitud), !is.na(cluster)) %>%
mutate(
cluster = as.factor(cluster),
size_scaled = (preciom - min(preciom)) / (max(preciom) - min(preciom)) * 5 + 1
)
# Graficar
ggplot(vivienda_map, aes(x = longitud, y = latitud)) +
geom_point(aes(color = cluster, size = size_scaled), alpha = 0.6) +
scale_color_brewer(palette = "Set1") + # Funciona porque cluster es factor
labs(
title = "Distribución de propiedades por cluster y precio",
x = "Longitud",
y = "Latitud",
color = "Cluster",
size = "Precio (escalado)"
) +
theme_minimal() +
coord_fixed(ratio = 1.2) # Mantiene proporción espacial
El mapa espacial muestra la concentración de propiedades según el cluster asignado y el nivel de precio. Se observa que las propiedades del cluster Premium tienden a concentrarse en determinadas zonas de la ciudad, mientras que los clusters Económicos presentan una distribución territorial diferente. Esta configuración espacial refuerza la consistencia interna de los resultados multivariados, al evidenciar patrones territoriales acordes con la segmentación identificada previamente mediante el ACP y el análisis de conglomerados.
La visualización espacial permite:
Identificar concentraciones de propiedades por cluster.
Detectar zonas con alta variabilidad de estrato o precio que representan oportunidades de inversión.
Relacionar resultados de ACP y clustering con la distribución real de propiedades en la ciudad.
Esto facilita decisiones estratégicas basadas en ubicación y segmentación del mercado.
Análisis de Componentes Principales (ACP):
Las variables preciom y areaconst
concentran la mayor proporción de la variabilidad, indicando que el
tamaño y el valor económico de la propiedad son los factores más
determinantes del mercado. Las variables banios,
habitaciones y parqueaderos aportan
información complementaria sobre equipamiento y capacidad
habitacional.
Clustering (Segmentación de propiedades):
Se identificaron 4 clusters diferenciados
principalmente por precio y área construida:
Análisis de Correspondencia (AC):
Se observan asociaciones claras entre tipo de vivienda y
zonas:
Visualización Geográfica:
La distribución espacial muestra concentraciones de propiedades premium
en ciertas zonas, mientras que áreas con alta variabilidad de estrato
presentan oportunidades de compra-venta con potencial de
revalorización.
| Área de acción | Recomendación concreta |
|---|---|
| Inversión | Priorizar adquisición de propiedades en Cluster 4, ubicadas en zonas con alta densidad de propiedades premium. |
| Marketing | Dirigir campañas a Cluster 2 y 3, destacando precio y ubicación, para atraer clientes de estratos medio y medio-alto. |
| Operaciones | Reasignar agentes a barrios con concentración de propiedades premium para maximizar eficiencia y oportunidades de alto valor. |
| Seguimiento y análisis | Monitorear zonas con alta variabilidad de precio y estrato, anticipando cambios en la demanda. |
| Planificación estratégica | Utilizar ACP y clustering para modelar escenarios de crecimiento y evaluar el impacto de nuevas construcciones o cambios en la oferta. |
Síntesis final:
Los hallazgos del ACP, clustering y análisis de correspondencia ofrecen
una visión integral: los clusters reflejan patrones de tamaño y precio,
las preferencias de tipo de vivienda varían según zona y la
visualización geográfica permite localizar oportunidades estratégicas.
Esto permite diseñar decisiones coordinadas de inversión, marketing y
gestión de propiedades, optimizando rentabilidad y posicionamiento en el
mercado urbano.
[1] D. Ortega Lenis, “Modelos Estadísticos para la toma de decisiones: Conceptos generales, Análisis de Componentes Principales, Análisis de Conglomerados y Análisis de Correspondencia,” Material de clase, Maestría/Especialización en Estadística, Pontificia Universidad Javeriana Cali, Colombia, 2025.
[2] G. James, D. Witten, T. Hastie and R. Tibshirani, An Introduction to Statistical Learning, New York: Springer, 2021.
[3] F. Husson, S. Lê and J. Pagès, Exploratory Multivariate Analysis by Example Using R, Boca Raton: CRC Press, 2017.
[4] B. Everitt and T. Hothorn, An Introduction to Applied Multivariate Analysis with R, New York: Springer, 2011.
[5] A. Kassambara, Practical Guide to Cluster Analysis in R, STHDA, 2017.