El objetivo del presente análisis es aplicar técnicas multivariadas para comprender la dinámica del mercado inmobiliario urbano, identificar patrones en la oferta de viviendas y apoyar la toma de decisiones estratégicas mediante reducción de dimensionalidad, segmentación y análisis de relaciones entre variables categóricas.
En esta etapa se realiza la carga, limpieza y adecuación de la base de datos vivienda, con el propósito de garantizar que la información se encuentre en condiciones adecuadas para la aplicación de técnicas de análisis multivariado. Este proceso es fundamental para evitar inconsistencias que puedan afectar la interpretación de los resultados y asegurar la coherencia metodológica con los objetivos planteados en la introducción del estudio.
# cargar librerias necesarias
library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Loading required package: gridExtra
## Warning: package 'gridExtra' was built under R version 4.3.3
## Loading required package: knitr
## Warning: package 'knitr' was built under R version 4.3.3
## Loading required package: summarytools
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.3
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'stringr' was built under R version 4.3.3
## Warning: package 'forcats' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.4 ✔ tibble 3.3.0
## ✔ purrr 1.0.1 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::combine() masks gridExtra::combine()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ tibble::view() masks summarytools::view()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# cargar el conjunto de datos que contiene información estructural, socioeconómica y geográfica de propiedades residenciales urbanas
data("vivienda")
# limpiar NA del piso (no sirve para PCA)
vivienda$piso[vivienda$piso == "NA"] <- NA
# convertir variables categóricas a factor
vivienda <- vivienda %>%
mutate(
zona = as.factor(zona),
tipo = as.factor(tipo),
barrio = as.factor(barrio)
)
str(vivienda)
## tibble [8,322 × 13] (S3: tbl_df/tbl/data.frame)
## $ id : num [1:8322] 1147 1169 1350 5992 1212 ...
## $ zona : Factor w/ 5 levels "Zona Centro",..: 4 4 4 5 2 2 2 2 2 2 ...
## $ piso : chr [1:8322] NA NA NA "02" ...
## $ estrato : num [1:8322] 3 3 3 4 5 5 4 5 5 5 ...
## $ preciom : num [1:8322] 250 320 350 400 260 240 220 310 320 780 ...
## $ areaconst : num [1:8322] 70 120 220 280 90 87 52 137 150 380 ...
## $ parqueaderos: num [1:8322] 1 1 2 3 1 1 2 2 2 2 ...
## $ banios : num [1:8322] 3 2 2 5 2 3 2 3 4 3 ...
## $ habitaciones: num [1:8322] 6 3 4 3 3 3 3 4 6 3 ...
## $ tipo : Factor w/ 2 levels "Apartamento",..: 2 2 2 2 1 1 1 1 2 2 ...
## $ barrio : Factor w/ 436 levels "20 de julio",..: 1 1 1 2 3 3 3 3 3 3 ...
## $ longitud : num [1:8322] -76.5 -76.5 -76.5 -76.5 -76.5 ...
## $ latitud : num [1:8322] 3.43 3.43 3.44 3.44 3.46 ...
Con el propósito de comprender la estructura general del mercado inmobiliario urbano y reducir la complejidad del conjunto de datos, se aplica un Análisis de Componentes Principales (PCA). Esta técnica permite sintetizar la información contenida en múltiples variables numéricas en un número reducido de componentes que concentran la mayor variabilidad de los datos.
Para este análisis se seleccionan variables cuantitativas asociadas a las características estructurales de las viviendas, tales como precio, área construida, número de parqueaderos, baños, habitaciones y estrato socioeconómico. Estas variables representan factores relevantes dentro de la dinámica de la oferta inmobiliaria y permiten identificar patrones generales del mercado.
Previo a la ejecución del modelo, se eliminan registros con valores faltantes y se estandarizan las variables, con el fin de garantizar que todas contribuyan de manera equitativa al análisis y evitar que aquellas con mayor escala dominen la construcción de las componentes principales..
# cargar librerías necesarias para PCA y visualización
library(FactoMineR)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# ----------------------------------------------------------
# seleccionar variables numéricas relevantes para el análisis
# ----------------------------------------------------------
datos_num <- vivienda %>%
select(preciom, areaconst, parqueaderos, banios, habitaciones, estrato) %>%
na.omit()
# ----------------------------------------------------------
# ejecutar PCA con variables estandarizadas
# ----------------------------------------------------------
pca <- PCA(datos_num, scale.unit = TRUE, graph = FALSE)
# ----------------------------------------------------------
# visualizar varianza explicada por cada componente
# ----------------------------------------------------------
fviz_eig(pca)
## Warning in geom_bar(stat = "identity", fill = barfill, color = barcolor, :
## Ignoring empty aesthetic: `width`.
# ----------------------------------------------------------
# visualizar relaciones entre variables y observaciones
# ----------------------------------------------------------
fviz_pca_biplot(pca, repel = TRUE)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the ggpubr package.
## Please report the issue at <https://github.com/kassambara/ggpubr/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
El Análisis de Componentes Principales (PCA) permite simplificar la
información del conjunto de datos agrupando varias variables en nuevas
dimensiones que resumen los patrones más importantes. En lugar de
analizar cada característica por separado, el PCA combina aquellas que
están relacionadas entre sí para mostrar una visión más general del
comportamiento del mercado.
La primera dimensión del análisis representa la principal forma en que las viviendas se diferencian entre sí. Por su parte, la segunda dimensión muestra otro tipo de variación relevante dentro del mercado que complementa la información anterior, permitiendo observar diferencias adicionales entre las viviendas sin repetir el mismo patrón.
Estas dimensiones ayudan a observar cómo se organiza el mercado inmobiliario sin tener que revisar todas las variables individualmente, facilitando una lectura más clara de los datos.
El gráfico denominado Scree plot muestra el porcentaje de variabilidad explicada por cada dimensión del PCA. En este caso, la primera dimensión explica aproximadamente el 58.1 % de la variabilidad total, mientras que la segunda dimensión aporta cerca del 20.4 % adicional, acumulando alrededor del 78 % de la información del conjunto de datos. Este resultado indica que la mayor parte del comportamiento del mercado puede describirse adecuadamente utilizando solo dos dimensiones principales, lo que confirma la efectividad de la reducción de dimensionalidad.
El análisis del biplot permite identificar qué variables (flechas) están más relacionadas con cada dimensión principal.
Si una flecha va principalmente hacia la derecha o izquierda → está más asociada a Dim1.
Si apunta más hacia arriba o abajo → está más asociada a Dim2.
La primera dimensión (Dim1), representada en el eje horizontal y con aproximadamente el 58.1 % de variabilidad explicada, se encuentra asociada principalmente con variables estructurales y económicas como:
Esto indica que la dimensión 1 refleja diferencias relacionadas con el tamaño general y el valor comercial de las viviendas, separando propiedades más pequeñas y económicas de aquellas con mayor área y nivel de equipamiento.
Por su parte, la segunda dimensión (Dim2), representada en el eje vertical. que explica cerca del 20.4 % de la variabilidad, muestra una relación más marcada con dos variables:
Esto sugiere que esta dimensión 2 captura variaciones adicionales asociadas a la distribución interna de las viviendas y a su contexto socioeconómico, aportando una perspectiva complementaria a la información representada en la primera dimensión.
Con el fin de identificar posibles segmentos dentro de la oferta inmobiliaria urbana, se aplica un análisis de conglomerados utilizando las mismas variables estructurales consideradas en el Análisis de Componentes Principales. Mientras que el PCA permitió comprender las principales formas de variación del mercado, el clustering busca agrupar viviendas con características similares, facilitando la identificación de perfiles diferenciados dentro de la oferta disponible.
Antes de definir los grupos, se utiliza el método del codo (Elbow Method), el cual permite observar cómo cambia la variabilidad interna a medida que aumenta el número de clusters. Este procedimiento ayuda a seleccionar una cantidad de grupos razonable sin sobresegmentar los datos.
# cargar librerías necesarias para clustering y visualización
library(cluster)
library(factoextra)
# ----------------------------------------------------------
# determinar número sugerido de clusters (método del codo)
# ----------------------------------------------------------
fviz_nbclust(datos_num, kmeans, method = "wss")
# ----------------------------------------------------------
# aplicar algoritmo k-means
# se utiliza k = 3 como punto de partida para segmentar
# el mercado en grupos interpretables
# ----------------------------------------------------------
set.seed(123)
k3 <- kmeans(scale(datos_num), centers = 3, nstart = 25)
# ----------------------------------------------------------
# visualizar los clusters obtenidos
# ----------------------------------------------------------
fviz_cluster(k3, data = scale(datos_num))
En el primer gráfico, correspondiente al método del codo (Elbow Plot), se observa cómo disminuye la variabilidad interna a medida que aumenta el número de clusters. La caída más pronunciada se presenta entre uno y tres grupos, mientras que después de este punto la reducción es mucho más gradual. Este comportamiento sugiere que utilizar tres clusters representa una elección razonable, ya que permite capturar diferencias importantes entre las viviendas sin generar una segmentación excesivamente compleja.
En el segundo gráfico, correspondiente al Cluster Plot, se observa que la separación entre los grupos ocurre principalmente a lo largo de la Dimensión 1, la cual previamente se relacionó con variables estructurales y económicas como el precio, el área construida, los baños y los parqueaderos. Los clusters aparecen organizados de izquierda a derecha, evidenciando una transición progresiva entre viviendas de menor escala, propiedades intermedias y viviendas con mayores características estructurales.
El cluster representado en color verde se ubica hacia valores bajos de la Dimensión 1, lo que sugiere que agrupa viviendas más pequeñas o con menor nivel de equipamiento. El grupo azul se concentra en una zona intermedia, reflejando propiedades con características moderadas dentro del mercado. Por su parte, el cluster rojo se posiciona hacia valores altos de la Dimensión 1 y presenta una mayor dispersión, lo cual indica una mayor variabilidad entre viviendas de mayor tamaño y valor comercial.
En contraste, la Dimensión 2 no muestra una separación clara entre los grupos, ya que los tres clusters se distribuyen de forma similar a lo largo del eje vertical. Esto sugiere que variables asociadas a esta dimensión, como el número de habitaciones o el estrato socioeconómico, aportan diferencias internas dentro de cada grupo, pero no determinan la segmentación principal del mercado.
En conjunto, el gráfico evidencia que la segmentación obtenida refleja principalmente distintos niveles estructurales dentro de la oferta inmobiliaria, más que diferencias categóricas o socioeconómicas aisladas.
Con el fin de explorar la relación entre variables categóricas dentro del mercado inmobiliario, se aplica un Análisis de Correspondencia. A diferencia del PCA y del clustering, que se enfocan principalmente en variables numéricas, esta técnica permite analizar cómo se asocian categorías como el tipo de vivienda, la zona y el barrio dentro del conjunto de datos.
El objetivo principal es identificar patrones de asociación entre estas variables y observar si existen concentraciones específicas que permitan entender mejor la distribución espacial y tipológica de la oferta inmobiliaria urbana. Para ello, se construye una tabla de contingencia que resume la frecuencia de combinación entre las categorías seleccionadas y posteriormente se proyecta la información en un espacio bidimensional que facilita su interpretación visual.
library(FactoMineR)
library(factoextra)
# ----------------------------------------------------------
# seleccionar variables categóricas relevantes
# ----------------------------------------------------------
datos_cat <- vivienda %>%
select(zona, barrio) %>%
na.omit()
# ----------------------------------------------------------
# crear tabla de contingencia
# filas = zonas
# columnas = barrios
# ----------------------------------------------------------
tabla_cont <- table(datos_cat$zona, datos_cat$barrio)
# ----------------------------------------------------------
# aplicar análisis de correspondencia
# ----------------------------------------------------------
ca <- CA(tabla_cont, graph = FALSE)
# ----------------------------------------------------------
# visualizar biplot (solo categorías más influyentes)
# esto evita que el gráfico quede saturado
# ----------------------------------------------------------
fviz_ca_biplot(
ca,
repel = TRUE,
select.row = list(contrib = 15), # barrios más representativos
select.col = list(contrib = 5) # zonas más representativas
)
Para mejorar la legibilidad del gráfico se decidió mostrar únicamente las categorías con mayor aporte al análisis. Esta selección se basó en el indicador de contribución calculado dentro del análisis de correspondencia, el cual mide qué tan influyente es cada categoría en la construcción de las dimensiones principales. A través de este criterio, el software identifica automáticamente las zonas y barrios que más participan en la estructura del modelo. Con el fin de evitar la saturación visual causada por la gran cantidad de barrios presentes en la base de datos, se limitó la visualización a los 15 barrios y las 5 zonas con mayor contribución, permitiendo resaltar las asociaciones más representativas sin alterar la interpretación general de los resultados. Esta decisión explica por qué el gráfico no presenta todas las categorías disponibles, sino únicamente aquellas que aportan mayor información al análisis.
La decisión de visualizar 15 barrios y 5 zonas no responde a un criterio arbitrario, sino a la estructura propia del conjunto de datos. Mientras que el número de zonas es reducido, la variable barrio presenta una mayor diversidad de categorías. Por esta razón, limitar la visualización a pocos barrios podría ocultar asociaciones relevantes dentro del análisis. Mostrar un mayor número de barrios permite conservar información importante sobre la distribución espacial del mercado, manteniendo al mismo tiempo una representación gráfica legible y coherente. De esta manera, se buscó un equilibrio entre claridad visual y riqueza interpretativa, priorizando las categorías con mayor contribución estadística sin saturar el gráfico.
El gráfico obtenido a partir del análisis de correspondencia permite observar la relación entre las zonas de la ciudad y los barrios más influyentes dentro de la oferta inmobiliaria analizada. La cercanía entre categorías sugiere asociaciones más frecuentes, mientras que aquellas ubicadas más alejadas reflejan comportamientos diferenciados dentro del mercado.
Se observa que el barrio La Flora aparece muy próximo a la Zona Norte, lo que indica una asociación destacada entre esta zona y dicho sector residencial dentro de los datos analizados. De manera similar, Valle del Lili se ubica cercano a la Zona Sur, evidenciando una tendencia espacial particular en la distribución de viviendas hacia esta área de la ciudad. Por su parte, la Zona Oriente presenta una posición más elevada en la segunda dimensión, lo que sugiere dinámicas distintas respecto a las demás zonas incluidas en el análisis.
La Zona Centro se encuentra cercana al origen del plano factorial, lo cual suele interpretarse como una posición más equilibrada, es decir, sin una asociación dominante con un barrio específico dentro de las categorías seleccionadas. Asimismo, barrios como Santa Teresita, Normandía y Cristales aparecen en la parte inferior del gráfico, reflejando patrones espaciales diferenciados que complementan los resultados obtenidos previamente mediante el PCA y el análisis de conglomerados.
En conjunto, el análisis de correspondencia aporta una lectura territorial del mercado inmobiliario, mostrando que ciertas zonas y barrios tienden a agruparse según patrones de localización específicos y complementando los hallazgos previos desde una perspectiva espacial que amplía la comprensión general del mercado inmobiliario urbano.
• El Análisis de Componentes Principales mostró que las principales diferencias dentro del mercado inmobiliario están asociadas a características estructurales como el área construida, el número de baños, parqueaderos y el precio, evidenciando que el tamaño y el nivel de equipamiento influyen significativamente en la variación de la oferta.
• El Análisis de Conglomerados permitió identificar tres segmentos diferenciados de viviendas, lo que confirma que el mercado presenta perfiles diversos y niveles estructurales claramente definidos.
• El Análisis de Correspondencia evidenció asociaciones territoriales entre ciertas zonas y barrios, indicando que la distribución espacial de las viviendas sigue patrones específicos dentro de la ciudad.
• La combinación de técnicas multivariadas permitió integrar información numérica y categórica, facilitando una comprensión más completa del comportamiento del mercado inmobiliario urbano.
Considerar que las viviendas no forman un solo grupo homogéneo, sino varios segmentos con características distintas. Por esta razón, las decisiones relacionadas con análisis, promoción o valoración inmobiliaria pueden adaptarse según el tipo de propiedades identificadas en cada cluster.
Priorizar zonas y barrios que muestran asociaciones claras dentro del análisis de correspondencia, ya que pueden representar oportunidades estratégicas de inversión o desarrollo.
Utilizar variables relacionadas con tamaño, precio y equipamiento como criterios principales para el análisis y posicionamiento de proyectos inmobiliarios.
Continuar aplicando enfoques de análisis multivariado en futuros estudios del mercado, debido a su utilidad para identificar patrones complejos y apoyar la toma de decisiones estratégicas.