Una empresa inmobiliaria busca comprender mejor el mercado de viviendas urbanas para optimizar sus decisiones estratégicas. Para ello, se analizará una base de datos extensa con información detallada sobre propiedades residenciales.
Se requiere un análisis integral del mercado aplicando diversas técnicas:
Análisis de Componentes Principales (PCA): Reducir la dimensionalidad y detectar factores clave que influyen en los precios y la oferta.
Análisis de Conglomerados: Identificar grupos homogéneos de propiedades según ubicación y estrato socioeconómico.
Análisis de Correspondencia: Explorar relaciones entre variables categóricas como tipo de vivienda, zona y barrio para detectar patrones de oferta.
Este análisis permitirá segmentar mejor el mercado y mejorar la toma de decisiones en compra, venta y valoración de propiedades.
El siguiente código configura el entorno de trabajo en R para realizar análisis exploratorio y modelos estadísticos sobre el mercado inmobiliario.
Se establece el espejo CRAN y se instalan paquetes esenciales, incluyendo devtools para instalar el paquete paqueteMODELOS desde GitHub. Se instalan y cargan librerías necesarias para el análisis de datos (tidyverse, dplyr), visualización (ggplot2, plotly, factoextra), y modelado estadístico (FactoMineR, mice para datos faltantes, cluster para análisis de conglomerados).
Se importa la base de datos vivienda desde el paquete paqueteMODELOS y se explora su estructura con str(vivienda). Este proceso asegura la disponibilidad de herramientas y datos para el análisis del mercado inmobiliario.
El código summary(vivienda) proporciona un resumen estadístico de la base de datos vivienda, permitiendo identificar características clave de las variables.
## id zona piso estrato
## Min. : 1 Length:8322 Length:8322 Min. :3.000
## 1st Qu.:2080 Class :character Class :character 1st Qu.:4.000
## Median :4160 Mode :character Mode :character Median :5.000
## Mean :4160 Mean :4.634
## 3rd Qu.:6240 3rd Qu.:5.000
## Max. :8319 Max. :6.000
## NA's :3 NA's :3
## preciom areaconst parqueaderos banios
## Min. : 58.0 Min. : 30.0 Min. : 1.000 Min. : 0.000
## 1st Qu.: 220.0 1st Qu.: 80.0 1st Qu.: 1.000 1st Qu.: 2.000
## Median : 330.0 Median : 123.0 Median : 2.000 Median : 3.000
## Mean : 433.9 Mean : 174.9 Mean : 1.835 Mean : 3.111
## 3rd Qu.: 540.0 3rd Qu.: 229.0 3rd Qu.: 2.000 3rd Qu.: 4.000
## Max. :1999.0 Max. :1745.0 Max. :10.000 Max. :10.000
## NA's :2 NA's :3 NA's :1605 NA's :3
## habitaciones tipo barrio longitud
## Min. : 0.000 Length:8322 Length:8322 Min. :-76.59
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.:-76.54
## Median : 3.000 Mode :character Mode :character Median :-76.53
## Mean : 3.605 Mean :-76.53
## 3rd Qu.: 4.000 3rd Qu.:-76.52
## Max. :10.000 Max. :-76.46
## NA's :3 NA's :3
## latitud
## Min. :3.333
## 1st Qu.:3.381
## Median :3.416
## Mean :3.418
## 3rd Qu.:3.452
## Max. :3.498
## NA's :3
El gráfico siguiente generado con md.pattern(vivienda) muestra la distribución de los valores faltantes en la base de datos.
## preciom id zona estrato areaconst banios habitaciones tipo barrio longitud
## 4808 1 1 1 1 1 1 1 1 1 1
## 1909 1 1 1 1 1 1 1 1 1 1
## 876 1 1 1 1 1 1 1 1 1 1
## 726 1 1 1 1 1 1 1 1 1 1
## 1 1 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0 0
## 2 3 3 3 3 3 3 3 3 3
## latitud parqueaderos piso
## 4808 1 1 1 0
## 1909 1 1 0 1
## 876 1 0 1 1
## 726 1 0 0 2
## 1 0 0 0 12
## 2 0 0 0 13
## 3 1605 2638 4275
En este fragmento de código, se realiza la selección y estandarización de las variables cuantitativas areaconst, parqueaderos, baños y habitaciones.
Se aplica la función scale() para normalizar los datos, lo que permite compararlos en una misma escala. Se verifica la presencia de valores faltantes (NA) y valores infinitos (Inf o -Inf). Finalmente, se eliminan las observaciones con valores faltantes para asegurar que solo se trabajen datos completos en el análisis posterior.
En este código, se aplica el Análisis de Componentes Principales (ACP) a las variables previamente estandarizadas.
La función prcomp() se utiliza para calcular los componentes principales. La salida del summary(resultado_acp) muestra la importancia de cada componente en la varianza total de los datos. Se observa que el primer componente (PC1) explica el 66.1% de la varianza, mientras que los dos primeros componentes combinados explican el 83.7%.
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.5904 0.8197 0.58295 0.53151
## Proportion of Variance 0.6615 0.1757 0.08888 0.07388
## Cumulative Proportion 0.6615 0.8372 0.92612 1.00000
Este gráfico muestra la proporción de varianza explicada por cada componente principal en el Análisis de Componentes Principales (ACP).
Este gráfico muestra la representación de las variables en el plano de los componentes principales del Análisis de Componentes Principales (ACP).
La tabla muestra las cargas de las variables en cada componente principal (PC1, PC2, PC3, PC4) del Análisis de Componentes Principales (ACP).
## PC1 PC2 PC3 PC4
## areaconst 0.5556108 0.02864857 -0.8303378 0.03185851
## parqueaderos 0.4796197 0.70438647 0.3598118 0.37992118
## banios 0.5339178 -0.11197059 0.3237416 -0.77303667
## habitaciones 0.4197538 -0.70034387 0.2761629 0.50701009
Los resultados del Análisis de Componentes Principales (PCA) revelan que la mayor parte de la variabilidad en los datos, específicamente un 66.2%, puede explicarse a través de solo dos dimensiones principales. Esta simplificación facilita la interpretación de los factores que más inciden en el mercado inmobiliario.
En cuanto a los factores determinantes, las variables que tienen mayor influencia en la segmentación del mercado son la cantidad de parqueaderos, el área construida, los baños y las habitaciones. Además, se observa una clara relación entre variables, ya que las viviendas con más parqueaderos presentan una distribución diferente en comparación con aquellas que priorizan un mayor número de habitaciones y baños.
Dado este panorama, se sugieren dos recomendaciones estratégicas. En primer lugar, es fundamental adaptar las estrategias de marketing en función de estos factores clave, diferenciando los proyectos inmobiliarios según las preferencias de los compradores. En segundo lugar, resulta clave ajustar la clasificación de las viviendas tomando en cuenta estos ejes principales, con el objetivo de mejorar la toma de decisiones en la comercialización y optimizar la segmentación del mercado.
En este fragmento de código, se realiza la selección y limpieza de las variables numéricas de la base de datos:
En este código, se realiza la normalización de las variables numéricas mediante el método z-score (scale()), lo cual es esencial para el Análisis de Conglomerados.
Este código calcula diferentes métricas de distancia para medir la similitud entre observaciones en los datos estandarizados:
Este código aplica el clustering jerárquico utilizando el método Ward.D2, el cual minimiza la varianza dentro de los clusters en cada fusión.
El objetivo es agrupar observaciones similares en función de la distancia Euclidiana previamente calculada. Este método es útil para identificar segmentaciones naturales en los datos y visualizar las relaciones entre grupos mediante un dendrograma.
El gráfico muestra un dendrograma, resultado del clustering jerárquico con el método Ward.D2 y la distancia euclidiana como métrica.
Se han definido 2 grupos (resaltados en colores), lo que permite identificar patrones de similitud entre las observaciones. Este tipo de análisis es útil para segmentar datos y detectar estructuras en el conjunto de información.
En este paso, se asigna cada observación a uno de los 4 clusters obtenidos a partir del clustering jerárquico. Los grupos se almacenan como una nueva variable categórica dentro del conjunto de datos estandarizados, lo que permitirá analizar sus características y diferencias.
Este gráfico de dispersión muestra la distribución de los clusters en
función del precio de la vivienda (preciom) y el estrato socioeconómico
(estrato). Cada color representa un grupo distinto, permitiendo
visualizar cómo las propiedades se agrupan según estas características.
Se observa que los clusters presentan patrones diferenciados en la
relación entre el precio y el estrato, lo que facilita la segmentación
del mercado inmobiliario.
Se evalúa el número óptimo de conglomerados utilizando el coeficiente de Silhouette. - Define una función silhouette_scores que calcula el promedio del coeficiente de Silhouette para diferentes valores de k (cantidad de clusters). - Luego, se prueba con valores de k entre 2 y 6, aplicando la función a cada uno de ellos mediante sapply. Esto permite identificar la mejor segmentación de los datos basada en la cohesión y separación de los clusters.
El gráfico siguiente muestra el coeficiente de Silhouette para diferentes valores de k, lo que ayuda a determinar el número óptimo de clusters. Se observa que el coeficiente disminuye a medida que aumenta k, lo que indica que la estructura de los clusters se vuelve menos definida. Generalmente, el mejor k es aquel que maximiza el coeficiente de Silhouette, equilibrando cohesión y separación entre grupos.
En este paso, se asignan los clusters óptimos utilizando k = 2. Luego, se calcula el coeficiente de Silhouette para evaluar la calidad de la agrupación. Finalmente, se imprime el coeficiente promedio, que en este caso es 0.2439, lo que indica una separación moderada entre los clusters.
## Coeficiente de Silhouette promedio k=2 : 0.2438592
El análisis de Clustering Jerárquico indica que el mercado inmobiliario se divide en dos grandes segmentos principales, lo que facilita una segmentación más precisa de la oferta. En este sentido, el coeficiente de Silhouette señala que el número óptimo de clusters es dos o tres, ya que un mayor número de divisiones disminuye la claridad en la separación entre grupos.
Además, se ha confirmado la existencia de perfiles de compradores claramente diferenciados, lo que abre la posibilidad de diseñar estrategias comerciales específicas para cada segmento. Por ello, es recomendable aplicar estrategias diferenciadas para los dos segmentos principales identificados, ajustando la oferta inmobiliaria a las necesidades de cada grupo. Asimismo, se debe priorizar la segmentación en dos clusters principales, con la opción de refinar la clasificación en caso de que se requiera una mayor precisión en la estrategia comercial.
Para realizar el análisis de correspondencia, primero se seleccionan únicamente las variables categóricas relevantes: tipo de vivienda, zona y barrio, ya que estas permiten examinar las relaciones entre las distintas categorías. Luego, se convierten en factores utilizando la función as.factor(), asegurando que el software las interprete correctamente en el análisis. Finalmente, se verifica la presencia de valores faltantes con la función md.pattern(), lo que permite identificar posibles problemas en la calidad de los datos antes de continuar con el estudio.
## tipo zona barrio
## 8319 1 1 1 0
## 3 0 0 0 3
## 3 3 3 9
Se centra en la limpieza de datos categóricos dentro del análisis de correspondencias. Primero, se eliminan las filas que contienen valores omitidos utilizando la función na.omit(), asegurando así que la base de datos no tenga valores faltantes. Luego, se emplea la función md.pattern() con la opción rotate.names = TRUE para visualizar si aún existen valores ausentes en el conjunto de datos. Este procedimiento es clave para garantizar que el análisis posterior no se vea afectado por datos incompletos, lo que podría distorsionar los resultados del estudio.
## /\ /\
## { `---' }
## { O O }
## ==> V <== No need for mice. This data set is completely observed.
## \ \|/ /
## `-----'
## tipo zona barrio
## 8319 1 1 1 0
## 0 0 0 0
Después, el objetivo es de normalizar los valores de la columna barrio dentro del conjunto de datos vivienda_cat. Primero, convierte todos los nombres a minúsculas para evitar duplicados causados por diferencias en mayúsculas y minúsculas. Luego, elimina los espacios en blanco sobrantes al inicio y al final de los nombres y reemplaza los espacios múltiples dentro de los valores por un único espacio. Posteriormente, se eliminan los acentos o tildes de los caracteres para estandarizar los nombres. Finalmente, los valores normalizados se convierten nuevamente en factores, asegurando que la variable mantenga su estructura categórica para su posterior análisis.
Se generan tablas cruzadas para analizar la relación entre distintas variables categóricas del conjunto de datos vivienda_cat. Se crean tres tablas: la primera examina la distribución del tipo de vivienda en cada zona (tabla_tipo_zona), la segunda analiza la relación entre el tipo de vivienda y los barrios (tabla_tipo_barrio), y la tercera explora la correspondencia entre barrios y zonas (tabla_zona_barrio). Estas tablas permiten identificar patrones y tendencias en la distribución geográfica de los tipos de vivienda.
El código realiza pruebas de independencia de Chi-cuadrado para evaluar la relación entre las variables categóricas del conjunto de datos. Se aplican pruebas a tres tablas cruzadas:
Los valores de p-value extremadamente bajos indican que hay una asociación estadísticamente significativa entre las variables analizadas. Sin embargo, las advertencias sugieren que la aproximación del Chi-cuadrado podría no ser precisa debido a frecuencias esperadas muy bajas en algunas celdas.
##
## Pearson's Chi-squared test
##
## data: tabla_tipo_zona
## X-squared = 690.93, df = 4, p-value < 0.00000000000000022
##
## Pearson's Chi-squared test
##
## data: tabla_tipo_barrio
## X-squared = 2434.1, df = 388, p-value < 0.00000000000000022
##
## Pearson's Chi-squared test
##
## data: tabla_zona_barrio
## X-squared = 29263, df = 1552, p-value < 0.00000000000000022
El análisis de correspondencias revela cómo las dimensiones principales explican la variabilidad de los datos. En el caso de Zona vs Barrio, observamos que la primera dimensión explica el 27.3% de la varianza, la segunda el 26.4%, la tercera el 25.4% y la cuarta el 20.8%, sumando el 100% de la varianza total. Esto indica que la estructura de los datos está bien distribuida entre estas cuatro dimensiones, sin una dominancia absoluta de una sola. La gráfica de varianza explicada ilustra claramente esta distribución, mostrando la contribución de cada componente en la representación de los datos.
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.9617855 27.34191 27.34191
## dim 2 0.9291207 26.41330 53.75521
## dim 3 0.8945369 25.43015 79.18536
## dim 4 0.7321809 20.81464 100.00000
Después, el análisis de valores propios muestra que tanto la relación entre tipo de vivienda y barrio como la relación entre tipo de vivienda y zona están completamente explicadas por una única dimensión, ya que el porcentaje acumulado de varianza es del 100%. Esto sugiere que la relación entre estas variables es muy estructurada y no requiere más dimensiones para su interpretación. En otras palabras, el tipo de vivienda está fuertemente determinado por el barrio y la zona en la que se encuentra, sin una variabilidad significativa que necesite más factores explicativos.
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.2925982 100 100
## eigenvalue percentage of variance cumulative percentage of variance
## dim 1 0.08305442 100 100
El gráfico de análisis de correspondencias muestra la relación entre las diferentes zonas (en rojo) y los barrios (en azul). Se observa que ciertos barrios están fuertemente asociados con zonas específicas, indicando patrones espaciales en la distribución del mercado inmobiliario. Las dimensiones explican el 27.34% y el 26.41% de la varianza, lo que sugiere que la estructura de los datos está bien representada en este mapa. Los barrios agrupados cerca de una zona indican similitudes en términos de características socioeconómicas o urbanísticas.
El Análisis de Correspondencias (CA) ha revelado que las zonas de la ciudad presentan una fuerte asociación con barrios específicos, lo que refleja patrones de localización bien definidos. En particular, se han identificado diferencias estructurales significativas entre zonas como Oriente y Oeste, las cuales se ubican en extremos opuestos dentro del análisis, evidenciando contrastes en su composición inmobiliaria y demanda. Además, la distribución de los barrios muestra una organización clara, lo que indica que la demanda de viviendas sigue patrones geográficos predecibles y estructurados.
Ante estos hallazgos, es recomendable diseñar estrategias de venta y marketing adaptadas a cada zona y a los barrios con mayor influencia en la dinámica del mercado. Asimismo, es fundamental identificar oportunidades en barrios con una oferta aún limitada, pero que comparten características con aquellos de alta demanda, con el fin de fomentar la expansión de nuevos proyectos inmobiliarios y maximizar el aprovechamiento del mercado.
La conclusión del análisis ha permitido identificar los principales factores que explican la dinámica del mercado inmobiliario, resaltando la importancia de variables como el número de parqueaderos, habitaciones, baños y el área construida en la toma de decisiones de los compradores. Asimismo, se ha confirmado que la relación entre zonas y barrios desempeña un papel fundamental en la planificación de estrategias de comercialización y expansión.
Por otro lado, gracias a la aplicación del clustering jerárquico y la evaluación del coeficiente de Silhouette, se ha determinado que la segmentación del mercado es más efectiva cuando se divide en dos grupos principales. Esta clasificación facilita la implementación de estrategias diferenciadas que permiten optimizar las inversiones y maximizar la rentabilidad.
En términos estratégicos, es fundamental optimizar la inversión en barrios con alta demanda y características específicas de vivienda, lo que permitirá captar un mayor número de compradores potenciales. Además, la segmentación del mercado basada en los clusters identificados posibilita la personalización de estrategias comerciales, asegurando que la oferta se adapte a las necesidades de cada segmento. Asimismo, resulta clave impulsar la expansión en barrios emergentes que presenten similitudes con zonas de alta demanda, ya que esto abre nuevas oportunidades de crecimiento y consolidación en el mercado. Finalmente, la diferenciación de la oferta inmobiliaria debe considerar las variables clave identificadas en el análisis PCA, con el objetivo de ofrecer productos alineados con las expectativas y preferencias de los compradores.
Dado que el sector inmobiliario es altamente competitivo y está en constante evolución, el uso de análisis de datos avanzados se vuelve una herramienta esencial para la toma de decisiones estratégicas. La capacidad de fundamentar estas decisiones en información precisa no solo optimiza la rentabilidad, sino que también fortalece la posición de la empresa en el mercado, permitiéndole anticiparse a las tendencias y responder de manera eficaz a las demandas del sector.